aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/LoggedIn/Update.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/elm/LoggedIn/Update.elm')
-rw-r--r--src/client/elm/LoggedIn/Update.elm134
1 files changed, 67 insertions, 67 deletions
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
)