diff options
author | Joris | 2017-03-26 22:56:41 +0200 |
---|---|---|
committer | Joris | 2017-03-26 22:56:41 +0200 |
commit | 8062f1c9c34e9b25d76b22bd6ba2a1a99666279b (patch) | |
tree | 2179d31ece8d92864196b38b42ed3a4d01b2f186 /src/server/Controller | |
parent | 778040bf9f3f60ec50b1b437f93ab123854917f2 (diff) |
Fix update payment category constraint error
Diffstat (limited to 'src/server/Controller')
-rw-r--r-- | src/server/Controller/Payment.hs | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/src/server/Controller/Payment.hs b/src/server/Controller/Payment.hs index e3f1082..831abbf 100644 --- a/src/server/Controller/Payment.hs +++ b/src/server/Controller/Payment.hs @@ -7,25 +7,20 @@ module Controller.Payment , deleteOwn ) where -import Web.Scotty - -import Network.HTTP.Types.Status (ok200, badRequest400) - -import Database.Persist - import Control.Monad.IO.Class (liftIO) import Data.Text (Text) - -import qualified Secure +import Database.Persist +import Network.HTTP.Types.Status (ok200, badRequest400) +import Web.Scotty import Json (jsonId) - import Model.Database -import qualified Model.Payment as Payment -import qualified Model.PaymentCategory as PaymentCategory import qualified Model.Json.CreatePayment as Json import qualified Model.Json.EditPayment as Json +import qualified Model.Payment as Payment +import qualified Model.PaymentCategory as PaymentCategory +import qualified Secure list :: ActionM () list = @@ -37,7 +32,7 @@ create :: Json.CreatePayment -> ActionM () create (Json.CreatePayment name cost date category frequency) = Secure.loggedAction (\user -> (liftIO . runDb $ do - PaymentCategory.set name category + PaymentCategory.save name category Payment.create (entityKey user) name cost date frequency ) >>= jsonId ) @@ -46,15 +41,11 @@ editOwn :: Json.EditPayment -> ActionM () editOwn (Json.EditPayment paymentId name cost date category frequency) = Secure.loggedAction (\user -> do updated <- liftIO . runDb $ do - mbPayment <- fmap entityVal <$> Payment.find paymentId - case mbPayment of - Just payment -> do - edited <- Payment.editOwn (entityKey user) paymentId name cost date frequency - if edited - then PaymentCategory.edit (paymentName payment) name category >> return True - else return edited - _ -> - return False + edited <- Payment.editOwn (entityKey user) paymentId name cost date frequency + _ <- if edited + then PaymentCategory.save name category >> return () + else return () + return edited if updated then status ok200 else status badRequest400 |