in src/app/offices/store/teller/tellers.reducer.ts [32:92]
export function reducer(state = initialState, action: tellers.Actions): ResourceState {
switch (action.type) {
case tellers.LOAD_TELLER: {
return initialState;
}
case tellers.LOAD_TELLER_SUCCESS: {
const tellers: Teller[] = action.payload;
const ids = tellers.map(teller => teller.code);
const entities = resourcesToHash(tellers, 'code');
const loadedAt = idsToHashWithCurrentTimestamp(ids);
return {
ids: [ ...ids ],
entities: entities,
loadedAt: loadedAt,
selectedId: state.selectedId
};
}
case tellers.EXECUTE_COMMAND_SUCCESS: {
const payload = action.payload;
const tellerCode = payload.tellerCode;
const command: TellerManagementCommand = payload.command;
const teller: Teller = state.entities[tellerCode];
let tellerState: Status = null;
let assignedEmployee = null;
if (command.action === 'OPEN') {
tellerState = 'OPEN';
assignedEmployee = command.assignedEmployeeIdentifier;
} else if (command.action === 'CLOSE') {
tellerState = 'CLOSED';
}
const newTeller = Object.assign({}, teller, {
state: tellerState,
assignedEmployee
});
return {
ids: [ ...state.ids ],
entities: Object.assign({}, state.entities, {
[teller.code]: newTeller
}),
loadedAt: state.loadedAt,
selectedId: state.selectedId
};
}
default: {
return state;
}
}
}