{-# LANGUAGE OverloadedStrings #-} module Controller.Income ( getIncomes , setIncome ) where import Web.Scotty import Control.Monad.IO.Class (liftIO) import Database.Persist import qualified Secure import Json (jsonId) import Model.Database import qualified Model.Income as Income getIncomes :: ActionM () getIncomes = Secure.loggedAction (\_ -> (liftIO $ map Income.getJsonIncome <$> runDb Income.getIncomes) >>= json ) setIncome :: Int -> ActionM () setIncome amount = Secure.loggedAction (\user -> do (liftIO . runDb $ Income.setIncome (entityKey user) amount) >>= jsonId )