diff --git a/src/app/core/data/workflow-action-data.service.ts b/src/app/core/data/workflow-action-data.service.ts index 17b861e1af..be2a170ac5 100644 --- a/src/app/core/data/workflow-action-data.service.ts +++ b/src/app/core/data/workflow-action-data.service.ts @@ -2,7 +2,6 @@ import { DataService } from './data.service'; import { WorkflowAction } from '../tasks/models/workflow-action-object.model'; import { RequestService } from './request.service'; import { RemoteDataBuildService } from '../cache/builders/remote-data-build.service'; -import { NormalizedObjectBuildService } from '../cache/builders/normalized-object-build.service'; import { Store } from '@ngrx/store'; import { CoreState } from '../core.reducers'; import { ObjectCacheService } from '../cache/object-cache.service'; @@ -13,18 +12,20 @@ import { DefaultChangeAnalyzer } from './default-change-analyzer.service'; import { FindListOptions } from './request.models'; import { Observable } from 'rxjs/internal/Observable'; import { Injectable } from '@angular/core'; +import { dataService } from '../cache/builders/build-decorators'; +import { WORKFLOW_ACTION } from '../tasks/models/workflow-action-object.resource-type'; /** * A service responsible for fetching/sending data from/to the REST API on the workflowactions endpoint */ @Injectable() +@dataService(WORKFLOW_ACTION) export class WorkflowActionDataService extends DataService { protected linkPath = 'workflowactions'; constructor( protected requestService: RequestService, protected rdbService: RemoteDataBuildService, - protected dataBuildService: NormalizedObjectBuildService, protected store: Store, protected objectCache: ObjectCacheService, protected halService: HALEndpointService, diff --git a/src/app/core/tasks/models/normalized-workflow-action-object.model.ts b/src/app/core/tasks/models/normalized-workflow-action-object.model.ts deleted file mode 100644 index a5d1754a4c..0000000000 --- a/src/app/core/tasks/models/normalized-workflow-action-object.model.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { autoserialize, inheritSerialization } from 'cerialize'; -import { mapsTo } from '../../cache/builders/build-decorators'; -import { WorkflowAction } from './workflow-action-object.model'; -import { NormalizedDSpaceObject } from '../../cache/models/normalized-dspace-object.model'; - -/** - * A normalized model class for a WorkflowAction - */ -@mapsTo(WorkflowAction) -@inheritSerialization(NormalizedDSpaceObject) -export class NormalizedWorkflowAction extends NormalizedDSpaceObject { - /** - * The workflow action's identifier - */ - @autoserialize - id: string; - - /** - * The options available for this workflow action - */ - @autoserialize - options: string[]; -} diff --git a/src/app/core/tasks/models/workflow-action-object.model.ts b/src/app/core/tasks/models/workflow-action-object.model.ts index 57d90354f0..720d817859 100644 --- a/src/app/core/tasks/models/workflow-action-object.model.ts +++ b/src/app/core/tasks/models/workflow-action-object.model.ts @@ -1,19 +1,25 @@ -import { ResourceType } from '../../shared/resource-type'; +import { inheritSerialization, autoserialize } from 'cerialize'; +import { typedObject } from '../../cache/builders/build-decorators'; import { DSpaceObject } from '../../shared/dspace-object.model'; +import { WORKFLOW_ACTION } from './workflow-action-object.resource-type'; /** * A model class for a WorkflowAction */ +@typedObject +@inheritSerialization(DSpaceObject) export class WorkflowAction extends DSpaceObject { - static type = new ResourceType('workflowaction'); + static type = WORKFLOW_ACTION; /** * The workflow action's identifier */ + @autoserialize id: string; /** * The options available for this workflow action */ + @autoserialize options: string[]; } diff --git a/src/app/core/tasks/models/workflow-action-object.resource-type.ts b/src/app/core/tasks/models/workflow-action-object.resource-type.ts new file mode 100644 index 0000000000..d48ffd18f4 --- /dev/null +++ b/src/app/core/tasks/models/workflow-action-object.resource-type.ts @@ -0,0 +1,9 @@ +import { ResourceType } from '../../shared/resource-type'; + +/** + * The resource type for WorkflowAction + * + * Needs to be in a separate file to prevent circular + * dependencies in webpack. + */ +export const WORKFLOW_ACTION = new ResourceType('workflowaction');