diff options
author | Joris | 2017-03-26 21:10:42 +0200 |
---|---|---|
committer | Joris | 2017-03-26 21:10:42 +0200 |
commit | 1e47a7754ca38bd1a6c74765d8378caf68ce4619 (patch) | |
tree | d0d9238479dc2529a1b558bbbcde346e7e8c2935 /src/client/Model/Category.elm | |
parent | c0ac16a713c4e53cf6af8e72a6d5f6b8ac5d6456 (diff) | |
download | budget-1e47a7754ca38bd1a6c74765d8378caf68ce4619.tar.gz budget-1e47a7754ca38bd1a6c74765d8378caf68ce4619.tar.bz2 budget-1e47a7754ca38bd1a6c74765d8378caf68ce4619.zip |
Separate client and server watch
Diffstat (limited to 'src/client/Model/Category.elm')
-rw-r--r-- | src/client/Model/Category.elm | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/client/Model/Category.elm b/src/client/Model/Category.elm new file mode 100644 index 0000000..8b653a7 --- /dev/null +++ b/src/client/Model/Category.elm @@ -0,0 +1,35 @@ +module Model.Category exposing + ( Categories + , Category + , CategoryId + , categoriesDecoder + , categoryIdDecoder + , empty + ) + +import Json.Decode as Decode exposing (Decoder) +import Utils.Json as Json +import Dict exposing (Dict) + +type alias Categories = Dict CategoryId Category + +type alias CategoryId = Int + +type alias Category = + { name : String + , color : String + } + +categoriesDecoder : Decoder Categories +categoriesDecoder = + Json.dictDecoder (Decode.field "id" categoryIdDecoder) <| + Decode.map2 + Category + (Decode.field "name" Decode.string) + (Decode.field "color" Decode.string) + +categoryIdDecoder : Decoder CategoryId +categoryIdDecoder = Decode.int + +empty : Categories +empty = Dict.empty |