Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module Modules.Auth.Login.Update exposing (..)
- import Model exposing (Model)
- import Modules.Auth.Login.Model exposing (LoginModel, initialLoginModel)
- import Msg exposing (Msg (LoginMsg))
- import Modules.Auth.Login.Msg exposing (..)
- import Types exposing (FlashMessage)
- import Modules.Auth.Login.Api as Api exposing (..)
- import Common.FlashMessages exposing (addFlashMessage)
- import Routing.Routes exposing (navigate, Route (Portfolios))
- update : LoginMsg -> Model -> (Model, Cmd Msg)
- update msg model =
- case msg of
- LoginUpdateEmail value ->
- { model
- | loginModel = updateEmail value model.loginModel
- } ! []
- LoginUpdatePassword value ->
- { model
- | loginModel = updatePassword value model.loginModel
- } ! []
- LoginRequest ->
- { model
- | loginModel = request model.loginModel
- } ! [ Api.loginRequest model.loginModel.email model.loginModel.password ]
- LoginResponse result ->
- case result of
- Err error ->
- { model
- | loginModel = errorResponse (toString error) model.loginModel
- , flashMessages = addFlashMessage (FlashMessage Types.Danger (toString error)) model.flashMessages
- } ! []
- Ok user ->
- { model
- | loginModel = initialLoginModel
- , user = Just user
- } ! [ navigate Portfolios ]
- updateEmail : String -> LoginModel -> LoginModel
- updateEmail value model =
- { model
- | email = value
- }
- updatePassword : String -> LoginModel -> LoginModel
- updatePassword value model =
- { model
- | password = value
- }
- request : LoginModel -> LoginModel
- request model =
- { model
- | isLoggingIn = True
- }
- errorResponse : String -> LoginModel -> LoginModel
- errorResponse error model =
- { model
- | isLoggingIn = False
- , error = Just error
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement