gonito/PersistTeamActionType.hs

21 lines
583 B
Haskell

module PersistTeamActionType where
import ClassyPrelude.Yesod
import Database.Persist.Sql
import qualified Data.Text as T
data TeamActionType = TeamCreation | TeamJoining | TeamLeaving | TeamInvitation
deriving (Eq, Show, Read)
instance PersistField TeamActionType where
toPersistValue m = PersistText (T.pack $ show m)
fromPersistValue (PersistText t) = case readMay t of
Just val -> Right val
Nothing -> Left ("Unexpected value '" ++ t ++ "'")
fromPersistValue _ = Left "Unexpected value"
instance PersistFieldSql TeamActionType where
sqlType _ = SqlString