UNPKG

mattermost-redux

Version:

Common code (API client, Redux stores, logic, utility functions) for building a Mattermost client

96 lines (75 loc) 3.02 kB
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import {combineReducers} from 'redux'; import {RequestStatus} from '../../constants'; import {UserTypes} from 'action_types'; import {GenericAction} from 'types/actions'; import {UsersRequestsStatuses, RequestStatusType} from 'types/requests'; import {handleRequest, initialRequestState} from './helpers'; function checkMfa(state: RequestStatusType = initialRequestState(), action: GenericAction): RequestStatusType { switch (action.type) { case UserTypes.CHECK_MFA_REQUEST: return {...state, status: RequestStatus.STARTED}; case UserTypes.CHECK_MFA_SUCCESS: return {...state, status: RequestStatus.SUCCESS, error: null}; case UserTypes.CHECK_MFA_FAILURE: return {...state, status: RequestStatus.FAILURE, error: action.error}; case UserTypes.LOGOUT_SUCCESS: return {...state, status: RequestStatus.NOT_STARTED, error: null}; default: return state; } } function login(state: RequestStatusType = initialRequestState(), action: GenericAction): RequestStatusType { switch (action.type) { case UserTypes.LOGIN_REQUEST: return {...state, status: RequestStatus.STARTED}; case UserTypes.LOGIN_SUCCESS: return {...state, status: RequestStatus.SUCCESS, error: null}; case UserTypes.LOGIN_FAILURE: return {...state, status: RequestStatus.FAILURE, error: action.error}; case UserTypes.LOGOUT_SUCCESS: return {...state, status: RequestStatus.NOT_STARTED, error: null}; default: return state; } } function logout(state: RequestStatusType = initialRequestState(), action: GenericAction): RequestStatusType { switch (action.type) { case UserTypes.LOGOUT_REQUEST: return {...state, status: RequestStatus.STARTED}; case UserTypes.LOGOUT_SUCCESS: return {...state, status: RequestStatus.SUCCESS, error: null}; case UserTypes.LOGOUT_FAILURE: return {...state, status: RequestStatus.FAILURE, error: action.error}; case UserTypes.RESET_LOGOUT_STATE: return initialRequestState(); default: return state; } } function autocompleteUsers(state: RequestStatusType = initialRequestState(), action: GenericAction): RequestStatusType { return handleRequest( UserTypes.AUTOCOMPLETE_USERS_REQUEST, UserTypes.AUTOCOMPLETE_USERS_SUCCESS, UserTypes.AUTOCOMPLETE_USERS_FAILURE, state, action, ); } function updateMe(state: RequestStatusType = initialRequestState(), action: GenericAction): RequestStatusType { return handleRequest( UserTypes.UPDATE_ME_REQUEST, UserTypes.UPDATE_ME_SUCCESS, UserTypes.UPDATE_ME_FAILURE, state, action, ); } export default (combineReducers({ checkMfa, login, logout, autocompleteUsers, updateMe, }) as (b: UsersRequestsStatuses, a: GenericAction) => UsersRequestsStatuses);