Files
dspace-angular/src/app/core/json-patch/selectors.ts
2019-03-25 16:42:53 +01:00

32 lines
1.4 KiB
TypeScript

import { MemoizedSelector } from '@ngrx/store';
import { coreSelector, CoreState } from '../core.reducers';
import { JsonPatchOperationsEntry, JsonPatchOperationsResourceEntry } from './json-patch-operations.reducer';
import { keySelector, subStateSelector } from '../../submission/selectors';
/**
* Return MemoizedSelector to select all jsonPatchOperations for a specified resource type, stored in the state
*
* @param resourceType
* the resource type
* @return MemoizedSelector<CoreState, JsonPatchOperationsResourceEntry>
* MemoizedSelector
*/
export function jsonPatchOperationsByResourceType(resourceType: string): MemoizedSelector<CoreState, JsonPatchOperationsResourceEntry> {
return keySelector<CoreState, JsonPatchOperationsResourceEntry>(coreSelector,'json/patch', resourceType);
}
/**
* Return MemoizedSelector to select all jsonPatchOperations for a specified resource id, stored in the state
*
* @param resourceType
* the resource type
* @param resourceId
* the resourceId type
* @return MemoizedSelector<CoreState, JsonPatchOperationsResourceEntry>
* MemoizedSelector
*/
export function jsonPatchOperationsByResourceId(resourceType: string, resourceId: string): MemoizedSelector<CoreState, JsonPatchOperationsEntry> {
const resourceTypeSelector = jsonPatchOperationsByResourceType(resourceType);
return subStateSelector<CoreState, JsonPatchOperationsEntry>(resourceTypeSelector, resourceId);
}