diff options
| author | Ben Sima <ben@bensima.com> | 2025-11-26 09:34:11 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-11-26 09:34:11 -0500 |
| commit | e709ef77c4158a66ba3e572e52ad866d4855fc21 (patch) | |
| tree | 918b4d36b61ffb63912cc70c05ab8ea09524620e /Omni/Task/Core.hs | |
| parent | 3611e15f055d3cf39cbd206e2d6d46a01b4df6ef (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/Core.hs')
| -rw-r--r-- | Omni/Task/Core.hs | 14 |
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 |
