aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/Validation.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/elm/Validation.elm')
-rw-r--r--src/client/elm/Validation.elm20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/client/elm/Validation.elm b/src/client/elm/Validation.elm
index 1729daa..18b3934 100644
--- a/src/client/elm/Validation.elm
+++ b/src/client/elm/Validation.elm
@@ -1,14 +1,18 @@
module Validation exposing
( date
+ , category
)
-import String exposing (toInt, split)
import Date exposing (Date)
-import Date.Extra.Create exposing (dateFromFields)
import Date.Extra.Core exposing (intToMonth)
+import Date.Extra.Create exposing (dateFromFields)
+import Dict
+import String exposing (toInt, split)
import Form.Validate as Validate exposing (..)
+import Model.Category exposing (Categories, CategoryId)
+
date : Validation String Date
date =
customValidation string (\str ->
@@ -20,3 +24,15 @@ date =
_ -> Err (customError "InvalidDate")
_ -> Err (customError "InvalidDate")
)
+
+category : Categories -> Validation String CategoryId
+category categories =
+ customValidation string (\str ->
+ case toInt str of
+ Ok category ->
+ if List.member category (Dict.keys categories)
+ then Ok category
+ else Err (customError "InvalidCategory")
+ Err _ ->
+ Err (customError "InvalidCategory")
+ )