From d9df5c3fcffe12aac239b58ccf2fd82c19c3be62 Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 3 Jan 2016 23:37:14 +0100 Subject: Validate add payment server side --- src/client/elm/Update/LoggedIn.elm | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/client/elm/Update/LoggedIn.elm') diff --git a/src/client/elm/Update/LoggedIn.elm b/src/client/elm/Update/LoggedIn.elm index 74e213a..134aec2 100644 --- a/src/client/elm/Update/LoggedIn.elm +++ b/src/client/elm/Update/LoggedIn.elm @@ -4,9 +4,11 @@ module Update.LoggedIn import Date import Dict +import Debug +import Task import Effects exposing (Effects) -import Task +import Http exposing (Error(..)) import Server @@ -20,7 +22,7 @@ import Model.Action.AddPaymentAction as AddPayment import Model.View.LoggedInView exposing (..) import Model.View.LoggedIn.AddPayment exposing (..) -import Update.LoggedIn.AddPayment exposing (updateAddPayment) +import Update.LoggedIn.AddPayment exposing (updateAddPayment, addPaymentError) import Update.LoggedIn.Monthly exposing (updateMonthly) import Update.LoggedIn.Account exposing (updateAccount) @@ -42,8 +44,16 @@ updateLoggedIn model action loggedInView = AddPayment name cost frequency -> ( { loggedInView | add = updateAddPayment AddPayment.WaitingServer loggedInView.add } - , Server.addPayment name cost frequency - |> flip Task.onError (always <| Task.succeed NoOp) + , Server.addPayment model.translations name cost frequency + |> flip Task.onError (\err -> + case err of + BadResponse 400 jsonErr -> + case addPaymentError model.translations jsonErr of + Just addPaymentAction -> Task.succeed (UpdateAdd addPaymentAction) + Nothing -> Task.succeed NoOp + _ -> + Task.succeed NoOp + ) |> Effects.task ) -- cgit v1.2.3