blob: 55980844c5cb3af2c6089d814b373072d4c51180 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
module Model.View.LoggedIn.Add
( AddPayment
, Frequency(..)
, initAddPayment
, validateName
, validateCost
) where
import Result as Result exposing (Result(..))
import Utils.Validation exposing (..)
import Model.Translations exposing (..)
type alias AddPayment =
{ name : String
, nameError : Maybe String
, cost : String
, costError : Maybe String
, frequency : Frequency
}
initAddPayment : Frequency -> AddPayment
initAddPayment frequency =
{ name = ""
, nameError = Nothing
, cost = ""
, costError = Nothing
, frequency = frequency
}
validateName : String -> Translations -> Result String String
validateName name translations =
name
|> validateNonEmpty (getMessage "CategoryRequired" translations)
validateCost : String -> Translations -> Result String Int
validateCost cost translations =
cost
|> validateNonEmpty (getMessage "CostRequired" translations)
|> flip Result.andThen (validateNumber (getMessage "CostMustBeNonNullNumber" translations) ((/=) 0))
type Frequency = Punctual | Monthly
|