diff options
Diffstat (limited to 'src/client/Update/LoggedIn')
-rw-r--r-- | src/client/Update/LoggedIn/Account.elm | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/client/Update/LoggedIn/Account.elm b/src/client/Update/LoggedIn/Account.elm index 2d9cd87..cf4c834 100644 --- a/src/client/Update/LoggedIn/Account.elm +++ b/src/client/Update/LoggedIn/Account.elm @@ -4,33 +4,35 @@ module Update.LoggedIn.Account ) where import Maybe +import Time exposing (Time) +import Dict import Model.User exposing (UserId) -import Model.Payers exposing (..) +import Model.Payer exposing (..) import Model.View.LoggedIn.Account exposing (..) import Utils.Maybe exposing (isJust) type AccountAction = ToggleDetail - | UpdatePayer UserId Int + | UpdatePayer UserId Time Int | ToggleIncomeEdition | UpdateIncomeEdition String | UpdateEditionError String - | UpdateIncome Int + | UpdateIncome Time Int updateAccount : AccountAction -> Account -> Account updateAccount action account = case action of ToggleDetail -> { account | visibleDetail <- not account.visibleDetail } - UpdatePayer userId cost -> - { account | payers <- updatePayers account.payers userId cost } + UpdatePayer userId creation amountDiff -> + { account | payers <- updatePayers account.payers userId creation amountDiff } ToggleIncomeEdition -> { account | incomeEdition <- if isJust account.incomeEdition then Nothing - else Just (initIncomeEdition (Maybe.withDefault 0 account.income)) + else Just (initIncomeEdition (Maybe.withDefault 0 (getCurrentIncome account))) } UpdateIncomeEdition income -> case account.incomeEdition of @@ -44,8 +46,19 @@ updateAccount action account = { account | incomeEdition <- Just { incomeEdition | error <- Just error } } Nothing -> account - UpdateIncome amount -> + UpdateIncome currentTime amount -> { account - | income <- Just amount + | payers <- + account.payers + |> Dict.update account.me (\mbPayer -> + case mbPayer of + Just payer -> + Just + { payer + | incomes <- payer.incomes ++ [{ creation = currentTime, amount = amount }] + } + Nothing -> + Nothing + ) , incomeEdition <- Nothing } |