{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}
module DB where
import Data.SafeCopy
import Servant.Server.Auth.Token.Acid.Schema as A
-- | Application global state for acid-state
data DB = DB {
dbAuth :: A.Model -- ^ Storage for Auth state
, dbCustom :: () -- ^ Demo of custom state
}
-- | Generation of inital state
newDB :: DB
newDB = DB {
dbAuth = A.newModel
, dbCustom = ()
}
instance HasModelRead DB where
askModel = dbAuth
instance HasModelWrite DB where
putModel db m = db { dbAuth = m }
deriveSafeCopy 0 'base ''DB
A.deriveQueries ''DB
A.makeModelAcidic ''DB