aboutsummaryrefslogtreecommitdiff
path: root/src/client/Model/Init.elm
blob: db7069fd50847d8bb01749b3c79a4421daf852bf (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
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)