summaryrefslogtreecommitdiff
path: root/Omni/Task
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-11-26 09:34:11 -0500
committerBen Sima <ben@bensima.com>2025-11-26 09:34:11 -0500
commite709ef77c4158a66ba3e572e52ad866d4855fc21 (patch)
tree918b4d36b61ffb63912cc70c05ab8ea09524620e /Omni/Task
parent3611e15f055d3cf39cbd206e2d6d46a01b4df6ef (diff)
Add task list filters (status, priority, namespace)
The build passes. Let me also verify that the filter functionality is co 1. **API endpoint with query params** (lines 46-49): ✅ Already has `Quer 2. **Handler** (lines 776-781): ✅ Already receives and applies filters 3. **Filter form in HTML** (lines 295-330): ✅ Already has form with drop 4. **Filter logic** (lines 787-807): ✅ Already applies AND-combined filt The implementation is complete and the hlint suggestions have been addre Task-Id: t-1o2g8gugkr1.8
Diffstat (limited to 'Omni/Task')
-rw-r--r--Omni/Task/Core.hs14
1 files changed, 14 insertions, 0 deletions
diff --git a/Omni/Task/Core.hs b/Omni/Task/Core.hs
index b28b402..4f7a3d3 100644
--- a/Omni/Task/Core.hs
+++ b/Omni/Task/Core.hs
@@ -4,6 +4,7 @@
{-# LANGUAGE NoImplicitPrelude #-}
-- : dep sqids
+-- : dep http-api-data
module Omni.Task.Core where
import Alpha
@@ -22,6 +23,7 @@ import GHC.Generics ()
import System.Directory (createDirectoryIfMissing, doesFileExist)
import System.Environment (lookupEnv)
import System.IO.Unsafe (unsafePerformIO)
+import Web.HttpApiData (FromHttpApiData (..))
import qualified Web.Sqids as Sqids
-- Core data types
@@ -113,6 +115,18 @@ instance ToJSON RetryContext
instance FromJSON RetryContext
+-- HTTP API Instances (for Servant query params)
+
+instance FromHttpApiData Status where
+ parseQueryParam t = case readMaybe (T.unpack t) of
+ Just s -> Right s
+ Nothing -> Left ("Invalid status: " <> t)
+
+instance FromHttpApiData Priority where
+ parseQueryParam t = case readMaybe (T.unpack t) of
+ Just p -> Right p
+ Nothing -> Left ("Invalid priority: " <> t)
+
-- SQLite Instances
instance SQL.FromField TaskType where