aboutsummaryrefslogtreecommitdiff
path: root/src/server/Model/Payment.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/Model/Payment.hs')
-rw-r--r--src/server/Model/Payment.hs34
1 files changed, 28 insertions, 6 deletions
diff --git a/src/server/Model/Payment.hs b/src/server/Model/Payment.hs
index 51ca152..0d5e188 100644
--- a/src/server/Model/Payment.hs
+++ b/src/server/Model/Payment.hs
@@ -4,6 +4,7 @@ module Model.Payment
( list
, listMonthly
, create
+ , editOwn
, deleteOwn
) where
@@ -45,17 +46,38 @@ getJsonPayment paymentEntity =
, P.frequency = paymentFrequency payment
}
-create :: UserId -> Day -> Text -> Int -> Frequency -> Persist PaymentId
-create userId date name cost frequency = do
+create :: UserId -> Text -> Int -> Day -> Frequency -> Persist PaymentId
+create userId name cost date frequency = do
now <- liftIO getCurrentTime
- insert (Payment userId date name cost now Nothing frequency)
+ insert (Payment userId name cost date frequency now Nothing Nothing)
-deleteOwn :: Entity User -> PaymentId -> Persist Bool
-deleteOwn user paymentId = do
+editOwn :: UserId -> PaymentId -> Text -> Int -> Day -> Frequency -> Persist Bool
+editOwn userId paymentId name cost date frequency = do
mbPayment <- get paymentId
case mbPayment of
Just payment ->
- if paymentUserId payment == entityKey user
+ if paymentUserId payment == userId
+ then do
+ now <- liftIO getCurrentTime
+ update paymentId
+ [ PaymentEditedAt =. Just now
+ , PaymentName =. name
+ , PaymentCost =. cost
+ , PaymentDate =. date
+ , PaymentFrequency =. frequency
+ ]
+ return True
+ else
+ return False
+ Nothing ->
+ return False
+
+deleteOwn :: UserId -> PaymentId -> Persist Bool
+deleteOwn userId paymentId = do
+ mbPayment <- get paymentId
+ case mbPayment of
+ Just payment ->
+ if paymentUserId payment == userId
then do
now <- liftIO getCurrentTime
update paymentId [PaymentDeletedAt =. Just now]