aboutsummaryrefslogtreecommitdiff
path: root/src/client/Model/Init.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/Model/Init.elm')
-rw-r--r--src/client/Model/Init.elm31
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)