mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-07 01:54:15 +00:00
95 lines
2.1 KiB
TypeScript
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;
|