aboutsummaryrefslogtreecommitdiff
path: root/src/server/Controller/Payment.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Controller/Payment.hs')
-rw-r--r--src/server/Controller/Payment.hs22
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