diff options
Diffstat (limited to 'src/client/Main.elm')
-rw-r--r-- | src/client/Main.elm | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/client/Main.elm b/src/client/Main.elm new file mode 100644 index 0000000..dd87b8c --- /dev/null +++ b/src/client/Main.elm @@ -0,0 +1,43 @@ +module Main + ( main + ) where + +import Graphics.Element exposing (..) + +import Html exposing (Html) + +import Http +import Json.Decode as Json exposing ((:=)) +import Task exposing (..) +import Date exposing (..) + +import View.Page exposing (renderPage) + +main : Html +main = renderPage + +getPayments : Task Http.Error (List Payment) +getPayments = Http.get paymentsDecoder "/payments" + +type alias Payments = List Payment + +type alias Payment = + { creation : Date + , name : String + , cost : Int + , userName : String + } + +paymentsDecoder : Json.Decoder Payments +paymentsDecoder = Json.list paymentDecoder + +paymentDecoder : Json.Decoder Payment +paymentDecoder = + Json.object4 Payment + ("creation" := dateDecoder) + ("name" := Json.string) + ("cost" := Json.int) + ("userName" := Json.string) + +dateDecoder : Json.Decoder Date +dateDecoder = Json.customDecoder Json.string Date.fromString |