aboutsummaryrefslogtreecommitdiff
path: root/lib/Persist.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Persist.hs')
-rw-r--r--lib/Persist.hs10
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/Persist.hs b/lib/Persist.hs
index da23dae..f42c1cc 100644
--- a/lib/Persist.hs
+++ b/lib/Persist.hs
@@ -29,7 +29,8 @@ import Database.Persist.Sql (PersistFieldSql,
import Database.Persist.TH
import GTFS
import PersistOrphans
-import Servant (FromHttpApiData, ToHttpApiData)
+import Servant (FromHttpApiData (..),
+ ToHttpApiData)
import Conduit (ResourceT)
import Control.Monad.IO.Class (MonadIO (liftIO))
@@ -45,6 +46,7 @@ import Data.Time.Calendar (Day, DayOfWeek (..))
import Data.Vector (Vector)
import Database.Persist.Postgresql (SqlBackend)
import GHC.Generics (Generic)
+import Lucid.Forms (ToHtmlFormInput)
import Web.PathPieces (PathPiece)
newtype Token = Token UUID
@@ -58,8 +60,12 @@ instance ToParamSchema Token where
toParamSchema _ = toParamSchema (Proxy @String)
data AmendmentStatus = Cancelled | Added
- deriving (ToJSON, FromJSON, Generic, Show, Read, Eq)
+ deriving (ToJSON, FromJSON, Generic, Show, Read, Eq, ToHtmlFormInput)
derivePersistField "AmendmentStatus"
+instance FromHttpApiData AmendmentStatus where
+ parseUrlPiece "Cancelled" = Right Cancelled
+ parseUrlPiece "Added" = Right Added
+ parseUrlPiece other = Left ("unknown AmendmentStatus: "<>other)
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
-- | tokens which have been issued