From e709ef77c4158a66ba3e572e52ad866d4855fc21 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 26 Nov 2025 09:34:11 -0500 Subject: Add task list filters (status, priority, namespace) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- Omni/Task/Core.hs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Omni/Task') 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 -- cgit v1.2.3