aboutsummaryrefslogtreecommitdiff
path: root/src/client/LoggedIn/Update.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/LoggedIn/Update.elm')
-rw-r--r--src/client/LoggedIn/Update.elm137
1 files changed, 0 insertions, 137 deletions
diff --git a/src/client/LoggedIn/Update.elm b/src/client/LoggedIn/Update.elm
deleted file mode 100644
index a1d5f7d..0000000
--- a/src/client/LoggedIn/Update.elm
+++ /dev/null
@@ -1,137 +0,0 @@
-module LoggedIn.Update exposing
- ( update
- )
-
-import Date exposing (Date)
-import Dict
-import Form
-import Http exposing (Error(..))
-import Platform.Cmd exposing (Cmd)
-import String
-import Task
-
-import LoggedData
-import LoggedIn.Home.Model as Home
-import LoggedIn.Home.Msg as Home
-import LoggedIn.Home.Update as Home
-import LoggedIn.Model as LoggedInModel
-import LoggedIn.Msg as LoggedIn
-import LoggedIn.Stat.Model as Stat
-import LoggedIn.Stat.Msg as Stat
-import LoggedIn.Stat.Update as Stat
-import Model exposing (Model)
-import Model.Category exposing (Category)
-import Model.Frequency exposing (Frequency(..))
-import Model.Income as Income exposing (Income)
-import Model.Payment as Payment exposing (Payment)
-import Model.PaymentCategory as PaymentCategory
-import Server
-
-import Utils.Cmd exposing ((:>))
-
-update : Model -> LoggedIn.Msg -> LoggedInModel.Model -> (LoggedInModel.Model, Cmd LoggedIn.Msg)
-update model msg loggedIn =
- let loggedData = LoggedData.build model.currentTime model.translations model.conf loggedIn
- in case msg of
-
- LoggedIn.NoOp ->
- ( loggedIn
- , Cmd.none
- )
-
- LoggedIn.HomeMsg homeMsg ->
- case Home.update loggedData homeMsg loggedIn.home of
- (home, effects) ->
- ( { loggedIn | home = home }
- , Cmd.map LoggedIn.HomeMsg effects
- )
-
- LoggedIn.StatMsg statMsg ->
- case Stat.update loggedData statMsg loggedIn.stat of
- (stat, effects) ->
- ( { loggedIn | stat = stat }
- , Cmd.map LoggedIn.StatMsg effects
- )
-
- LoggedIn.ValidateCreatePayment paymentId name cost date category frequency ->
- update model (LoggedIn.HomeMsg <| Home.SearchMsg (Form.Reset (Home.searchInitial frequency))) loggedIn
- :> update model (LoggedIn.HomeMsg <| Home.UpdatePage 1)
- :> (\loggedIn ->
- let newPayment = Payment paymentId name cost date loggedIn.me frequency
- in ( { loggedIn
- | payments = newPayment :: loggedIn.payments
- , paymentCategories = PaymentCategory.save name category loggedIn.paymentCategories
- }
- , Cmd.none
- )
- )
-
- LoggedIn.ValidateEditPayment paymentId name cost date category frequency ->
- let updatedPayment = Payment paymentId name cost date loggedIn.me frequency
- mbOldPayment = Payment.find paymentId loggedIn.payments
- in ( { loggedIn
- | payments = Payment.edit updatedPayment loggedIn.payments
- , paymentCategories =
- case mbOldPayment of
- Just oldPayment ->
- PaymentCategory.save name category loggedIn.paymentCategories
- Nothing ->
- loggedData.paymentCategories
- }
- , Cmd.none
- )
-
- LoggedIn.ValidateDeletePayment paymentId ->
- let payments = Payment.delete paymentId loggedIn.payments
- frequency =
- case Form.getOutput loggedIn.home.search of
- Just data -> data.frequency
- Nothing -> Punctual
- switchToPunctual =
- ( frequency == Monthly
- && List.isEmpty (Payment.monthly payments)
- )
- in if switchToPunctual
- then
- update model (LoggedIn.HomeMsg <| Home.SearchMsg (Form.Reset (Home.searchInitial Punctual))) loggedIn
- :> (\loggedIn ->
- ( { loggedIn | payments = payments }
- , Cmd.none
- )
- )
- else
- ( { loggedIn | payments = payments }
- , Cmd.none
- )
-
- LoggedIn.ValidateCreateIncome incomeId amount date ->
- let newIncome = { userId = loggedIn.me, amount = amount, time = Date.toTime date }
- in ( { loggedIn | incomes = Dict.insert incomeId newIncome loggedIn.incomes }
- , Cmd.none
- )
-
- LoggedIn.ValidateEditIncome incomeId amount date ->
- let updateIncome _ = Just <| Income loggedIn.me (Date.toTime date) amount
- in ( { loggedIn | incomes = Dict.update incomeId updateIncome loggedIn.incomes }
- , Cmd.none
- )
-
- LoggedIn.ValidateDeleteIncome incomeId ->
- ( { loggedIn | incomes = Dict.remove incomeId loggedIn.incomes }
- , Cmd.none
- )
-
- LoggedIn.ValidateCreateCategory categoryId name color ->
- let newCategory = { name = name, color = color }
- in ( { loggedIn | categories = Dict.insert categoryId newCategory loggedIn.categories }
- , Cmd.none
- )
-
- LoggedIn.ValidateEditCategory categoryId name color ->
- let updateCategory _ = Just <| Category name color
- in ( { loggedIn | categories = Dict.update categoryId updateCategory loggedIn.categories } , Cmd.none)
-
- LoggedIn.ValidateDeleteCategory categoryId ->
- ( { loggedIn | categories = Dict.remove categoryId loggedIn.categories }
- , Cmd.none
- )