diff options
Diffstat (limited to 'Omni/Task')
| -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 |
