aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/Update/LoggedIn.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/elm/Update/LoggedIn.elm')
-rw-r--r--src/client/elm/Update/LoggedIn.elm12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/client/elm/Update/LoggedIn.elm b/src/client/elm/Update/LoggedIn.elm
index 134aec2..dfc2a1b 100644
--- a/src/client/elm/Update/LoggedIn.elm
+++ b/src/client/elm/Update/LoggedIn.elm
@@ -6,6 +6,7 @@ import Date
import Dict
import Debug
import Task
+import String
import Effects exposing (Effects)
import Http exposing (Error(..))
@@ -21,6 +22,7 @@ import Model.Action.MonthlyAction as Monthly
import Model.Action.AddPaymentAction as AddPayment
import Model.View.LoggedInView exposing (..)
import Model.View.LoggedIn.AddPayment exposing (..)
+import Model.Translations exposing (Translations, getMessage)
import Update.LoggedIn.AddPayment exposing (updateAddPayment, addPaymentError)
import Update.LoggedIn.Monthly exposing (updateMonthly)
@@ -44,7 +46,14 @@ updateLoggedIn model action loggedInView =
AddPayment name cost frequency ->
( { loggedInView | add = updateAddPayment AddPayment.WaitingServer loggedInView.add }
- , Server.addPayment model.translations name cost frequency
+ , Server.addPayment name cost frequency
+ |> Task.map (\paymentId ->
+ case String.toInt cost of
+ Err _ ->
+ UpdateAdd (AddPayment.AddError Nothing (Just (getMessage "CostRequired" model.translations)))
+ Ok costNumber ->
+ ValidateAddPayment paymentId name costNumber frequency
+ )
|> flip Task.onError (\err ->
case err of
BadResponse 400 jsonErr ->
@@ -89,6 +98,7 @@ updateLoggedIn model action loggedInView =
DeletePayment payment frequency ->
( loggedInView
, Server.deletePayment payment frequency
+ |> Task.map (always (ValidateDeletePayment payment frequency))
|> flip Task.onError (always <| Task.succeed NoOp)
|> Effects.task
)