139 lines
4.3 KiB
Elm
139 lines
4.3 KiB
Elm
module Update.SchoolYearUpdate exposing
|
|
( handleActivateSchoolYear
|
|
, handleActiveSchoolYearReceived
|
|
, handleCreateSchoolYear
|
|
, handleDeleteSchoolYear
|
|
, handleSchoolYearActivated
|
|
, handleSchoolYearCreated
|
|
, handleSchoolYearDeleted
|
|
, handleSchoolYearsReceived
|
|
)
|
|
|
|
import Api.SchoolYear
|
|
import Http
|
|
import Task
|
|
import Types.Model exposing (Model, NewSchoolYear, SchoolYear, ToastType(..))
|
|
import Types.Msg exposing (Msg(..))
|
|
|
|
|
|
handleCreateSchoolYear : Model -> ( Model, Cmd Msg )
|
|
handleCreateSchoolYear model =
|
|
if
|
|
String.isEmpty model.newSchoolYear.name
|
|
|| String.isEmpty model.newSchoolYear.startDate
|
|
|| String.isEmpty model.newSchoolYear.endDate
|
|
then
|
|
( model, Task.perform (\_ -> ShowToast "Bitte alle Felder ausfüllen" WarningToast) (Task.succeed ()) )
|
|
|
|
else
|
|
case model.token of
|
|
Just token ->
|
|
( { model | isProcessing = True }, Api.SchoolYear.createSchoolYear token model.newSchoolYear )
|
|
|
|
Nothing ->
|
|
( model, Cmd.none )
|
|
|
|
|
|
handleSchoolYearCreated : Result Http.Error () -> Model -> ( Model, Cmd Msg )
|
|
handleSchoolYearCreated result model =
|
|
case result of
|
|
Ok _ ->
|
|
case model.token of
|
|
Just token ->
|
|
( { model
|
|
| newSchoolYear = NewSchoolYear "" "" ""
|
|
, error = Nothing
|
|
, isProcessing = False
|
|
}
|
|
, Cmd.batch
|
|
[ Api.SchoolYear.fetchSchoolYears token
|
|
, Task.perform (\_ -> ShowToast "Schuljahr erfolgreich erstellt!" SuccessToast) (Task.succeed ())
|
|
]
|
|
)
|
|
|
|
Nothing ->
|
|
( model, Cmd.none )
|
|
|
|
Err err ->
|
|
( { model | isProcessing = False }, Cmd.none )
|
|
|
|
|
|
handleActivateSchoolYear : Int -> Model -> ( Model, Cmd Msg )
|
|
handleActivateSchoolYear id model =
|
|
case model.token of
|
|
Just token ->
|
|
( model, Api.SchoolYear.activateSchoolYear token id )
|
|
|
|
Nothing ->
|
|
( model, Cmd.none )
|
|
|
|
|
|
handleSchoolYearActivated : Result Http.Error () -> Model -> ( Model, Cmd Msg )
|
|
handleSchoolYearActivated result model =
|
|
case result of
|
|
Ok _ ->
|
|
case model.token of
|
|
Just token ->
|
|
( { model | error = Nothing }
|
|
, Cmd.batch
|
|
[ Api.SchoolYear.fetchSchoolYears token
|
|
, Api.SchoolYear.fetchActiveSchoolYear token
|
|
, Task.perform (\_ -> ShowToast "Schuljahr erfolgreich aktiviert!" SuccessToast) (Task.succeed ())
|
|
]
|
|
)
|
|
|
|
Nothing ->
|
|
( model, Cmd.none )
|
|
|
|
Err err ->
|
|
( model, Cmd.none )
|
|
|
|
|
|
handleDeleteSchoolYear : Int -> Model -> ( Model, Cmd Msg )
|
|
handleDeleteSchoolYear id model =
|
|
case model.token of
|
|
Just token ->
|
|
( model, Api.SchoolYear.deleteSchoolYear token id )
|
|
|
|
Nothing ->
|
|
( model, Cmd.none )
|
|
|
|
|
|
handleSchoolYearDeleted : Result Http.Error () -> Model -> ( Model, Cmd Msg )
|
|
handleSchoolYearDeleted result model =
|
|
case result of
|
|
Ok _ ->
|
|
case model.token of
|
|
Just token ->
|
|
( { model | error = Nothing }
|
|
, Cmd.batch
|
|
[ Api.SchoolYear.fetchSchoolYears token
|
|
, Task.perform (\_ -> ShowToast "Schuljahr erfolgreich gelöscht" SuccessToast) (Task.succeed ())
|
|
]
|
|
)
|
|
|
|
Nothing ->
|
|
( model, Cmd.none )
|
|
|
|
Err err ->
|
|
( model, Cmd.none )
|
|
|
|
|
|
handleSchoolYearsReceived : Result Http.Error (List SchoolYear) -> Model -> ( Model, Cmd Msg )
|
|
handleSchoolYearsReceived result model =
|
|
case result of
|
|
Ok years ->
|
|
( { model | schoolYears = years }, Cmd.none )
|
|
|
|
Err err ->
|
|
( model, Cmd.none )
|
|
|
|
|
|
handleActiveSchoolYearReceived : Result Http.Error SchoolYear -> Model -> ( Model, Cmd Msg )
|
|
handleActiveSchoolYearReceived result model =
|
|
case result of
|
|
Ok year ->
|
|
( { model | activeSchoolYear = Just year }, Cmd.none )
|
|
|
|
Err _ ->
|
|
( { model | activeSchoolYear = Nothing }, Cmd.none )
|