module Data.KeyStore.Types.PasswordStoreModel where
import Data.KeyStore.Types.PasswordStoreSchema
import qualified Data.Map as Map
import Data.API.Tools
import Data.API.JSON
$(generate passwordStoreSchema)
type PasswordMap = Map.Map PasswordName Password
inj_pwmap :: REP__PasswordMap -> ParserWithErrs PasswordMap
inj_pwmap (REP__PasswordMap as) =
return $ Map.fromList [ (_npa_name,_npa_password) | NamePasswordAssoc{..}<-as ]
prj_pwmap :: PasswordMap -> REP__PasswordMap
prj_pwmap mp = REP__PasswordMap [ NamePasswordAssoc nme pwd | (nme,pwd)<-Map.toList mp ]
type SessionMap = Map.Map SessionName Session
inj_snmap :: REP__SessionMap -> ParserWithErrs SessionMap
inj_snmap (REP__SessionMap as) =
return $ Map.fromList [ (_spa_name,_spa_session) | SessionPasswordAssoc{..}<-as ]
prj_snmap :: SessionMap -> REP__SessionMap
prj_snmap mp = REP__SessionMap [ SessionPasswordAssoc snm ssn | (snm,ssn)<-Map.toList mp ]
$(generateAPITools passwordStoreSchema
[ enumTool
, jsonTool
, lensTool
])