{-# LANGUAGE OverloadedStrings #-} module Model.Init ( getInit ) where import Control.Monad.IO.Class (liftIO) import Database.Persist import Model.Database import Model.Json.Init (Init) import qualified Model.Payment as Payment import qualified Model.User as User import qualified Model.Income as Income import qualified Model.Category as Category import qualified Model.PaymentCategory as PaymentCategory import qualified Model.Json.Init as Init getInit :: Entity User -> Persist Init getInit user = liftIO . runDb $ Init.Init <$> (map User.getJson <$> User.list) <*> (return . entityKey $ user) <*> Payment.list <*> Income.list <*> Category.list <*> PaymentCategory.list