export function reducer()

in src/app/customers/cases/store/documents/documents.reducer.ts [32:77]


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

  switch (action.type) {

    case documentActions.LOAD_ALL: {
      return initialState;
    }

    case documentActions.LOAD_ALL_COMPLETE: {
      const documents: CustomerDocument[] = action.payload;

      const ids = documents.map(document => document.identifier);

      const entities = resourcesToHash(documents);

      const loadedAt = idsToHashWithCurrentTimestamp(ids);

      return {
        ids: [ ...ids ],
        entities: entities,
        loadedAt: loadedAt,
        selectedId: state.selectedId
      };
    }

    case documentActions.LOCK_SUCCESS: {
      const payload: LockPayload = action.payload;

      const document = state.entities[payload.documentId];

      const entities = Object.assign({}, state.entities, {
        [document.identifier]: Object.assign({}, document, {
          completed: true
        })
      });

      return Object.assign({}, state, {
        entities
      })
    }

    default: {
      return state;
    }
  }
}