Files
dspace-angular/src/app/core/index/index.actions.ts
2018-11-23 17:58:14 +01:00

95 lines
2.1 KiB
TypeScript

import { Action } from '@ngrx/store';
import { type } from '../../shared/ngrx/type';
import { IndexName } from './index.reducer';
/**
* The list of HrefIndexAction type definitions
*/
export const IndexActionTypes = {
ADD: type('dspace/core/index/ADD'),
REMOVE_BY_VALUE: type('dspace/core/index/REMOVE_BY_VALUE'),
REMOVE_BY_SUBSTRING: type('dspace/core/index/REMOVE_BY_SUBSTRING')
};
/* tslint:disable:max-classes-per-file */
/**
* An ngrx action to add an value to the index
*/
export class AddToIndexAction implements Action {
type = IndexActionTypes.ADD;
payload: {
name: IndexName;
value: string;
key: string;
};
/**
* Create a new AddToIndexAction
*
* @param name
* the name of the index to add to
* @param key
* the key to add
* @param value
* the self link of the resource the key belongs to
*/
constructor(name: IndexName, key: string, value: string) {
this.payload = { name, key, value };
}
}
/**
* An ngrx action to remove an value from the index
*/
export class RemoveFromIndexByValueAction implements Action {
type = IndexActionTypes.REMOVE_BY_VALUE;
payload: {
name: IndexName,
value: string
};
/**
* Create a new RemoveFromIndexByValueAction
*
* @param name
* the name of the index to remove from
* @param value
* the value to remove the UUID for
*/
constructor(name: IndexName, value: string) {
this.payload = { name, value };
}
}
/**
* An ngrx action to remove multiple values from the index by substring
*/
export class RemoveFromIndexBySubstringAction implements Action {
type = IndexActionTypes.REMOVE_BY_SUBSTRING;
payload: {
name: IndexName,
value: string
};
/**
* Create a new RemoveFromIndexByValueAction
*
* @param name
* the name of the index to remove from
* @param value
* the value to remove the UUID for
*/
constructor(name: IndexName, value: string) {
this.payload = { name, value };
}
}
/* tslint:enable:max-classes-per-file */
/**
* A type to encompass all HrefIndexActions
*/
export type IndexAction = AddToIndexAction | RemoveFromIndexByValueAction;