From d22d10da342520163014dda255d5d9bd5e1a80c0 Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 3 Jan 2016 19:57:59 +0100 Subject: Move update income to the account update layer --- src/client/elm/Update/LoggedIn.elm | 45 +++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 20 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 69a1b75..74e213a 100644 --- a/src/client/elm/Update/LoggedIn.elm +++ b/src/client/elm/Update/LoggedIn.elm @@ -14,7 +14,7 @@ import Model exposing (Model) import Model.User exposing (UserId) import Model.Payment exposing (..) import Model.Action.LoggedInAction exposing (..) -import Model.Action.AccountAction exposing (..) +import Model.Action.AccountAction as Account import Model.Action.MonthlyAction as Monthly import Model.Action.AddPaymentAction as AddPayment import Model.View.LoggedInView exposing (..) @@ -52,15 +52,17 @@ updateLoggedIn model action loggedInView = newAdd = initAddPayment frequency in case frequency of Punctual -> - ( { loggedInView - | currentPage = 1 - , add = newAdd - , account = updateAccount (UpdatePayer loggedInView.account.me model.currentTime cost) loggedInView.account - , payments = newPayment :: loggedInView.payments - , paymentsCount = loggedInView.paymentsCount + 1 - } - , Effects.none - ) + let (newAccount, accountEffects) = + updateAccount (Account.UpdatePayer loggedInView.account.me model.currentTime cost) loggedInView.account + in ( { loggedInView + | currentPage = 1 + , add = newAdd + , account = newAccount + , payments = newPayment :: loggedInView.payments + , paymentsCount = loggedInView.paymentsCount + 1 + } + , Effects.map UpdateAccount accountEffects + ) Monthly -> ( { loggedInView | add = newAdd @@ -90,13 +92,15 @@ updateLoggedIn model action loggedInView = , Effects.none ) Punctual -> - ( { loggedInView - | account = updateAccount (UpdatePayer payment.userId (Date.toTime payment.creation) -payment.cost) loggedInView.account - , payments = deletePayment payment.id loggedInView.payments - , paymentsCount = loggedInView.paymentsCount - 1 - } - , Effects.none - ) + let (newAccount, accountEffects) = + updateAccount (Account.UpdatePayer payment.userId (Date.toTime payment.creation) -payment.cost) loggedInView.account + in ( { loggedInView + | account = newAccount + , payments = deletePayment payment.id loggedInView.payments + , paymentsCount = loggedInView.paymentsCount - 1 + } + , Effects.map UpdateAccount accountEffects + ) UpdatePage page -> ( { loggedInView | currentPage = page } @@ -109,6 +113,7 @@ updateLoggedIn model action loggedInView = ) UpdateAccount accountAction -> - ( { loggedInView | account = updateAccount accountAction loggedInView.account } - , Effects.none - ) + let (newAccount, accountEffects) = updateAccount accountAction loggedInView.account + in ( { loggedInView | account = newAccount } + , Effects.map UpdateAccount accountEffects + ) -- cgit v1.2.3