From 0b191f5c48edffc9da3e38c284e9640fd82e7cb1 Mon Sep 17 00:00:00 2001 From: Joris Date: Mon, 5 Jun 2017 18:02:13 +0200 Subject: Replace persistent by sqlite-simple --- src/server/Model/Frequency.hs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/server/Model/Frequency.hs') diff --git a/src/server/Model/Frequency.hs b/src/server/Model/Frequency.hs index a6ba55c..f9958e1 100644 --- a/src/server/Model/Frequency.hs +++ b/src/server/Model/Frequency.hs @@ -6,21 +6,28 @@ module Model.Frequency ( Frequency(..) ) where -import GHC.Generics - -import Web.Scotty - -import Database.Persist.TH - import Data.Aeson +import Database.SQLite.Simple (SQLData(SQLText)) +import Database.SQLite.Simple.FromField (fieldData, FromField(fromField)) +import Database.SQLite.Simple.Ok (Ok(Ok, Errors)) +import Database.SQLite.Simple.ToField (ToField(toField)) +import GHC.Generics +import qualified Data.Text as T +import Web.Scotty (parseParam, Parsable, readEither) data Frequency = Punctual | Monthly deriving (Eq, Show, Read, Generic) -derivePersistField "Frequency" - instance Parsable Frequency where parseParam = readEither instance FromJSON Frequency instance ToJSON Frequency + +instance FromField Frequency where + fromField field = case fieldData field of + SQLText text -> Ok (read (T.unpack text) :: Frequency) + _ -> Errors [error "SQLText field required for frequency"] + +instance ToField Frequency where + toField frequency = SQLText . T.pack . show $ frequency -- cgit v1.2.3