Saturday, August 08, 2015

yesod persistent enum type

State.hs
{-# LANGUAGE TemplateHaskell #-}
module State where

import Database.Persist.TH
import Prelude

data State = New | Released
    deriving (Show, Read, Eq)
derivePersistField "State"
models
MyModel json
    state S.State
    createdAt UTCTime default=CURRENT_TIME
Model.hs
import qualified State as S

instance ToJSON S.State where
    toJSON S.New = String "New"
    toJSON S.Released = String "Released"

instance FromJSON S.State where
    parseJSON (String "New") = pure S.New
    parseJSON (String "Released") = pure S.Released

No comments: