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.hs28
1 files changed, 4 insertions, 24 deletions
diff --git a/src/server/Model/Payment.hs b/src/server/Model/Payment.hs
index 47397ff..28f1a09 100644
--- a/src/server/Model/Payment.hs
+++ b/src/server/Model/Payment.hs
@@ -9,18 +9,14 @@ module Model.Payment
import Data.Text (Text)
import Data.Time.Clock (getCurrentTime)
-import Data.Either (lefts)
import Control.Monad.IO.Class (liftIO)
import Database.Persist
-import qualified Validation
-
import Model.Database
import Model.Frequency
import qualified Model.Json.Payment as P
-import qualified Model.Message.Key as K
getPayments :: Persist [P.Payment]
getPayments =
@@ -48,26 +44,10 @@ getJsonPayment paymentEntity =
, P.frequency = paymentFrequency payment
}
-createPayment :: UserId -> Text -> Text -> Frequency -> Persist (Either [(Text, K.Key)] PaymentId)
-createPayment userId name cost frequency =
- case validatePayment name cost of
- Left err ->
- return . Left $ err
- Right (validatedName, validatedCost) -> do
- now <- liftIO getCurrentTime
- Right <$> insert (Payment userId now validatedName validatedCost Nothing frequency)
-
-validatePayment :: Text -> Text -> Either [(Text, K.Key)] (Text, Int)
-validatePayment name cost =
- let eitherName = Validation.nonEmpty K.CategoryRequired name
- eitherCost = Validation.nonEmpty K.CostRequired cost >>= Validation.number K.CostRequired (/= 0)
- in case (eitherName, eitherCost) of
- (Right validatedName, Right validatedCost) ->
- Right (validatedName, validatedCost)
- _ ->
- let nameErrors = map (\x -> ("name", x)) $ lefts [eitherName]
- costErrors = map (\x -> ("cost", x)) $ lefts [eitherCost]
- in Left (nameErrors ++ costErrors)
+createPayment :: UserId -> Text -> Int -> Frequency -> Persist PaymentId
+createPayment userId name cost frequency = do
+ now <- liftIO getCurrentTime
+ insert (Payment userId now name cost Nothing frequency)
deleteOwnPayment :: Entity User -> PaymentId -> Persist Bool
deleteOwnPayment user paymentId = do