From 166cd04e4b28770ede854dafc9ae30eae64102fe Mon Sep 17 00:00:00 2001 From: Joris Date: Mon, 28 Mar 2016 17:51:14 +0200 Subject: Create an empty but reachable user page --- src/client/elm/LoggedIn/Update.elm | 134 ++++--------------------------------- 1 file changed, 12 insertions(+), 122 deletions(-) (limited to 'src/client/elm/LoggedIn/Update.elm') diff --git a/src/client/elm/LoggedIn/Update.elm b/src/client/elm/LoggedIn/Update.elm index 3b8090a..189d901 100644 --- a/src/client/elm/LoggedIn/Update.elm +++ b/src/client/elm/LoggedIn/Update.elm @@ -2,138 +2,28 @@ module LoggedIn.Update ( update ) where -import Date -import Dict -import Debug -import Task -import String - import Effects exposing (Effects) -import Http exposing (Error(..)) -import Server +import Model exposing (Model) import LoggedIn.Action as LoggedInAction import LoggedIn.Model as LoggedInModel -import LoggedIn.Account.Action as AccountAction -import LoggedIn.Account.Update as AccountUpdate - -import LoggedIn.AddPayment.Action as AddPaymentAction -import LoggedIn.AddPayment.Model as AddPaymentModel -import LoggedIn.AddPayment.Update as AddPaymentUpdate - -import LoggedIn.Monthly.Action as MonthlyAction -import LoggedIn.Monthly.Model as MonthlyModel -import LoggedIn.Monthly.Update as MonthlyUpdate +import LoggedIn.Home.Action as HomeAction +import LoggedIn.Home.Update as HomeUpdate -import Model exposing (Model) -import Model.User exposing (UserId) -import Model.Payment exposing (..) -import Model.Translations exposing (Translations, getMessage) +type Action = HomeAction HomeAction.Action update : Model -> LoggedInAction.Action -> LoggedInModel.Model -> (LoggedInModel.Model, Effects LoggedInAction.Action) -update model action loggedInView = +update model action loggedIn = case action of - LoggedInAction.NoOp -> (loggedInView, Effects.none) - - LoggedInAction.UpdateAdd addPaymentAction -> - ( { loggedInView | add = AddPaymentUpdate.update addPaymentAction loggedInView.add } - , Effects.none - ) - - LoggedInAction.UpdatePayments payments -> - ( { loggedInView | payments = payments } - , Effects.none - ) - - LoggedInAction.AddPayment name cost frequency -> - ( { loggedInView | add = AddPaymentUpdate.update AddPaymentAction.WaitingServer loggedInView.add } - , Server.addPayment name cost frequency - |> Task.map (\paymentId -> - case String.toInt cost of - Err _ -> - LoggedInAction.UpdateAdd (AddPaymentAction.AddError Nothing (Just (getMessage "CostRequired" model.translations))) - Ok costNumber -> - LoggedInAction.ValidateAddPayment paymentId name costNumber frequency - ) - |> flip Task.onError (\err -> - case err of - BadResponse 400 jsonErr -> - case AddPaymentUpdate.addPaymentError model.translations jsonErr of - Just addPaymentAction -> Task.succeed (LoggedInAction.UpdateAdd addPaymentAction) - Nothing -> Task.succeed LoggedInAction.NoOp - _ -> - Task.succeed LoggedInAction.NoOp - ) - |> Effects.task - ) - - LoggedInAction.ValidateAddPayment paymentId name cost frequency -> - let newPayment = Payment paymentId (Date.fromTime model.currentTime) name cost loggedInView.account.me - newAdd = AddPaymentModel.init frequency - in case frequency of - Punctual -> - ( { loggedInView - | currentPage = 1 - , add = newAdd - , account = loggedInView.account - , payments = newPayment :: loggedInView.payments - , paymentsCount = loggedInView.paymentsCount + 1 - } - , Effects.none - ) - Monthly -> - ( { loggedInView - | add = newAdd - , monthly = MonthlyUpdate.update (MonthlyAction.AddPayment newPayment) loggedInView.monthly - } - , Effects.none - ) - - LoggedInAction.ToggleEdit id -> - ( { loggedInView | paymentEdition = if loggedInView.paymentEdition == Just id then Nothing else Just id } - , Effects.none - ) - - LoggedInAction.DeletePayment payment frequency -> - ( loggedInView - , Server.deletePayment payment frequency - |> Task.map (always (LoggedInAction.ValidateDeletePayment payment frequency)) - |> flip Task.onError (always <| Task.succeed LoggedInAction.NoOp) - |> Effects.task - ) - - LoggedInAction.ValidateDeletePayment payment frequency -> - case frequency of - Monthly -> - ( { loggedInView - | monthly = MonthlyUpdate.update (MonthlyAction.DeletePayment payment) loggedInView.monthly - } - , Effects.none - ) - Punctual -> - ( { loggedInView - | account = loggedInView.account - , payments = deletePayment payment.id loggedInView.payments - , paymentsCount = loggedInView.paymentsCount - 1 - } - , Effects.none - ) - - LoggedInAction.UpdatePage page -> - ( { loggedInView | currentPage = page } - , Effects.none - ) - - LoggedInAction.UpdateMonthly monthlyAction -> - ( { loggedInView | monthly = MonthlyUpdate.update monthlyAction loggedInView.monthly } - , Effects.none - ) + LoggedInAction.NoOp -> + (loggedIn, Effects.none) - LoggedInAction.UpdateAccount accountAction -> - let (newAccount, accountEffects) = AccountUpdate.update accountAction loggedInView.account - in ( { loggedInView | account = newAccount } - , Effects.map LoggedInAction.UpdateAccount accountEffects + LoggedInAction.HomeAction homeAction -> + case HomeUpdate.update model homeAction loggedIn.home of + (home, effects) -> + ( { loggedIn | home = home } + , Effects.map LoggedInAction.HomeAction effects ) -- cgit v1.2.3