forked from hazza/dspace-angular
280 lines
7.5 KiB
TypeScript
280 lines
7.5 KiB
TypeScript
import { Action } from '@ngrx/store';
|
|
|
|
import { type } from '../../shared/ngrx/type';
|
|
|
|
/**
|
|
* For each action type in an action group, make a simple
|
|
* enum object for all of this group's action types.
|
|
*
|
|
* The 'type' utility function coerces strings into string
|
|
* literal types and runs a simple check to guarantee all
|
|
* action types in the application are unique.
|
|
*/
|
|
export const JsonPatchOperationsActionTypes = {
|
|
NEW_JSON_PATCH_ADD_OPERATION: type('dspace/core/patch/NEW_JSON_PATCH_ADD_OPERATION'),
|
|
NEW_JSON_PATCH_COPY_OPERATION: type('dspace/core/patch/NEW_JSON_PATCH_COPY_OPERATION'),
|
|
NEW_JSON_PATCH_MOVE_OPERATION: type('dspace/core/patch/NEW_JSON_PATCH_MOVE_OPERATION'),
|
|
NEW_JSON_PATCH_REMOVE_OPERATION: type('dspace/core/patch/NEW_JSON_PATCH_REMOVE_OPERATION'),
|
|
NEW_JSON_PATCH_REPLACE_OPERATION: type('dspace/core/patch/NEW_JSON_PATCH_REPLACE_OPERATION'),
|
|
COMMIT_JSON_PATCH_OPERATIONS: type('dspace/core/patch/COMMIT_JSON_PATCH_OPERATIONS'),
|
|
ROLLBACK_JSON_PATCH_OPERATIONS: type('dspace/core/patch/ROLLBACK_JSON_PATCH_OPERATIONS'),
|
|
FLUSH_JSON_PATCH_OPERATIONS: type('dspace/core/patch/FLUSH_JSON_PATCH_OPERATIONS'),
|
|
START_TRANSACTION_JSON_PATCH_OPERATIONS: type('dspace/core/patch/START_TRANSACTION_JSON_PATCH_OPERATIONS'),
|
|
};
|
|
|
|
/* tslint:disable:max-classes-per-file */
|
|
|
|
/**
|
|
* An ngrx action to commit the current transaction
|
|
*/
|
|
export class CommitPatchOperationsAction implements Action {
|
|
type = JsonPatchOperationsActionTypes.COMMIT_JSON_PATCH_OPERATIONS;
|
|
payload: {
|
|
resourceType: string;
|
|
resourceId: string;
|
|
};
|
|
|
|
/**
|
|
* Create a new CommitPatchOperationsAction
|
|
*
|
|
* @param resourceType
|
|
* the resource's type
|
|
* @param resourceId
|
|
* the resource's ID
|
|
*/
|
|
constructor(resourceType: string, resourceId: string) {
|
|
this.payload = { resourceType, resourceId };
|
|
}
|
|
}
|
|
|
|
/**
|
|
* An ngrx action to rollback the current transaction
|
|
*/
|
|
export class RollbacktPatchOperationsAction implements Action {
|
|
type = JsonPatchOperationsActionTypes.ROLLBACK_JSON_PATCH_OPERATIONS;
|
|
payload: {
|
|
resourceType: string;
|
|
resourceId: string;
|
|
};
|
|
|
|
/**
|
|
* Create a new CommitPatchOperationsAction
|
|
*
|
|
* @param resourceType
|
|
* the resource's type
|
|
* @param resourceId
|
|
* the resource's ID
|
|
*/
|
|
constructor(resourceType: string, resourceId: string) {
|
|
this.payload = { resourceType, resourceId };
|
|
}
|
|
}
|
|
|
|
/**
|
|
* An ngrx action to initiate a transaction block
|
|
*/
|
|
export class StartTransactionPatchOperationsAction implements Action {
|
|
type = JsonPatchOperationsActionTypes.START_TRANSACTION_JSON_PATCH_OPERATIONS;
|
|
payload: {
|
|
resourceType: string;
|
|
resourceId: string;
|
|
startTime: number;
|
|
};
|
|
|
|
/**
|
|
* Create a new CommitPatchOperationsAction
|
|
*
|
|
* @param resourceType
|
|
* the resource's type
|
|
* @param resourceId
|
|
* the resource's ID
|
|
* @param startTime
|
|
* the start timestamp
|
|
*/
|
|
constructor(resourceType: string, resourceId: string, startTime: number) {
|
|
this.payload = { resourceType, resourceId, startTime };
|
|
}
|
|
}
|
|
|
|
/**
|
|
* An ngrx action to flush list of the JSON Patch operations
|
|
*/
|
|
export class FlushPatchOperationsAction implements Action {
|
|
type = JsonPatchOperationsActionTypes.FLUSH_JSON_PATCH_OPERATIONS;
|
|
payload: {
|
|
resourceType: string;
|
|
resourceId: string;
|
|
};
|
|
|
|
/**
|
|
* Create a new FlushPatchOperationsAction
|
|
*
|
|
* @param resourceType
|
|
* the resource's type
|
|
* @param resourceId
|
|
* the resource's ID
|
|
*/
|
|
constructor(resourceType: string, resourceId: string) {
|
|
this.payload = { resourceType, resourceId };
|
|
}
|
|
}
|
|
|
|
/**
|
|
* An ngrx action to Add new HTTP/PATCH ADD operations to state
|
|
*/
|
|
export class NewPatchAddOperationAction implements Action {
|
|
type = JsonPatchOperationsActionTypes.NEW_JSON_PATCH_ADD_OPERATION;
|
|
payload: {
|
|
resourceType: string;
|
|
resourceId: string;
|
|
path: string;
|
|
value: any
|
|
};
|
|
|
|
/**
|
|
* Create a new NewPatchAddOperationAction
|
|
*
|
|
* @param resourceType
|
|
* the resource's type where to add operation
|
|
* @param resourceId
|
|
* the resource's ID
|
|
* @param path
|
|
* the path of the operation
|
|
* @param value
|
|
* the operation's payload
|
|
*/
|
|
constructor(resourceType: string, resourceId: string, path: string, value: any) {
|
|
this.payload = { resourceType, resourceId, path, value };
|
|
}
|
|
}
|
|
|
|
/**
|
|
* An ngrx action to add new JSON Patch COPY operation to state
|
|
*/
|
|
export class NewPatchCopyOperationAction implements Action {
|
|
type = JsonPatchOperationsActionTypes.NEW_JSON_PATCH_COPY_OPERATION;
|
|
payload: {
|
|
resourceType: string;
|
|
resourceId: string;
|
|
from: string;
|
|
path: string;
|
|
};
|
|
|
|
/**
|
|
* Create a new NewPatchCopyOperationAction
|
|
*
|
|
* @param resourceType
|
|
* the resource's type
|
|
* @param resourceId
|
|
* the resource's ID
|
|
* @param from
|
|
* the path to copy the value from
|
|
* @param path
|
|
* the path where to copy the value
|
|
*/
|
|
constructor(resourceType: string, resourceId: string, from: string, path: string) {
|
|
this.payload = { resourceType, resourceId, from, path };
|
|
}
|
|
}
|
|
|
|
/**
|
|
* An ngrx action to Add new JSON Patch MOVE operation to state
|
|
*/
|
|
export class NewPatchMoveOperationAction implements Action {
|
|
type = JsonPatchOperationsActionTypes.NEW_JSON_PATCH_MOVE_OPERATION;
|
|
payload: {
|
|
resourceType: string;
|
|
resourceId: string;
|
|
from: string;
|
|
path: string;
|
|
};
|
|
|
|
/**
|
|
* Create a new NewPatchMoveOperationAction
|
|
*
|
|
* @param resourceType
|
|
* the resource's type
|
|
* @param resourceId
|
|
* the resource's ID
|
|
* @param from
|
|
* the path to move the value from
|
|
* @param path
|
|
* the path where to move the value
|
|
*/
|
|
constructor(resourceType: string, resourceId: string, from: string, path: string) {
|
|
this.payload = { resourceType, resourceId, from, path };
|
|
}
|
|
}
|
|
|
|
/**
|
|
* An ngrx action to Add new JSON Patch REMOVE operation to state
|
|
*/
|
|
export class NewPatchRemoveOperationAction implements Action {
|
|
type = JsonPatchOperationsActionTypes.NEW_JSON_PATCH_REMOVE_OPERATION;
|
|
payload: {
|
|
resourceType: string;
|
|
resourceId: string;
|
|
path: string;
|
|
};
|
|
|
|
/**
|
|
* Create a new NewPatchRemoveOperationAction
|
|
*
|
|
* @param resourceType
|
|
* the resource's type
|
|
* @param resourceId
|
|
* the resource's ID
|
|
* @param path
|
|
* the path of the operation
|
|
*/
|
|
constructor(resourceType: string, resourceId: string, path: string) {
|
|
this.payload = { resourceType, resourceId, path };
|
|
}
|
|
}
|
|
|
|
/**
|
|
* An ngrx action to add new JSON Patch REPLACE operation to state
|
|
*/
|
|
export class NewPatchReplaceOperationAction implements Action {
|
|
type = JsonPatchOperationsActionTypes.NEW_JSON_PATCH_REPLACE_OPERATION;
|
|
payload: {
|
|
resourceType: string;
|
|
resourceId: string;
|
|
path: string;
|
|
value: any
|
|
};
|
|
|
|
/**
|
|
* Create a new NewPatchReplaceOperationAction
|
|
*
|
|
* @param resourceType
|
|
* the resource's type
|
|
* @param resourceId
|
|
* the resource's ID
|
|
* @param path
|
|
* the path of the operation
|
|
* @param value
|
|
* the operation's payload
|
|
*/
|
|
constructor(resourceType: string, resourceId: string, path: string, value: any) {
|
|
this.payload = { resourceType, resourceId, path, value };
|
|
}
|
|
}
|
|
|
|
/* tslint:enable:max-classes-per-file */
|
|
|
|
/**
|
|
* Export a type alias of all actions in this action group
|
|
* so that reducers can easily compose action types
|
|
*/
|
|
export type PatchOperationsActions
|
|
= CommitPatchOperationsAction
|
|
| FlushPatchOperationsAction
|
|
| NewPatchAddOperationAction
|
|
| NewPatchCopyOperationAction
|
|
| NewPatchMoveOperationAction
|
|
| NewPatchRemoveOperationAction
|
|
| NewPatchReplaceOperationAction
|
|
| RollbacktPatchOperationsAction
|
|
| StartTransactionPatchOperationsAction
|