diff options
Diffstat (limited to 'src/client/Model/Init.elm')
-rw-r--r-- | src/client/Model/Init.elm | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/client/Model/Init.elm b/src/client/Model/Init.elm new file mode 100644 index 0000000..db7069f --- /dev/null +++ b/src/client/Model/Init.elm @@ -0,0 +1,31 @@ +module Model.Init exposing + ( Init + , initDecoder + ) + +import Json.Decode as Decode exposing (Decoder) + +import Model.Payment exposing (Payments, paymentsDecoder) +import Model.User exposing (Users, UserId, usersDecoder, userIdDecoder) +import Model.Income exposing (Incomes, incomesDecoder) +import Model.Category exposing (Categories, categoriesDecoder) +import Model.PaymentCategory exposing (PaymentCategories, paymentCategoriesDecoder) + +type alias Init = + { users : Users + , me : UserId + , payments : Payments + , incomes : Incomes + , categories : Categories + , paymentCategories : PaymentCategories + } + +initDecoder : Decoder Init +initDecoder = + Decode.map6 Init + (Decode.field "users" usersDecoder) + (Decode.field "me" userIdDecoder) + (Decode.field "payments" paymentsDecoder) + (Decode.field "incomes" incomesDecoder) + (Decode.field "categories" categoriesDecoder) + (Decode.field "paymentCategories" paymentCategoriesDecoder) |