diff options
Diffstat (limited to 'src/server/Controller/Payment.hs')
-rw-r--r-- | src/server/Controller/Payment.hs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/server/Controller/Payment.hs b/src/server/Controller/Payment.hs index 831abbf..d71b451 100644 --- a/src/server/Controller/Payment.hs +++ b/src/server/Controller/Payment.hs @@ -8,40 +8,40 @@ module Controller.Payment ) where import Control.Monad.IO.Class (liftIO) - -import Data.Text (Text) -import Database.Persist import Network.HTTP.Types.Status (ok200, badRequest400) import Web.Scotty import Json (jsonId) -import Model.Database +import Model.Payment (PaymentId) import qualified Model.Json.CreatePayment as Json import qualified Model.Json.EditPayment as Json +import qualified Model.Json.Payment as Json import qualified Model.Payment as Payment import qualified Model.PaymentCategory as PaymentCategory +import qualified Model.Query as Query +import qualified Model.User as User import qualified Secure list :: ActionM () list = Secure.loggedAction (\_ -> - (liftIO $ runDb Payment.list) >>= json + (liftIO . Query.run $ map Json.fromPayment <$> Payment.list) >>= json ) create :: Json.CreatePayment -> ActionM () create (Json.CreatePayment name cost date category frequency) = Secure.loggedAction (\user -> - (liftIO . runDb $ do + (liftIO . Query.run $ do PaymentCategory.save name category - Payment.create (entityKey user) name cost date frequency + Payment.create (User.id user) name cost date frequency ) >>= jsonId ) editOwn :: Json.EditPayment -> ActionM () editOwn (Json.EditPayment paymentId name cost date category frequency) = Secure.loggedAction (\user -> do - updated <- liftIO . runDb $ do - edited <- Payment.editOwn (entityKey user) paymentId name cost date frequency + updated <- liftIO . Query.run $ do + edited <- Payment.editOwn (User.id user) paymentId name cost date frequency _ <- if edited then PaymentCategory.save name category >> return () else return () @@ -51,10 +51,10 @@ editOwn (Json.EditPayment paymentId name cost date category frequency) = else status badRequest400 ) -deleteOwn :: Text -> ActionM () +deleteOwn :: PaymentId -> ActionM () deleteOwn paymentId = Secure.loggedAction (\user -> do - deleted <- liftIO . runDb $ Payment.deleteOwn (entityKey user) (textToKey paymentId) + deleted <- liftIO . Query.run $ Payment.deleteOwn (User.id user) paymentId if deleted then status ok200 else status badRequest400 |