diff options
author | Joris | 2017-03-27 10:18:40 +0200 |
---|---|---|
committer | Joris | 2017-03-27 10:18:40 +0200 |
commit | 64ff4707fdcd81c27c6be9903c3c82bc543ef016 (patch) | |
tree | fa0c3a9112f4f7c8bd383ad3e597041ab7d5a503 /src/client/Model/Payment.elm | |
parent | 40273c30166877b3341125ad5248793b2f2fcc64 (diff) |
Modelize punctual and monthly payment pages
Diffstat (limited to 'src/client/Model/Payment.elm')
-rw-r--r-- | src/client/Model/Payment.elm | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/src/client/Model/Payment.elm b/src/client/Model/Payment.elm index f61ded8..2412ab9 100644 --- a/src/client/Model/Payment.elm +++ b/src/client/Model/Payment.elm @@ -3,7 +3,6 @@ module Model.Payment exposing , Payments , Payment , PaymentId - , Frequency(..) , paymentsDecoder , paymentIdDecoder , find @@ -14,7 +13,6 @@ module Model.Payment exposing , monthly , groupAndSortByMonth , search - , validateFrequency ) import Date exposing (..) @@ -24,9 +22,9 @@ import Json.Decode.Extra as Decode import List import Form.Validate as Validate exposing (Validation) +import Model.Frequency as Frequency exposing (Frequency(..)) import Model.Date exposing (dateDecoder) import Model.User exposing (UserId, userIdDecoder) - import Utils.List as List import Utils.Search as Search @@ -46,8 +44,6 @@ type alias Payment = type alias PaymentId = Int -type Frequency = Punctual | Monthly - paymentsDecoder : Decoder Payments paymentsDecoder = Decode.list paymentDecoder @@ -59,20 +55,11 @@ paymentDecoder = (Decode.field "cost" Decode.int) (Decode.field "date" dateDecoder) (Decode.field "userId" userIdDecoder) - (Decode.field "frequency" frequencyDecoder) + (Decode.field "frequency" Frequency.decoder) paymentIdDecoder : Decoder PaymentId paymentIdDecoder = Decode.int -frequencyDecoder : Decoder Frequency -frequencyDecoder = - let frequencyResult input = - case input of - "Punctual" -> Ok Punctual - "Monthly" -> Ok Monthly - _ -> Err ("Could not deduce Punctual nor Monthly from " ++ input) - in Decode.string |> Decode.andThen (Decode.fromResult << frequencyResult) - find : PaymentId -> Payments -> Maybe Payment find paymentId payments = payments @@ -129,15 +116,3 @@ searchSuccess search { name, cost } = || String.contains word (toString cost) ) in List.all searchSuccessWord (String.words search) - -validateFrequency : Validation String Frequency -validateFrequency = - Validate.customValidation Validate.string (\str -> - if str == toString Punctual - then - Ok Punctual - else - if str == toString Monthly - then Ok Monthly - else Err (Validate.customError "InvalidFrequency") - ) |