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.elm22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/client/elm/Validation.elm b/src/client/elm/Validation.elm
new file mode 100644
index 0000000..1729daa
--- /dev/null
+++ b/src/client/elm/Validation.elm
@@ -0,0 +1,22 @@
+module Validation exposing
+ ( date
+ )
+
+import String exposing (toInt, split)
+import Date exposing (Date)
+import Date.Extra.Create exposing (dateFromFields)
+import Date.Extra.Core exposing (intToMonth)
+
+import Form.Validate as Validate exposing (..)
+
+date : Validation String Date
+date =
+ customValidation string (\str ->
+ case split "/" str of
+ [day, month, year] ->
+ case (toInt day, toInt month, toInt year) of
+ (Ok dayNum, Ok monthNum, Ok yearNum) ->
+ Ok (dateFromFields yearNum (intToMonth monthNum) dayNum 0 0 0 0)
+ _ -> Err (customError "InvalidDate")
+ _ -> Err (customError "InvalidDate")
+ )