From f605541cbaaa3c339eef8f345547bcd653d3f721 Mon Sep 17 00:00:00 2001 From: Joris Date: Mon, 27 Jun 2016 14:36:03 +0200 Subject: Add the edit functionnality on payments --- src/server/Model/Payment.hs | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) (limited to 'src/server/Model/Payment.hs') 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] -- cgit v1.2.3