From 8e3a7bf1cb83bbb6e3dcd54308eefa52a29cd679 Mon Sep 17 00:00:00 2001 From: Joris Date: Fri, 3 Jun 2016 20:27:16 +0200 Subject: Migrate to elm 0.17 --- src/client/elm/LoggedIn/Update.elm | 134 ++++++++++++++++++------------------- 1 file changed, 67 insertions(+), 67 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 8330310..564d6fc 100644 --- a/src/client/elm/LoggedIn/Update.elm +++ b/src/client/elm/LoggedIn/Update.elm @@ -1,14 +1,14 @@ -module LoggedIn.Update +module LoggedIn.Update exposing ( update - ) where + ) import Dict import String import Task -import Effects exposing (Effects) import Http exposing (Error(..)) import Date exposing (Date) +import Platform.Cmd exposing (Cmd) import Model exposing (Model) import Model.Translations exposing (getMessage) @@ -17,118 +17,118 @@ import Model.Payment exposing (Payment, Frequency(..), deletePayment) import Server import LoggedData -import LoggedIn.Action as LoggedInAction +import LoggedIn.Msg as LoggedInMsg import LoggedIn.Model as LoggedInModel -import LoggedIn.Home.Action as HomeAction +import LoggedIn.Home.Msg as HomeMsg import LoggedIn.Home.Update as HomeUpdate -import LoggedIn.Income.Action as IncomeAction +import LoggedIn.Income.Msg as IncomeMsg import LoggedIn.Income.Update as IncomeUpdate -import LoggedIn.Home.AddPayment.Action as AddPaymentAction +import LoggedIn.Home.AddPayment.Msg as AddPaymentMsg import LoggedIn.Home.AddPayment.Update as AddPaymentUpdate import Utils.Tuple as Tuple -import Utils.Effects as Effects +import Utils.Cmd exposing ((:>)) -update : Model -> LoggedInAction.Action -> LoggedInModel.Model -> (LoggedInModel.Model, Effects LoggedInAction.Action) +update : Model -> LoggedInMsg.Msg -> LoggedInModel.Model -> (LoggedInModel.Model, Cmd LoggedInMsg.Msg) update model action loggedIn = let loggedData = LoggedData.build model loggedIn in case action of - LoggedInAction.NoOp -> - (loggedIn, Effects.none) + LoggedInMsg.NoOp -> + (loggedIn, Cmd.none) - LoggedInAction.HomeAction homeAction -> - case HomeUpdate.update loggedData homeAction loggedIn.home of + LoggedInMsg.HomeMsg homeMsg -> + case HomeUpdate.update loggedData homeMsg loggedIn.home of (home, effects) -> ( { loggedIn | home = home } - , Effects.map LoggedInAction.HomeAction effects + , Cmd.map LoggedInMsg.HomeMsg effects ) - LoggedInAction.IncomeAction incomeAction -> - case IncomeUpdate.update loggedData incomeAction loggedIn.income of - (income, effects) -> + LoggedInMsg.IncomeMsg incomeMsg -> + case IncomeUpdate.update loggedData incomeMsg loggedIn.income of + (income, cmd) -> ( { loggedIn | income = income } - , Effects.map LoggedInAction.IncomeAction effects + , Cmd.map LoggedInMsg.IncomeMsg cmd ) - LoggedInAction.AddPayment name cost frequency -> - update model (LoggedInAction.HomeAction <| HomeAction.UpdateAdd <| AddPaymentAction.WaitingServer) loggedIn - |> Tuple.mapSnd (\effect -> + LoggedInMsg.AddPayment name cost frequency -> + update model (LoggedInMsg.HomeMsg <| HomeMsg.UpdateAdd <| AddPaymentMsg.WaitingServer) loggedIn + :> \loggedIn -> Server.addPayment name cost frequency - |> Task.map (\paymentId -> - case String.toInt cost of - Err _ -> - LoggedInAction.HomeAction <| HomeAction.UpdateAdd (AddPaymentAction.AddError Nothing (Just (getMessage "CostRequired" loggedData.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.HomeAction <| HomeAction.UpdateAdd addPaymentAction) - Nothing -> Task.succeed LoggedInAction.NoOp - _ -> - Task.succeed LoggedInAction.NoOp - ) - |> Effects.task - |> \effect2 -> [effect, effect2] - |> Effects.batch - ) - - LoggedInAction.ValidateAddPayment paymentId name cost frequency -> - update model (LoggedInAction.HomeAction <| HomeAction.UpdateAdd <| AddPaymentAction.Init frequency) loggedIn - |> flip Effects.andThen (\loggedIn -> + |> Task.perform + (\err -> + case err of + BadResponse 400 jsonErr -> + case AddPaymentUpdate.addPaymentError model.translations jsonErr of + Just addPaymentMsg -> (LoggedInMsg.HomeMsg <| HomeMsg.UpdateAdd addPaymentMsg) + Nothing -> LoggedInMsg.NoOp + _ -> + LoggedInMsg.NoOp + ) + (\paymentId -> + case String.toInt cost of + Err _ -> + LoggedInMsg.HomeMsg <| HomeMsg.UpdateAdd (AddPaymentMsg.AddError Nothing (Just (getMessage "CostRequired" loggedData.translations))) + Ok costNumber -> + LoggedInMsg.ValidateAddPayment paymentId name costNumber frequency + ) + |> \cmd -> (loggedIn, cmd) + + LoggedInMsg.ValidateAddPayment paymentId name cost frequency -> + update model (LoggedInMsg.HomeMsg <| HomeMsg.UpdateAdd <| AddPaymentMsg.Init frequency) loggedIn + :> (\loggedIn -> case frequency of Punctual -> - update model (LoggedInAction.HomeAction <| HomeAction.UpdatePage 1) loggedIn + update model (LoggedInMsg.HomeMsg <| HomeMsg.UpdatePage 1) loggedIn Monthly -> - update model (LoggedInAction.HomeAction <| HomeAction.ShowMonthlyDetail) loggedIn + update model (LoggedInMsg.HomeMsg <| HomeMsg.ShowMonthlyDetail) loggedIn ) - |> Tuple.mapFst (\loggedIn -> + :> (\loggedIn -> let newPayment = Payment paymentId (Date.fromTime model.currentTime) name cost loggedIn.me frequency - in { loggedIn | payments = newPayment :: loggedIn.payments } + in ( { loggedIn | payments = newPayment :: loggedIn.payments } + , Cmd.none + ) ) - LoggedInAction.DeletePayment paymentId -> + LoggedInMsg.DeletePayment paymentId -> ( loggedIn , Server.deletePayment paymentId - |> Task.map (always (LoggedInAction.ValidateDeletePayment paymentId)) - |> flip Task.onError (always <| Task.succeed LoggedInAction.NoOp) - |> Effects.task + |> Task.perform + (always LoggedInMsg.NoOp) + (always (LoggedInMsg.ValidateDeletePayment paymentId)) ) - LoggedInAction.ValidateDeletePayment paymentId -> + LoggedInMsg.ValidateDeletePayment paymentId -> ( { loggedIn | payments = deletePayment paymentId loggedIn.payments } - , Effects.none + , Cmd.none ) - LoggedInAction.AddIncome creation amount -> + LoggedInMsg.AddIncome creation amount -> ( loggedIn , Server.addIncome creation amount - |> Task.map (\incomeId -> (LoggedInAction.ValidateAddIncome incomeId creation amount)) - |> flip Task.onError (always <| Task.succeed LoggedInAction.NoOp) - |> Effects.task + |> Task.perform + (always LoggedInMsg.NoOp) + (\incomeId -> (LoggedInMsg.ValidateAddIncome incomeId creation amount)) ) - LoggedInAction.ValidateAddIncome incomeId creation amount -> + LoggedInMsg.ValidateAddIncome incomeId creation amount -> let newIncome = { userId = loggedIn.me, creation = (Date.toTime creation), amount = amount } in ( { loggedIn | incomes = Dict.insert incomeId newIncome loggedIn.incomes } - , Effects.none + , Cmd.none ) - LoggedInAction.DeleteIncome incomeId -> + LoggedInMsg.DeleteIncome incomeId -> ( loggedIn , Server.deleteIncome incomeId - |> Task.map (always <| LoggedInAction.ValidateDeleteIncome incomeId) - |> flip Task.onError (always <| Task.succeed LoggedInAction.NoOp) - |> Effects.task + |> Task.perform + (always LoggedInMsg.NoOp) + (always <| LoggedInMsg.ValidateDeleteIncome incomeId) ) - LoggedInAction.ValidateDeleteIncome incomeId -> + LoggedInMsg.ValidateDeleteIncome incomeId -> ( { loggedIn | incomes = Dict.remove incomeId loggedIn.incomes } - , Effects.none + , Cmd.none ) -- cgit v1.2.3