export function reducer()

in src/app/customers/cases/store/cases.reducer.ts [30:72]


export function reducer(state = initialState, action: caseActions.Actions): ResourceState {

  switch (action.type) {

    case caseActions.EXECUTE_COMMAND_SUCCESS: {
      const payload = action.payload;

      const caseId = payload.caseId;
      const commandAction: string = payload.action;

      const caseInstance = state.entities[caseId];

      let caseState: CaseState = null;

      if (commandAction === 'OPEN') {
        caseState = 'PENDING';
      }else if (commandAction === 'APPROVE') {
        caseState = 'APPROVED';
      }else if (commandAction === 'DENY') {
        caseState = 'CLOSED';
      }else if (commandAction === 'CLOSE') {
        caseState = 'CLOSED';
      }else if (commandAction === 'DISBURSE') {
        caseState = 'ACTIVE';
      }

      caseInstance.currentState = caseState;

      return {
        ids: [ ...state.ids ],
        entities: Object.assign({}, state.entities, {
          [caseInstance.identifier]: caseInstance
        }),
        loadedAt: state.loadedAt,
        selectedId: state.selectedId
      };
    }

    default: {
      return state;
    }
  }
}