aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/LoggedIn/Update.elm
diff options
context:
space:
mode:
authorJoris2016-06-27 14:36:03 +0200
committerJoris2016-06-27 14:36:03 +0200
commitf605541cbaaa3c339eef8f345547bcd653d3f721 (patch)
tree1e800df7736e482290ca138726595e067e4a5cf9 /src/client/elm/LoggedIn/Update.elm
parent885dfd7708e338a3220c85b7f22a3ac267aad3f7 (diff)
downloadbudget-f605541cbaaa3c339eef8f345547bcd653d3f721.tar.gz
budget-f605541cbaaa3c339eef8f345547bcd653d3f721.tar.bz2
budget-f605541cbaaa3c339eef8f345547bcd653d3f721.zip
Add the edit functionnality on payments
Diffstat (limited to 'src/client/elm/LoggedIn/Update.elm')
-rw-r--r--src/client/elm/LoggedIn/Update.elm40
1 files changed, 23 insertions, 17 deletions
diff --git a/src/client/elm/LoggedIn/Update.elm b/src/client/elm/LoggedIn/Update.elm
index 1f09271..db851f1 100644
--- a/src/client/elm/LoggedIn/Update.elm
+++ b/src/client/elm/LoggedIn/Update.elm
@@ -14,7 +14,7 @@ import Form
import Model exposing (Model)
import Model.Translations exposing (getMessage)
-import Model.Payment as Payment exposing (Payment, Frequency(..), deletePayment)
+import Model.Payment as Payment exposing (Payment, Frequency(..))
import Server
import LoggedData
@@ -58,23 +58,16 @@ update model msg loggedIn =
, Cmd.map LoggedInMsg.IncomeMsg cmd
)
- LoggedInMsg.AddPayment name cost date frequency ->
+ LoggedInMsg.CreatePayment name cost date frequency ->
( loggedIn
, Server.createPayment name cost date frequency
|> Task.perform
- (\err ->
- case err of
- BadResponse 400 jsonErr ->
- LoggedInMsg.NoOp
- _ ->
- LoggedInMsg.NoOp
- )
- (\paymentId -> LoggedInMsg.ValidateAddPayment paymentId name cost date frequency)
+ (always LoggedInMsg.NoOp)
+ (\paymentId -> LoggedInMsg.ValidateCreatePayment paymentId name cost date frequency)
)
- LoggedInMsg.ValidateAddPayment paymentId name cost date frequency ->
+ LoggedInMsg.ValidateCreatePayment paymentId name cost date frequency ->
update model (LoggedInMsg.HomeMsg <| HomeMsg.SearchMsg (Form.Reset (HomeModel.searchInitial frequency))) loggedIn
- :> update model (LoggedInMsg.HomeMsg <| HomeMsg.SearchMsg Form.Submit)
:> update model (LoggedInMsg.HomeMsg <| HomeMsg.UpdatePage 1)
:> (\loggedIn ->
let newPayment = Payment paymentId name cost date loggedIn.me frequency
@@ -83,6 +76,20 @@ update model msg loggedIn =
)
)
+ LoggedInMsg.EditPayment paymentId name cost date frequency ->
+ ( loggedIn
+ , Server.editPayment paymentId name cost date frequency
+ |> Task.perform
+ (always LoggedInMsg.NoOp)
+ (always <| LoggedInMsg.ValidateEditPayment paymentId name cost date frequency)
+ )
+
+ LoggedInMsg.ValidateEditPayment paymentId name cost date frequency ->
+ let updatedPayment = Payment paymentId name cost date loggedIn.me frequency
+ in ( { loggedIn | payments = Payment.edit updatedPayment loggedIn.payments }
+ , Cmd.none
+ )
+
LoggedInMsg.DeletePayment paymentId ->
( loggedIn
, Server.deletePayment paymentId
@@ -92,7 +99,7 @@ update model msg loggedIn =
)
LoggedInMsg.ValidateDeletePayment paymentId ->
- let payments = deletePayment paymentId loggedIn.payments
+ let payments = Payment.delete paymentId loggedIn.payments
frequency =
case Form.getOutput loggedIn.home.search of
Just data -> data.frequency
@@ -104,7 +111,6 @@ update model msg loggedIn =
in if switchToPunctual
then
update model (LoggedInMsg.HomeMsg <| HomeMsg.SearchMsg (Form.Reset (HomeModel.searchInitial Punctual))) loggedIn
- :> update model (LoggedInMsg.HomeMsg <| HomeMsg.SearchMsg Form.Submit)
:> (\loggedIn ->
( { loggedIn | payments = payments }
, Cmd.none
@@ -115,15 +121,15 @@ update model msg loggedIn =
, Cmd.none
)
- LoggedInMsg.AddIncome amount date ->
+ LoggedInMsg.CreateIncome amount date ->
( loggedIn
, Server.createIncome amount date
|> Task.perform
(always LoggedInMsg.NoOp)
- (\incomeId -> (LoggedInMsg.ValidateAddIncome incomeId amount date))
+ (\incomeId -> (LoggedInMsg.ValidateCreateIncome incomeId amount date))
)
- LoggedInMsg.ValidateAddIncome incomeId amount date ->
+ LoggedInMsg.ValidateCreateIncome incomeId amount date ->
let newIncome = { userId = loggedIn.me, amount = amount, time = Date.toTime date }
loggedInIncome = loggedIn.income
in ( { loggedIn