aboutsummaryrefslogtreecommitdiff
path: root/common/src/Common/Validation
diff options
context:
space:
mode:
authorJoris2019-10-09 23:16:00 +0200
committerJoris2019-10-09 23:16:04 +0200
commit7529a18ff0ac443e7f9764b5e2d0f57a5d3a850b (patch)
tree3d5cfc1f2318c2d4f889ee70764929f1a96e4c41 /common/src/Common/Validation
parente5ac82f4808e974dec5f19fc6f059efaa5214022 (diff)
Use common payment validation in the backend
Remove deprecated backend validation
Diffstat (limited to 'common/src/Common/Validation')
-rw-r--r--common/src/Common/Validation/Payment.hs15
1 files changed, 13 insertions, 2 deletions
diff --git a/common/src/Common/Validation/Payment.hs b/common/src/Common/Validation/Payment.hs
index b6c1d30..1bb00ce 100644
--- a/common/src/Common/Validation/Payment.hs
+++ b/common/src/Common/Validation/Payment.hs
@@ -2,20 +2,31 @@ module Common.Validation.Payment
( name
, cost
, date
+ , category
) where
import Data.Text (Text)
import Data.Time.Calendar (Day)
import Data.Validation (Validation)
-import qualified Data.Validation as Validation
+import qualified Data.Validation as V
+import Common.Model (CategoryId)
+import qualified Common.Msg as Msg
import qualified Common.Validation.Atomic as Atomic
+
name :: Text -> Validation Text Text
name = Atomic.nonEmpty
cost :: Text -> Validation Text Int
-cost input = Validation.bindValidation (Atomic.number input) Atomic.nonNullNumber
+cost input = V.bindValidation (Atomic.number input) Atomic.nonNullNumber
date :: Text -> Validation Text Day
date = Atomic.day
+
+category :: [CategoryId] -> CategoryId -> Validation Text CategoryId
+category cs c =
+ if elem c cs then
+ V.Success c
+ else
+ V.Failure $ Msg.get Msg.Form_InvalidCategory