aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
Diffstat (limited to 'src/client')
-rw-r--r--src/client/Main.elm43
-rw-r--r--src/client/View/Page.elm18
2 files changed, 61 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
diff --git a/src/client/View/Page.elm b/src/client/View/Page.elm
new file mode 100644
index 0000000..47e0c1c
--- /dev/null
+++ b/src/client/View/Page.elm
@@ -0,0 +1,18 @@
+module View.Page
+ ( renderPage
+ ) where
+
+import Html exposing (..)
+import Html as H
+import Html.Attributes exposing (..)
+import Html.Attributes as A
+import Html.Events exposing (..)
+
+renderPage : Html
+renderPage =
+ header
+ []
+ [ h1
+ []
+ [ text "Payments" ]
+ ]