From 8e98f07deab485271462132d1b2212506577ba26 Mon Sep 17 00:00:00 2001 From: Florent Poittevin <florent.poittevin@unige.ch> Date: Thu, 4 Jul 2019 09:29:44 +0200 Subject: [PATCH] Apply refacto crud on all code --- src/app/deposit/deposit.action.ts | 12 +- src/app/deposit/deposit.state.ts | 14 +- .../deposit/dialogs/delete/delete.dialog.ts | 3 +- src/app/deposit/views/create/create.view.ts | 4 +- src/app/deposit/views/detail/detail.view.ts | 4 +- src/app/deposit/views/edit/edit.view.ts | 2 +- .../dialogs/delete/delete.dialog.ts | 5 +- .../views/create/create.view.ts | 3 +- .../views/detail/detail.view.ts | 4 +- .../views/edit/edit.view.ts | 4 +- src/app/shared/crud.state.ts | 27 ++-- .../abstract-delete/abstract-delete.dialog.ts | 7 +- src/app/shared/language.action.ts | 120 ++++++----------- src/app/shared/language.state.ts | 7 +- src/app/shared/license.action.ts | 121 ++++++------------ src/app/shared/license.state.ts | 87 +------------ src/app/shared/organizational-unit.action.ts | 18 +-- src/app/shared/organizational-unit.state.ts | 85 ++---------- src/app/shared/preservation-policy.action.ts | 120 ++++++----------- src/app/shared/preservation-policy.state.ts | 90 +------------ src/app/shared/submission-policy.action.ts | 120 ++++++----------- src/app/shared/submission-policy.state.ts | 88 +------------ src/app/shared/utils/crud-action.util.ts | 83 ++++++------ .../abstract-create/abstract-create.view.ts | 9 +- .../abstract-detail/abstract-detail.view.ts | 8 +- .../views/abstract-edit/abstract-edit.view.ts | 10 +- .../views/abstract-list/abstract-list.view.ts | 6 +- 27 files changed, 288 insertions(+), 773 deletions(-) diff --git a/src/app/deposit/deposit.action.ts b/src/app/deposit/deposit.action.ts index f0c23b371..f1352acfe 100644 --- a/src/app/deposit/deposit.action.ts +++ b/src/app/deposit/deposit.action.ts @@ -5,24 +5,21 @@ import {CrudNameSpace} from "@app/shared/crud.namespace"; import {TypeCrudAction} from "@app/shared/decorators/type-crud-action.decorator"; import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum"; import {StateEnum} from "@app/shared/enums/state.enum"; -import {CollectionTypedModel} from "@app/shared/models/collection-typed.model"; -import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; import {StringUtil} from "@app/shared/utils/string.util"; const state = StateEnum.deposit; export namespace DepositAction { - + @TypeCrudAction(state) export class LoadResource extends CrudAction.LoadResource { - static readonly type = StringUtil.format(CrudAction.LoadResource.type, state); } + @TypeCrudAction(state) export class LoadResourceSuccess extends CrudAction.LoadResourceSuccess { - static readonly type = StringUtil.format(CrudAction.LoadResourceSuccess.type, state); } + @TypeCrudAction(state) export class LoadResourceFail extends CrudAction.LoadResourceFail { - static readonly type = StringUtil.format(CrudAction.LoadResourceFail.type, state); } @TypeCrudAction(state) @@ -30,7 +27,8 @@ export namespace DepositAction { } @TypeCrudAction(state) - export class GetAll extends CrudAction.GetAll {} + export class GetAll extends CrudAction.GetAll { + } @TypeCrudAction(state) export class GetAllSuccess extends CrudAction.GetAllSuccess<DepositsModel> { diff --git a/src/app/deposit/deposit.state.ts b/src/app/deposit/deposit.state.ts index 71b022a19..f66bfd90b 100644 --- a/src/app/deposit/deposit.state.ts +++ b/src/app/deposit/deposit.state.ts @@ -3,8 +3,8 @@ import {DepositAction, depositActionNameSpace} from "@app/deposit/deposit.action import {DepositDataFileModel} from "@app/deposit/models/deposit-data-file.model"; import {UploadFileStatusModel} from "@app/deposit/models/upload-file-status.model"; import {DepositsModel} from "@app/generated-api"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudState, CrudStateModel} from "@app/shared/crud.state"; -import {OverrideCrudAction} from "@app/shared/decorators/crud.decorator"; import {ApiActionEnum} from "@app/shared/enums/api-action.enum"; import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum"; import {PreIngestResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum"; @@ -48,14 +48,16 @@ export class DepositState extends CrudState<DepositsModel> { protected store: Store, protected notificationService: NotificationService) { super(apiService, store, notificationService); - this.initState(depositActionNameSpace); - console.log(this); } defineUrlResource(): ResourceApiEnum { return PreIngestResourceApiEnum.deposits; } + defineCrudNameSpace(): CrudNameSpace { + return depositActionNameSpace; + } + defineState(): StateEnum { return StateEnum.deposit; } @@ -64,12 +66,6 @@ export class DepositState extends CrudState<DepositsModel> { return []; } - @OverrideCrudAction() - @Action(DepositAction.GetAll) - getAll(ctx: StateContext<CrudStateModel<DepositsModel>>, action: DepositAction.GetAll): Observable<CollectionTypedModel<DepositsModel>> { - return super.getAll(ctx, action); - } - @Action(DepositAction.LoadResource) loadResource(ctx: StateContext<DepositStateModel>, action: DepositAction.LoadResource): void { ctx.patchState({ diff --git a/src/app/deposit/dialogs/delete/delete.dialog.ts b/src/app/deposit/dialogs/delete/delete.dialog.ts index 43c8cafcc..8cbf4e5c4 100644 --- a/src/app/deposit/dialogs/delete/delete.dialog.ts +++ b/src/app/deposit/dialogs/delete/delete.dialog.ts @@ -1,5 +1,6 @@ import {ChangeDetectionStrategy, Component, Inject} from "@angular/core"; import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material"; +import {depositActionNameSpace} from "@app/deposit/deposit.action"; import {DepositStateModel} from "@app/deposit/deposit.state"; import {DepositsModel} from "@app/generated-api"; import {AbstractDeleteDialog} from "@app/shared/dialogs/abstract-delete/abstract-delete.dialog"; @@ -24,7 +25,7 @@ export class DeleteDialog extends AbstractDeleteDialog<DepositsModel, DepositSta protected dialogRef: MatDialogRef<DeleteDialog>, @Inject(MAT_DIALOG_DATA) public data: DeleteDialogModel, ) { - super(store, dialogRef, data, StateEnum.deposit); + super(store, dialogRef, data, StateEnum.deposit, depositActionNameSpace); } } diff --git a/src/app/deposit/views/create/create.view.ts b/src/app/deposit/views/create/create.view.ts index b46430034..bec52015a 100644 --- a/src/app/deposit/views/create/create.view.ts +++ b/src/app/deposit/views/create/create.view.ts @@ -1,5 +1,5 @@ import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core"; -import {DepositAction} from "@app/deposit/deposit.action"; +import {DepositAction, depositActionNameSpace} from "@app/deposit/deposit.action"; import {DepositStateModel} from "@app/deposit/deposit.state"; import {DepositsModel, LanguagesModel, LicensesModel, PreservationPoliciesModel, SubmissionPoliciesModel} from "@app/generated-api"; import {OrganizationalUnitModule} from "@app/organizational-unit/organizational-unit.module"; @@ -29,7 +29,7 @@ export class CreateView extends AbstractCreateView<DepositsModel, DepositStateMo @Select((state) => (state[StateEnum.organizationalUnit] as OrganizationalUnitStateModel).list) organizationalUnits$: Observable<OrganizationalUnitModule[]>; constructor(protected store: Store) { - super(store, StateEnum.deposit); + super(store, StateEnum.deposit, depositActionNameSpace); } ngOnInit() { diff --git a/src/app/deposit/views/detail/detail.view.ts b/src/app/deposit/views/detail/detail.view.ts index 6ee60b4ba..2bcf74db4 100644 --- a/src/app/deposit/views/detail/detail.view.ts +++ b/src/app/deposit/views/detail/detail.view.ts @@ -1,7 +1,7 @@ import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core"; import {MatDialog} from "@angular/material"; import {ActivatedRoute} from "@angular/router"; -import {DepositAction} from "@app/deposit/deposit.action"; +import {DepositAction, depositActionNameSpace} from "@app/deposit/deposit.action"; import {DepositStateModel} from "@app/deposit/deposit.state"; import {DepositDataFileModel} from "@app/deposit/models/deposit-data-file.model"; import {DepositsModel, LanguagesModel, LicensesModel, PreservationPoliciesModel, SubmissionPoliciesModel} from "@app/generated-api"; @@ -40,7 +40,7 @@ export class DetailView extends AbstractDetailView<DepositsModel, DepositStateMo constructor(protected store: Store, protected route: ActivatedRoute, public dialog: MatDialog) { - super(store, route, dialog, StateEnum.deposit); + super(store, route, dialog, StateEnum.deposit, depositActionNameSpace); } ngOnInit() { diff --git a/src/app/deposit/views/edit/edit.view.ts b/src/app/deposit/views/edit/edit.view.ts index 06bb94077..ff02571b0 100644 --- a/src/app/deposit/views/edit/edit.view.ts +++ b/src/app/deposit/views/edit/edit.view.ts @@ -32,7 +32,7 @@ export class EditView extends AbstractEditView<DepositsModel, DepositStateModel> constructor(protected store: Store, protected route: ActivatedRoute) { - super(store, route, StateEnum.deposit); + super(store, route, StateEnum.deposit, depositActionNameSpace); } ngOnInit() { diff --git a/src/app/organizational-unit/dialogs/delete/delete.dialog.ts b/src/app/organizational-unit/dialogs/delete/delete.dialog.ts index 4f69389b4..ebf855723 100644 --- a/src/app/organizational-unit/dialogs/delete/delete.dialog.ts +++ b/src/app/organizational-unit/dialogs/delete/delete.dialog.ts @@ -1,10 +1,11 @@ import {ChangeDetectionStrategy, Component, Inject} from "@angular/core"; import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material"; import {OrganizationalUnitsModel} from "@app/generated-api"; -import {OrganizationalUnitStateModel} from "@app/shared/organizational-unit.state"; import {AbstractDeleteDialog} from "@app/shared/dialogs/abstract-delete/abstract-delete.dialog"; import {StateEnum} from "@app/shared/enums/state.enum"; import {DeleteDialogModel} from "@app/shared/models/delete-dialog.model"; +import {orgUnitActionNameSpace} from "@app/shared/organizational-unit.action"; +import {OrganizationalUnitStateModel} from "@app/shared/organizational-unit.state"; import {TRANSLATE} from "@app/shared/utils/translate.util"; import {Store} from "@ngxs/store"; @@ -24,7 +25,7 @@ export class DeleteDialog extends AbstractDeleteDialog<OrganizationalUnitsModel, protected dialogRef: MatDialogRef<DeleteDialog>, @Inject(MAT_DIALOG_DATA) public data: DeleteDialogModel, ) { - super(store, dialogRef, data, StateEnum.organizationalUnit); + super(store, dialogRef, data, StateEnum.organizationalUnit, orgUnitActionNameSpace); } } diff --git a/src/app/organizational-unit/views/create/create.view.ts b/src/app/organizational-unit/views/create/create.view.ts index db111601b..396c10c4d 100644 --- a/src/app/organizational-unit/views/create/create.view.ts +++ b/src/app/organizational-unit/views/create/create.view.ts @@ -1,6 +1,7 @@ import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core"; import {OrganizationalUnitsModel, PreservationPoliciesModel, SubmissionPoliciesModel} from "@app/generated-api"; import {StateEnum} from "@app/shared/enums/state.enum"; +import {orgUnitActionNameSpace} from "@app/shared/organizational-unit.action"; import {OrganizationalUnitStateModel} from "@app/shared/organizational-unit.state"; import {PreservationPolicyStateModel} from "@app/shared/preservation-policy.state"; import {SharedStateModel} from "@app/shared/shared.state"; @@ -20,7 +21,7 @@ export class CreateView extends AbstractCreateView<OrganizationalUnitsModel, Org @Select((state) => ((state[StateEnum.shared] as SharedStateModel).preservationPolicy as PreservationPolicyStateModel).list) listPreservationPolicies$: Observable<PreservationPoliciesModel[]>; constructor(protected store: Store) { - super(store, StateEnum.organizationalUnit); + super(store, StateEnum.organizationalUnit, orgUnitActionNameSpace); } ngOnInit(): void { diff --git a/src/app/organizational-unit/views/detail/detail.view.ts b/src/app/organizational-unit/views/detail/detail.view.ts index 0e10da7e6..1a4efd0d7 100644 --- a/src/app/organizational-unit/views/detail/detail.view.ts +++ b/src/app/organizational-unit/views/detail/detail.view.ts @@ -3,7 +3,7 @@ import {MatDialog} from "@angular/material"; import {ActivatedRoute} from "@angular/router"; import {OrganizationalUnitsModel, PreservationPoliciesModel, SubmissionPoliciesModel} from "@app/generated-api"; import {StateEnum} from "@app/shared/enums/state.enum"; -import {OrgUnitAction} from "@app/shared/organizational-unit.action"; +import {OrgUnitAction, orgUnitActionNameSpace} from "@app/shared/organizational-unit.action"; import {OrganizationalUnitStateModel} from "@app/shared/organizational-unit.state"; import {PreservationPolicyStateModel} from "@app/shared/preservation-policy.state"; import {SharedStateModel} from "@app/shared/shared.state"; @@ -32,7 +32,7 @@ export class DetailView extends AbstractDetailView<OrganizationalUnitsModel, Org constructor(protected store: Store, protected route: ActivatedRoute, public dialog: MatDialog) { - super(store, route, dialog, StateEnum.organizationalUnit); + super(store, route, dialog, StateEnum.organizationalUnit, orgUnitActionNameSpace); } getSubResourceWithParentId(id: string): void { diff --git a/src/app/organizational-unit/views/edit/edit.view.ts b/src/app/organizational-unit/views/edit/edit.view.ts index 33864745e..433eb7b19 100644 --- a/src/app/organizational-unit/views/edit/edit.view.ts +++ b/src/app/organizational-unit/views/edit/edit.view.ts @@ -2,7 +2,7 @@ import {ChangeDetectionStrategy, Component, OnInit} from "@angular/core"; import {ActivatedRoute} from "@angular/router"; import {OrganizationalUnitsModel, PreservationPoliciesModel, SubmissionPoliciesModel} from "@app/generated-api"; import {StateEnum} from "@app/shared/enums/state.enum"; -import {OrgUnitAction} from "@app/shared/organizational-unit.action"; +import {OrgUnitAction, orgUnitActionNameSpace} from "@app/shared/organizational-unit.action"; import {OrganizationalUnitStateModel} from "@app/shared/organizational-unit.state"; import {PreservationPolicyStateModel} from "@app/shared/preservation-policy.state"; import {SharedStateModel} from "@app/shared/shared.state"; @@ -25,7 +25,7 @@ export class EditView extends AbstractEditView<OrganizationalUnitsModel, Organiz constructor(protected store: Store, protected route: ActivatedRoute) { - super(store, route, StateEnum.organizationalUnit); + super(store, route, StateEnum.organizationalUnit, orgUnitActionNameSpace); } getSubResourceWithParentId(id: string): void { diff --git a/src/app/shared/crud.state.ts b/src/app/shared/crud.state.ts index 7300cbf40..57018824b 100644 --- a/src/app/shared/crud.state.ts +++ b/src/app/shared/crud.state.ts @@ -32,6 +32,7 @@ export interface CrudStateModel<T> extends BaseStateModel { export abstract class CrudState<T> { protected readonly state: StateEnum; + protected readonly crudNameSpace: CrudNameSpace; protected readonly urlResource: ResourceApiEnum; private readonly subResource: ApiResourceNameEnum[]; @@ -40,13 +41,17 @@ export abstract class CrudState<T> { protected notificationService: NotificationService) { this.urlResource = this.defineUrlResource(); this.state = this.defineState(); + this.crudNameSpace = this.defineCrudNameSpace(); this.subResource = this.defineSubResource(); + this.initState(this.crudNameSpace); } abstract defineUrlResource(): ResourceApiEnum; abstract defineState(): StateEnum; + abstract defineCrudNameSpace(): CrudNameSpace; + abstract defineSubResource(): ApiResourceNameEnum[]; protected initState(crudNameSpace: CrudNameSpace): void { @@ -85,7 +90,7 @@ export abstract class CrudState<T> { ctx.patchState({ queryParameters: action.queryParameters, }); - ctx.dispatch(CrudActionUtil.getAll(this.state)); + ctx.dispatch(CrudActionUtil.getAll(this.crudNameSpace)); } @RegisterCrudAction((crudNameSpace: CrudNameSpace) => crudNameSpace.GetAll, {cancelUncompleted: true}) @@ -101,10 +106,10 @@ export abstract class CrudState<T> { return this.apiService.get<T>(this.urlResource, queryParameters) .pipe( tap((collection: CollectionTypedModel<T>) => { - ctx.dispatch(CrudActionUtil.getAllSuccess<T>(this.state, collection)); + ctx.dispatch(CrudActionUtil.getAllSuccess<T>(this.crudNameSpace, collection)); }), catchError(error => { - ctx.dispatch(CrudActionUtil.getAllFail(this.state)); + ctx.dispatch(CrudActionUtil.getAllFail(this.crudNameSpace)); throw error; }), ); @@ -139,10 +144,10 @@ export abstract class CrudState<T> { return this.apiService.getById<T>(this.urlResource, action.id) .pipe( tap((model: T) => { - ctx.dispatch(CrudActionUtil.getByIdSuccess(this.state, model)); + ctx.dispatch(CrudActionUtil.getByIdSuccess(this.crudNameSpace, model)); }), catchError(error => { - ctx.dispatch(CrudActionUtil.getByIdFail(this.state)); + ctx.dispatch(CrudActionUtil.getByIdFail(this.crudNameSpace)); throw error; }), ); @@ -172,10 +177,10 @@ export abstract class CrudState<T> { return this.apiService.post<T>(this.urlResource, action.model) .pipe( tap(() => { - ctx.dispatch(CrudActionUtil.createSuccess(this.state)); + ctx.dispatch(CrudActionUtil.createSuccess(this.crudNameSpace)); }), catchError(error => { - ctx.dispatch(CrudActionUtil.createFail(this.state)); + ctx.dispatch(CrudActionUtil.createFail(this.crudNameSpace)); throw error; }), ); @@ -208,10 +213,10 @@ export abstract class CrudState<T> { return this.apiService.patchById<T>(this.urlResource, action.model[ModelAttributeEnum.resId], action.model) .pipe( tap(() => { - ctx.dispatch(CrudActionUtil.updateSuccess(this.state)); + ctx.dispatch(CrudActionUtil.updateSuccess(this.crudNameSpace)); }), catchError(error => { - ctx.dispatch(CrudActionUtil.updateFail(this.state)); + ctx.dispatch(CrudActionUtil.updateFail(this.crudNameSpace)); throw error; }), ); @@ -244,10 +249,10 @@ export abstract class CrudState<T> { return this.apiService.deleteById<T>(this.urlResource, action.resId) .pipe( tap(() => { - ctx.dispatch(CrudActionUtil.deleteSuccess(this.state)); + ctx.dispatch(CrudActionUtil.deleteSuccess(this.crudNameSpace)); }), catchError(error => { - ctx.dispatch(CrudActionUtil.deleteFail(this.state)); + ctx.dispatch(CrudActionUtil.deleteFail(this.crudNameSpace)); throw error; }), ); diff --git a/src/app/shared/dialogs/abstract-delete/abstract-delete.dialog.ts b/src/app/shared/dialogs/abstract-delete/abstract-delete.dialog.ts index 6fe56a03f..c9dc92fab 100644 --- a/src/app/shared/dialogs/abstract-delete/abstract-delete.dialog.ts +++ b/src/app/shared/dialogs/abstract-delete/abstract-delete.dialog.ts @@ -1,8 +1,10 @@ import {Inject, OnInit} from "@angular/core"; import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material"; import {CrudAction} from "@app/shared/crud.action"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudStateModel} from "@app/shared/crud.state"; import {BaseDirective} from "@app/shared/directives/base.directive"; +import {StateEnum} from "@app/shared/enums/state.enum"; import {DeleteDialogModel} from "@app/shared/models/delete-dialog.model"; import {CrudActionUtil} from "@app/shared/utils/crud-action.util"; import {Store} from "@ngxs/store"; @@ -18,7 +20,8 @@ export abstract class AbstractDeleteDialog<T, U extends CrudStateModel<T>> exten protected constructor(protected store: Store, protected dialogRef: MatDialogRef<AbstractDeleteDialog<T, U>>, @Inject(MAT_DIALOG_DATA) public data: DeleteDialogModel, - protected state) { + protected state: StateEnum, + private crudActionNameSpace: CrudNameSpace) { super(); } @@ -27,7 +30,7 @@ export abstract class AbstractDeleteDialog<T, U extends CrudStateModel<T>> exten } confirm() { - this.store.dispatch(CrudActionUtil.delete(this.state, this.data.resId)); + this.store.dispatch(CrudActionUtil.delete(this.crudActionNameSpace, this.data.resId)); this.dialogRef.close(); } } diff --git a/src/app/shared/language.action.ts b/src/app/shared/language.action.ts index 506452e61..f072ceb15 100644 --- a/src/app/shared/language.action.ts +++ b/src/app/shared/language.action.ts @@ -1,138 +1,90 @@ -import {LanguagesModel} from "@app/generated-api"; +import {DepositsModel, LanguagesModel} from "@app/generated-api"; import {CrudAction} from "@app/shared/crud.action"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; +import {TypeCrudAction} from "@app/shared/decorators/type-crud-action.decorator"; import {StateEnum} from "@app/shared/enums/state.enum"; import {CollectionTypedModel} from "@app/shared/models/collection-typed.model"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; +import {OrgUnitAction} from "@app/shared/organizational-unit.action"; import {StringUtil} from "@app/shared/utils/string.util"; const state = StateEnum.language; export namespace LanguageAction { - export class ChangeQueryParameters extends CrudAction.ChangeQueryParameters { - static readonly type = StringUtil.format(CrudAction.ChangeQueryParameters.type, state); + @TypeCrudAction(state) + export class LoadResource extends CrudAction.LoadResource { + } - constructor(public queryParameters: QueryParametersModel) { - super(queryParameters); - } + @TypeCrudAction(state) + export class LoadResourceSuccess extends CrudAction.LoadResourceSuccess { } - export class GetAll extends CrudAction.GetAll { - static readonly type = StringUtil.format(CrudAction.GetAll.type, state); + @TypeCrudAction(state) + export class LoadResourceFail extends CrudAction.LoadResourceFail { + } - constructor(public queryParameters?: QueryParametersModel) { - super(queryParameters); - } + @TypeCrudAction(state) + export class ChangeQueryParameters extends CrudAction.ChangeQueryParameters { } - export class GetAllSuccess extends CrudAction.GetAllSuccess<LanguagesModel> { - static readonly type = StringUtil.format(CrudAction.GetAllSuccess.type, state); + @TypeCrudAction(state) + export class GetAll extends CrudAction.GetAll {} - constructor(public list: CollectionTypedModel<LanguagesModel>) { - super(list); - } + @TypeCrudAction(state) + export class GetAllSuccess extends CrudAction.GetAllSuccess<DepositsModel> { } + @TypeCrudAction(state) export class GetAllFail extends CrudAction.GetAllFail { - static readonly type = StringUtil.format(CrudAction.GetAllFail.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class GetById extends CrudAction.GetById { - static readonly type = StringUtil.format(CrudAction.GetById.type, state); - - constructor(public id: string) { - super(id); - } } - export class GetByIdSuccess extends CrudAction.GetByIdSuccess<LanguagesModel> { - static readonly type = StringUtil.format(CrudAction.GetByIdSuccess.type, state); - - constructor(public model: LanguagesModel) { - super(model); - } + @TypeCrudAction(state) + export class GetByIdSuccess extends CrudAction.GetByIdSuccess<DepositsModel> { } + @TypeCrudAction(state) export class GetByIdFail extends CrudAction.GetByIdFail { - static readonly type = StringUtil.format(CrudAction.GetByIdFail.type, state); - - constructor() { - super(); - } } - export class Create extends CrudAction.Create<LanguagesModel> { - static readonly type = StringUtil.format(CrudAction.Create.type, state); - - constructor(public model: LanguagesModel) { - super(model); - } + @TypeCrudAction(state) + export class Create extends CrudAction.Create<DepositsModel> { } + @TypeCrudAction(state) export class CreateSuccess extends CrudAction.CreateSuccess { - static readonly type = StringUtil.format(CrudAction.CreateSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class CreateFail extends CrudAction.CreateFail { - static readonly type = StringUtil.format(CrudAction.CreateFail.type, state); - - constructor() { - super(); - } } - export class Update extends CrudAction.Update<LanguagesModel> { - static readonly type = StringUtil.format(CrudAction.Update.type, state); - - constructor(public model: LanguagesModel) { - super(model); - } + @TypeCrudAction(state) + export class Update extends CrudAction.Update<DepositsModel> { } + @TypeCrudAction(state) export class UpdateSuccess extends CrudAction.UpdateSuccess { - static readonly type = StringUtil.format(CrudAction.UpdateSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class UpdateFail extends CrudAction.UpdateFail { - static readonly type = StringUtil.format(CrudAction.UpdateFail.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class Delete extends CrudAction.Delete { - static readonly type = StringUtil.format(CrudAction.Delete.type, state); - - constructor(public resId: string) { - super(resId); - } } + @TypeCrudAction(state) export class DeleteSuccess extends CrudAction.DeleteSuccess { - static readonly type = StringUtil.format(CrudAction.DeleteSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class DeleteFail extends CrudAction.DeleteFail { - static readonly type = StringUtil.format(CrudAction.DeleteFail.type, state); - - constructor() { - super(); - } } } + +export const languageActionNameSpace: CrudNameSpace = LanguageAction; diff --git a/src/app/shared/language.state.ts b/src/app/shared/language.state.ts index 91e8ea986..0b8a0106a 100644 --- a/src/app/shared/language.state.ts +++ b/src/app/shared/language.state.ts @@ -1,9 +1,10 @@ import {LanguagesModel} from "@app/generated-api"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudState, CrudStateModel} from "@app/shared/crud.state"; import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum"; import {AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum"; import {StateEnum} from "@app/shared/enums/state.enum"; -import {LanguageAction} from "@app/shared/language.action"; +import {LanguageAction, languageActionNameSpace} from "@app/shared/language.action"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; import {ApiService} from "@app/core/http/api.service"; import {NotificationService} from "@app/core/notification.service"; @@ -34,6 +35,10 @@ export class LanguageState extends CrudState<LanguagesModel> { return StateEnum.language; } + defineCrudNameSpace(): CrudNameSpace { + return languageActionNameSpace; + } + defineSubResource(): ApiResourceNameEnum[] { return []; } diff --git a/src/app/shared/license.action.ts b/src/app/shared/license.action.ts index 2683b72b1..e5b2ce7ed 100644 --- a/src/app/shared/license.action.ts +++ b/src/app/shared/license.action.ts @@ -1,138 +1,91 @@ -import {LicensesModel} from "@app/generated-api"; +import {DepositsModel, LicensesModel} from "@app/generated-api"; import {CrudAction} from "@app/shared/crud.action"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; +import {TypeCrudAction} from "@app/shared/decorators/type-crud-action.decorator"; import {StateEnum} from "@app/shared/enums/state.enum"; import {CollectionTypedModel} from "@app/shared/models/collection-typed.model"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; +import {OrgUnitAction} from "@app/shared/organizational-unit.action"; import {StringUtil} from "@app/shared/utils/string.util"; const state = StateEnum.license; export namespace LicenseAction { - export class ChangeQueryParameters extends CrudAction.ChangeQueryParameters { - static readonly type = StringUtil.format(CrudAction.ChangeQueryParameters.type, state); + @TypeCrudAction(state) + export class LoadResource extends CrudAction.LoadResource { + } - constructor(public queryParameters: QueryParametersModel) { - super(queryParameters); - } + @TypeCrudAction(state) + export class LoadResourceSuccess extends CrudAction.LoadResourceSuccess { } - export class GetAll extends CrudAction.GetAll { - static readonly type = StringUtil.format(CrudAction.GetAll.type, state); + @TypeCrudAction(state) + export class LoadResourceFail extends CrudAction.LoadResourceFail { + } - constructor(public queryParameters?: QueryParametersModel) { - super(queryParameters); - } + @TypeCrudAction(state) + export class ChangeQueryParameters extends CrudAction.ChangeQueryParameters { } - export class GetAllSuccess extends CrudAction.GetAllSuccess<LicensesModel> { - static readonly type = StringUtil.format(CrudAction.GetAllSuccess.type, state); + @TypeCrudAction(state) + export class GetAll extends CrudAction.GetAll {} - constructor(public list: CollectionTypedModel<LicensesModel>) { - super(list); - } + @TypeCrudAction(state) + export class GetAllSuccess extends CrudAction.GetAllSuccess<DepositsModel> { } + @TypeCrudAction(state) export class GetAllFail extends CrudAction.GetAllFail { - static readonly type = StringUtil.format(CrudAction.GetAllFail.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class GetById extends CrudAction.GetById { - static readonly type = StringUtil.format(CrudAction.GetById.type, state); - - constructor(public id: string) { - super(id); - } } - export class GetByIdSuccess extends CrudAction.GetByIdSuccess<LicensesModel> { - static readonly type = StringUtil.format(CrudAction.GetByIdSuccess.type, state); - - constructor(public model: LicensesModel) { - super(model); - } + @TypeCrudAction(state) + export class GetByIdSuccess extends CrudAction.GetByIdSuccess<DepositsModel> { } + @TypeCrudAction(state) export class GetByIdFail extends CrudAction.GetByIdFail { - static readonly type = StringUtil.format(CrudAction.GetByIdFail.type, state); - - constructor() { - super(); - } } - export class Create extends CrudAction.Create<LicensesModel> { - static readonly type = StringUtil.format(CrudAction.Create.type, state); - - constructor(public model: LicensesModel) { - super(model); - } + @TypeCrudAction(state) + export class Create extends CrudAction.Create<DepositsModel> { } + @TypeCrudAction(state) export class CreateSuccess extends CrudAction.CreateSuccess { - static readonly type = StringUtil.format(CrudAction.CreateSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class CreateFail extends CrudAction.CreateFail { - static readonly type = StringUtil.format(CrudAction.CreateFail.type, state); - - constructor() { - super(); - } } - export class Update extends CrudAction.Update<LicensesModel> { - static readonly type = StringUtil.format(CrudAction.Update.type, state); - - constructor(public model: LicensesModel) { - super(model); - } + @TypeCrudAction(state) + export class Update extends CrudAction.Update<DepositsModel> { } + @TypeCrudAction(state) export class UpdateSuccess extends CrudAction.UpdateSuccess { - static readonly type = StringUtil.format(CrudAction.UpdateSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class UpdateFail extends CrudAction.UpdateFail { - static readonly type = StringUtil.format(CrudAction.UpdateFail.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class Delete extends CrudAction.Delete { - static readonly type = StringUtil.format(CrudAction.Delete.type, state); - - constructor(public resId: string) { - super(resId); - } } + @TypeCrudAction(state) export class DeleteSuccess extends CrudAction.DeleteSuccess { - static readonly type = StringUtil.format(CrudAction.DeleteSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class DeleteFail extends CrudAction.DeleteFail { - static readonly type = StringUtil.format(CrudAction.DeleteFail.type, state); - - constructor() { - super(); - } } } + + +export const licenseActionNameSpace: CrudNameSpace = LicenseAction; diff --git a/src/app/shared/license.state.ts b/src/app/shared/license.state.ts index 04685d812..bb21053e9 100644 --- a/src/app/shared/license.state.ts +++ b/src/app/shared/license.state.ts @@ -1,9 +1,10 @@ import {LicensesModel} from "@app/generated-api"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudState, CrudStateModel} from "@app/shared/crud.state"; import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum"; import {AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum"; import {StateEnum} from "@app/shared/enums/state.enum"; -import {LicenseAction} from "@app/shared/license.action"; +import {LicenseAction, licenseActionNameSpace} from "@app/shared/license.action"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; import {ApiService} from "@app/core/http/api.service"; import {NotificationService} from "@app/core/notification.service"; @@ -34,6 +35,10 @@ export class LicenseState extends CrudState<LicensesModel> { return StateEnum.license; } + defineCrudNameSpace(): CrudNameSpace { + return licenseActionNameSpace; + } + defineSubResource(): ApiResourceNameEnum[] { return []; } @@ -41,84 +46,4 @@ export class LicenseState extends CrudState<LicensesModel> { defineUrlResource(): ResourceApiEnum { return AdminResourceApiEnum.licenses; } - - @Action(LicenseAction.ChangeQueryParameters) - changeQueryParameters(ctx: StateContext<LicenseStateModel>, action: LicenseAction.ChangeQueryParameters): void { - super.changeQueryParameters(ctx, action); - } - - @Action(LicenseAction.GetAll, {cancelUncompleted: true}) - getAll(ctx: StateContext<LicenseStateModel>, action: LicenseAction.GetAll) { - return super.getAll(ctx, action); - } - - @Action(LicenseAction.GetAllSuccess) - getAllSuccess(ctx: StateContext<LicenseStateModel>, action: LicenseAction.GetAllSuccess): void { - super.getAllSuccess(ctx, action); - } - - @Action(LicenseAction.GetAllFail) - getAllFail(ctx: StateContext<LicenseStateModel>, action: LicenseAction.GetAllFail): void { - super.getAllFail(ctx, action); - } - - @Action(LicenseAction.GetById, {cancelUncompleted: true}) - getById(ctx: StateContext<LicenseStateModel>, action: LicenseAction.GetById): Observable<LicensesModel> { - return super.getById(ctx, action); - } - - @Action(LicenseAction.GetByIdSuccess) - getByIdSuccess(ctx: StateContext<LicenseStateModel>, action: LicenseAction.GetByIdSuccess): void { - super.getByIdSuccess(ctx, action); - } - - @Action(LicenseAction.GetByIdFail) - getByIdFail(ctx: StateContext<LicenseStateModel>, action: LicenseAction.GetByIdFail): void { - super.getByIdFail(ctx, action); - } - - @Action(LicenseAction.Create, {cancelUncompleted: true}) - create(ctx: StateContext<LicenseStateModel>, action: LicenseAction.Create): Observable<LicensesModel> { - return super.create(ctx, action); - } - - @Action(LicenseAction.CreateSuccess) - createSuccess(ctx: StateContext<LicenseStateModel>, action: LicenseAction.CreateSuccess): void { - super.createSuccess(ctx, action); - } - - @Action(LicenseAction.CreateFail) - createFail(ctx: StateContext<LicenseStateModel>, action: LicenseAction.CreateFail): void { - super.createFail(ctx, action); - } - - @Action(LicenseAction.Update, {cancelUncompleted: true}) - update(ctx: StateContext<LicenseStateModel>, action: LicenseAction.Update): Observable<LicensesModel> { - return super.update(ctx, action); - } - - @Action(LicenseAction.UpdateSuccess) - updateSuccess(ctx: StateContext<LicenseStateModel>, action: LicenseAction.UpdateSuccess): void { - super.updateSuccess(ctx, action); - } - - @Action(LicenseAction.UpdateFail) - updateFail(ctx: StateContext<LicenseStateModel>, action: LicenseAction.UpdateFail): void { - super.updateFail(ctx, action); - } - - @Action(LicenseAction.Delete, {cancelUncompleted: true}) - delete(ctx: StateContext<LicenseStateModel>, action: LicenseAction.Delete): Observable<LicensesModel> { - return super.delete(ctx, action); - } - - @Action(LicenseAction.DeleteSuccess) - deleteSuccess(ctx: StateContext<LicenseStateModel>, action: LicenseAction.DeleteSuccess): void { - super.deleteSuccess(ctx, action); - } - - @Action(LicenseAction.DeleteFail) - deleteFail(ctx: StateContext<LicenseStateModel>, action: LicenseAction.DeleteFail): void { - super.deleteFail(ctx, action); - } } diff --git a/src/app/shared/organizational-unit.action.ts b/src/app/shared/organizational-unit.action.ts index 053b3dd09..85f82f449 100644 --- a/src/app/shared/organizational-unit.action.ts +++ b/src/app/shared/organizational-unit.action.ts @@ -11,28 +11,16 @@ import {StringUtil} from "@app/shared/utils/string.util"; const state = StateEnum.organizationalUnit; export namespace OrgUnitAction { + @TypeCrudAction(state) export class LoadResource extends CrudAction.LoadResource { - static readonly type = StringUtil.format(CrudAction.LoadResource.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class LoadResourceSuccess extends CrudAction.LoadResourceSuccess { - static readonly type = StringUtil.format(CrudAction.LoadResourceSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class LoadResourceFail extends CrudAction.LoadResourceFail { - static readonly type = StringUtil.format(CrudAction.LoadResourceFail.type, state); - - constructor() { - super(); - } } @TypeCrudAction(state) diff --git a/src/app/shared/organizational-unit.state.ts b/src/app/shared/organizational-unit.state.ts index 29e3b0f40..c03aeaad6 100644 --- a/src/app/shared/organizational-unit.state.ts +++ b/src/app/shared/organizational-unit.state.ts @@ -1,14 +1,17 @@ import {AppStateModel} from "@app/app.state"; import {DepositStateModel} from "@app/deposit/deposit.state"; import {OrganizationalUnitsModel, SubmissionPoliciesModel} from "@app/generated-api"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudState, CrudStateModel} from "@app/shared/crud.state"; +import {OverrideCrudAction} from "@app/shared/decorators/crud.decorator"; import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum"; import {AccessResourceApiEnum, AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum"; import {ModelAttributeEnum} from "@app/shared/enums/model-attribute.enum"; import {StateEnum} from "@app/shared/enums/state.enum"; +import {languageActionNameSpace} from "@app/shared/language.action"; import {CollectionTypedModel} from "@app/shared/models/collection-typed.model"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; -import {OrgUnitAction} from "@app/shared/organizational-unit.action"; +import {OrgUnitAction, orgUnitActionNameSpace} from "@app/shared/organizational-unit.action"; import {PreservationPolicyAction} from "@app/shared/preservation-policy.action"; import {ApiService} from "@app/core/http/api.service"; @@ -67,6 +70,10 @@ export class OrganizationalUnitState extends CrudState<OrganizationalUnitsModel> return AccessResourceApiEnum.organizationalUnits; } + defineCrudNameSpace(): CrudNameSpace { + return orgUnitActionNameSpace; + } + defineState(): StateEnum { return StateEnum.organizationalUnit; } @@ -92,56 +99,7 @@ export class OrganizationalUnitState extends CrudState<OrganizationalUnitsModel> ]); } - @Action(OrgUnitAction.ChangeQueryParameters) - changeQueryParameters(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.ChangeQueryParameters): void { - super.changeQueryParameters(ctx, action); - } - - @Action(OrgUnitAction.GetAll, {cancelUncompleted: true}) - getAll(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.GetAll): Observable<CollectionTypedModel<OrganizationalUnitsModel>> { - return super.getAll(ctx, action); - } - - @Action(OrgUnitAction.GetAllSuccess) - getAllSuccess(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.GetAllSuccess): void { - super.getAllSuccess(ctx, action); - } - - @Action(OrgUnitAction.GetAllFail) - getAllFail(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.GetAllFail): void { - super.getAllFail(ctx, action); - } - - @Action(OrgUnitAction.GetById, {cancelUncompleted: true}) - getById(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.GetById): Observable<OrganizationalUnitsModel> { - return super.getById(ctx, action); - } - - @Action(OrgUnitAction.GetByIdSuccess) - getByIdSuccess(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.GetByIdSuccess): void { - super.getByIdSuccess(ctx, action); - } - - @Action(OrgUnitAction.GetByIdFail) - getByIdFail(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.GetByIdFail): void { - super.getByIdFail(ctx, action); - } - - @Action(OrgUnitAction.Create, {cancelUncompleted: true}) - create(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.Create): Observable<OrganizationalUnitsModel> { - return super.create(ctx, action); - } - - @Action(OrgUnitAction.CreateSuccess) - createSuccess(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.CreateSuccess): void { - super.createSuccess(ctx, action); - } - - @Action(OrgUnitAction.CreateFail) - createFail(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.CreateFail): void { - super.createFail(ctx, action); - } - + @OverrideCrudAction() @Action(OrgUnitAction.Update, {cancelUncompleted: true}) update(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.Update): Observable<OrganizationalUnitsModel> { return super.update(ctx, action) @@ -154,31 +112,6 @@ export class OrganizationalUnitState extends CrudState<OrganizationalUnitsModel> ); } - @Action(OrgUnitAction.UpdateSuccess) - updateSuccess(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.UpdateSuccess): void { - super.updateSuccess(ctx, action); - } - - @Action(OrgUnitAction.UpdateFail) - updateFail(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.UpdateFail): void { - super.updateFail(ctx, action); - } - - @Action(OrgUnitAction.Delete, {cancelUncompleted: true}) - delete(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.Delete): Observable<OrganizationalUnitsModel> { - return super.delete(ctx, action); - } - - @Action(OrgUnitAction.DeleteSuccess) - deleteSuccess(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.DeleteSuccess): void { - super.deleteSuccess(ctx, action); - } - - @Action(OrgUnitAction.DeleteFail) - deleteFail(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.DeleteFail): void { - super.deleteFail(ctx, action); - } - @Action(OrgUnitAction.UpdateSubResourceSubmissionPolicies, {cancelUncompleted: true}) updateSubmissionPolicy(ctx: StateContext<OrganizationalUnitStateModel>, action: OrgUnitAction.UpdateSubResourceSubmissionPolicies): void { ctx.patchState({ diff --git a/src/app/shared/preservation-policy.action.ts b/src/app/shared/preservation-policy.action.ts index 034e2b329..2ff0e7480 100644 --- a/src/app/shared/preservation-policy.action.ts +++ b/src/app/shared/preservation-policy.action.ts @@ -1,138 +1,90 @@ -import {PreservationPoliciesModel} from "@app/generated-api"; +import {DepositsModel, PreservationPoliciesModel} from "@app/generated-api"; import {CrudAction} from "@app/shared/crud.action"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; +import {TypeCrudAction} from "@app/shared/decorators/type-crud-action.decorator"; import {StateEnum} from "@app/shared/enums/state.enum"; import {CollectionTypedModel} from "@app/shared/models/collection-typed.model"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; +import {OrgUnitAction} from "@app/shared/organizational-unit.action"; import {StringUtil} from "@app/shared/utils/string.util"; const state = StateEnum.preservationPolicy; export namespace PreservationPolicyAction { - export class ChangeQueryParameters extends CrudAction.ChangeQueryParameters { - static readonly type = StringUtil.format(CrudAction.ChangeQueryParameters.type, state); + @TypeCrudAction(state) + export class LoadResource extends CrudAction.LoadResource { + } - constructor(public queryParameters: QueryParametersModel) { - super(queryParameters); - } + @TypeCrudAction(state) + export class LoadResourceSuccess extends CrudAction.LoadResourceSuccess { } - export class GetAll extends CrudAction.GetAll { - static readonly type = StringUtil.format(CrudAction.GetAll.type, state); + @TypeCrudAction(state) + export class LoadResourceFail extends CrudAction.LoadResourceFail { + } - constructor(public queryParameters?: QueryParametersModel) { - super(queryParameters); - } + @TypeCrudAction(state) + export class ChangeQueryParameters extends CrudAction.ChangeQueryParameters { } - export class GetAllSuccess extends CrudAction.GetAllSuccess<PreservationPoliciesModel> { - static readonly type = StringUtil.format(CrudAction.GetAllSuccess.type, state); + @TypeCrudAction(state) + export class GetAll extends CrudAction.GetAll {} - constructor(public list: CollectionTypedModel<PreservationPoliciesModel>) { - super(list); - } + @TypeCrudAction(state) + export class GetAllSuccess extends CrudAction.GetAllSuccess<DepositsModel> { } + @TypeCrudAction(state) export class GetAllFail extends CrudAction.GetAllFail { - static readonly type = StringUtil.format(CrudAction.GetAllFail.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class GetById extends CrudAction.GetById { - static readonly type = StringUtil.format(CrudAction.GetById.type, state); - - constructor(public id: string) { - super(id); - } } - export class GetByIdSuccess extends CrudAction.GetByIdSuccess<PreservationPoliciesModel> { - static readonly type = StringUtil.format(CrudAction.GetByIdSuccess.type, state); - - constructor(public model: PreservationPoliciesModel) { - super(model); - } + @TypeCrudAction(state) + export class GetByIdSuccess extends CrudAction.GetByIdSuccess<DepositsModel> { } + @TypeCrudAction(state) export class GetByIdFail extends CrudAction.GetByIdFail { - static readonly type = StringUtil.format(CrudAction.GetByIdFail.type, state); - - constructor() { - super(); - } } - export class Create extends CrudAction.Create<PreservationPoliciesModel> { - static readonly type = StringUtil.format(CrudAction.Create.type, state); - - constructor(public model: PreservationPoliciesModel) { - super(model); - } + @TypeCrudAction(state) + export class Create extends CrudAction.Create<DepositsModel> { } + @TypeCrudAction(state) export class CreateSuccess extends CrudAction.CreateSuccess { - static readonly type = StringUtil.format(CrudAction.CreateSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class CreateFail extends CrudAction.CreateFail { - static readonly type = StringUtil.format(CrudAction.CreateFail.type, state); - - constructor() { - super(); - } } - export class Update extends CrudAction.Update<PreservationPoliciesModel> { - static readonly type = StringUtil.format(CrudAction.Update.type, state); - - constructor(public model: PreservationPoliciesModel) { - super(model); - } + @TypeCrudAction(state) + export class Update extends CrudAction.Update<DepositsModel> { } + @TypeCrudAction(state) export class UpdateSuccess extends CrudAction.UpdateSuccess { - static readonly type = StringUtil.format(CrudAction.UpdateSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class UpdateFail extends CrudAction.UpdateFail { - static readonly type = StringUtil.format(CrudAction.UpdateFail.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class Delete extends CrudAction.Delete { - static readonly type = StringUtil.format(CrudAction.Delete.type, state); - - constructor(public resId: string) { - super(resId); - } } + @TypeCrudAction(state) export class DeleteSuccess extends CrudAction.DeleteSuccess { - static readonly type = StringUtil.format(CrudAction.DeleteSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class DeleteFail extends CrudAction.DeleteFail { - static readonly type = StringUtil.format(CrudAction.DeleteFail.type, state); - - constructor() { - super(); - } } } + +export const preservationPolicyActionNameSpace: CrudNameSpace = PreservationPolicyAction; diff --git a/src/app/shared/preservation-policy.state.ts b/src/app/shared/preservation-policy.state.ts index 80ce913de..0618b6b2e 100644 --- a/src/app/shared/preservation-policy.state.ts +++ b/src/app/shared/preservation-policy.state.ts @@ -1,14 +1,14 @@ import {PreservationPoliciesModel} from "@app/generated-api"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudState, CrudStateModel} from "@app/shared/crud.state"; import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum"; import {AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum"; import {StateEnum} from "@app/shared/enums/state.enum"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; -import {PreservationPolicyAction} from "@app/shared/preservation-policy.action"; +import {preservationPolicyActionNameSpace} from "@app/shared/preservation-policy.action"; import {ApiService} from "@app/core/http/api.service"; import {NotificationService} from "@app/core/notification.service"; -import {Action, State, StateContext, Store} from "@ngxs/store"; -import {Observable} from "rxjs"; +import {State, Store} from "@ngxs/store"; export interface PreservationPolicyStateModel extends CrudStateModel<PreservationPoliciesModel> { } @@ -34,6 +34,10 @@ export class PreservationPolicyState extends CrudState<PreservationPoliciesModel return StateEnum.preservationPolicy; } + defineCrudNameSpace(): CrudNameSpace { + return preservationPolicyActionNameSpace; + } + defineSubResource(): ApiResourceNameEnum[] { return []; } @@ -41,84 +45,4 @@ export class PreservationPolicyState extends CrudState<PreservationPoliciesModel defineUrlResource(): ResourceApiEnum { return AdminResourceApiEnum.preservationPolicies; } - - @Action(PreservationPolicyAction.ChangeQueryParameters) - changeQueryParameters(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.ChangeQueryParameters): void { - super.changeQueryParameters(ctx, action); - } - - @Action(PreservationPolicyAction.GetAll, {cancelUncompleted: true}) - getAll(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.GetAll) { - return super.getAll(ctx, action); - } - - @Action(PreservationPolicyAction.GetAllSuccess) - getAllSuccess(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.GetAllSuccess): void { - super.getAllSuccess(ctx, action); - } - - @Action(PreservationPolicyAction.GetAllFail) - getAllFail(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.GetAllFail): void { - super.getAllFail(ctx, action); - } - - @Action(PreservationPolicyAction.GetById, {cancelUncompleted: true}) - getById(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.GetById): Observable<PreservationPoliciesModel> { - return super.getById(ctx, action); - } - - @Action(PreservationPolicyAction.GetByIdSuccess) - getByIdSuccess(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.GetByIdSuccess): void { - super.getByIdSuccess(ctx, action); - } - - @Action(PreservationPolicyAction.GetByIdFail) - getByIdFail(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.GetByIdFail): void { - super.getByIdFail(ctx, action); - } - - @Action(PreservationPolicyAction.Create, {cancelUncompleted: true}) - create(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.Create): Observable<PreservationPoliciesModel> { - return super.create(ctx, action); - } - - @Action(PreservationPolicyAction.CreateSuccess) - createSuccess(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.CreateSuccess): void { - super.createSuccess(ctx, action); - } - - @Action(PreservationPolicyAction.CreateFail) - createFail(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.CreateFail): void { - super.createFail(ctx, action); - } - - @Action(PreservationPolicyAction.Update, {cancelUncompleted: true}) - update(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.Update): Observable<PreservationPoliciesModel> { - return super.update(ctx, action); - } - - @Action(PreservationPolicyAction.UpdateSuccess) - updateSuccess(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.UpdateSuccess): void { - super.updateSuccess(ctx, action); - } - - @Action(PreservationPolicyAction.UpdateFail) - updateFail(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.UpdateFail): void { - super.updateFail(ctx, action); - } - - @Action(PreservationPolicyAction.Delete, {cancelUncompleted: true}) - delete(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.Delete): Observable<PreservationPoliciesModel> { - return super.delete(ctx, action); - } - - @Action(PreservationPolicyAction.DeleteSuccess) - deleteSuccess(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.DeleteSuccess): void { - super.deleteSuccess(ctx, action); - } - - @Action(PreservationPolicyAction.DeleteFail) - deleteFail(ctx: StateContext<PreservationPolicyStateModel>, action: PreservationPolicyAction.DeleteFail): void { - super.deleteFail(ctx, action); - } } diff --git a/src/app/shared/submission-policy.action.ts b/src/app/shared/submission-policy.action.ts index e79e8efc2..9a0ce4db6 100644 --- a/src/app/shared/submission-policy.action.ts +++ b/src/app/shared/submission-policy.action.ts @@ -1,138 +1,90 @@ -import {SubmissionPoliciesModel} from "@app/generated-api"; +import {DepositsModel, SubmissionPoliciesModel} from "@app/generated-api"; import {CrudAction} from "@app/shared/crud.action"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; +import {TypeCrudAction} from "@app/shared/decorators/type-crud-action.decorator"; import {StateEnum} from "@app/shared/enums/state.enum"; import {CollectionTypedModel} from "@app/shared/models/collection-typed.model"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; +import {OrgUnitAction} from "@app/shared/organizational-unit.action"; import {StringUtil} from "@app/shared/utils/string.util"; const state = StateEnum.submissionPolicy; export namespace SubmissionPolicyAction { - export class ChangeQueryParameters extends CrudAction.ChangeQueryParameters { - static readonly type = StringUtil.format(CrudAction.ChangeQueryParameters.type, state); + @TypeCrudAction(state) + export class LoadResource extends CrudAction.LoadResource { + } - constructor(public queryParameters: QueryParametersModel) { - super(queryParameters); - } + @TypeCrudAction(state) + export class LoadResourceSuccess extends CrudAction.LoadResourceSuccess { } - export class GetAll extends CrudAction.GetAll { - static readonly type = StringUtil.format(CrudAction.GetAll.type, state); + @TypeCrudAction(state) + export class LoadResourceFail extends CrudAction.LoadResourceFail { + } - constructor(public queryParameters?: QueryParametersModel) { - super(queryParameters); - } + @TypeCrudAction(state) + export class ChangeQueryParameters extends CrudAction.ChangeQueryParameters { } - export class GetAllSuccess extends CrudAction.GetAllSuccess<SubmissionPoliciesModel> { - static readonly type = StringUtil.format(CrudAction.GetAllSuccess.type, state); + @TypeCrudAction(state) + export class GetAll extends CrudAction.GetAll {} - constructor(public list: CollectionTypedModel<SubmissionPoliciesModel>) { - super(list); - } + @TypeCrudAction(state) + export class GetAllSuccess extends CrudAction.GetAllSuccess<DepositsModel> { } + @TypeCrudAction(state) export class GetAllFail extends CrudAction.GetAllFail { - static readonly type = StringUtil.format(CrudAction.GetAllFail.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class GetById extends CrudAction.GetById { - static readonly type = StringUtil.format(CrudAction.GetById.type, state); - - constructor(public id: string) { - super(id); - } } - export class GetByIdSuccess extends CrudAction.GetByIdSuccess<SubmissionPoliciesModel> { - static readonly type = StringUtil.format(CrudAction.GetByIdSuccess.type, state); - - constructor(public model: SubmissionPoliciesModel) { - super(model); - } + @TypeCrudAction(state) + export class GetByIdSuccess extends CrudAction.GetByIdSuccess<DepositsModel> { } + @TypeCrudAction(state) export class GetByIdFail extends CrudAction.GetByIdFail { - static readonly type = StringUtil.format(CrudAction.GetByIdFail.type, state); - - constructor() { - super(); - } } - export class Create extends CrudAction.Create<SubmissionPoliciesModel> { - static readonly type = StringUtil.format(CrudAction.Create.type, state); - - constructor(public model: SubmissionPoliciesModel) { - super(model); - } + @TypeCrudAction(state) + export class Create extends CrudAction.Create<DepositsModel> { } + @TypeCrudAction(state) export class CreateSuccess extends CrudAction.CreateSuccess { - static readonly type = StringUtil.format(CrudAction.CreateSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class CreateFail extends CrudAction.CreateFail { - static readonly type = StringUtil.format(CrudAction.CreateFail.type, state); - - constructor() { - super(); - } } - export class Update extends CrudAction.Update<SubmissionPoliciesModel> { - static readonly type = StringUtil.format(CrudAction.Update.type, state); - - constructor(public model: SubmissionPoliciesModel) { - super(model); - } + @TypeCrudAction(state) + export class Update extends CrudAction.Update<DepositsModel> { } + @TypeCrudAction(state) export class UpdateSuccess extends CrudAction.UpdateSuccess { - static readonly type = StringUtil.format(CrudAction.UpdateSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class UpdateFail extends CrudAction.UpdateFail { - static readonly type = StringUtil.format(CrudAction.UpdateFail.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class Delete extends CrudAction.Delete { - static readonly type = StringUtil.format(CrudAction.Delete.type, state); - - constructor(public resId: string) { - super(resId); - } } + @TypeCrudAction(state) export class DeleteSuccess extends CrudAction.DeleteSuccess { - static readonly type = StringUtil.format(CrudAction.DeleteSuccess.type, state); - - constructor() { - super(); - } } + @TypeCrudAction(state) export class DeleteFail extends CrudAction.DeleteFail { - static readonly type = StringUtil.format(CrudAction.DeleteFail.type, state); - - constructor() { - super(); - } } } + +export const submissionPolicyActionNameSpace: CrudNameSpace = SubmissionPolicyAction; diff --git a/src/app/shared/submission-policy.state.ts b/src/app/shared/submission-policy.state.ts index a5944001e..dc5b9a1fe 100644 --- a/src/app/shared/submission-policy.state.ts +++ b/src/app/shared/submission-policy.state.ts @@ -1,12 +1,14 @@ import {SubmissionPoliciesModel} from "@app/generated-api"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudState, CrudStateModel} from "@app/shared/crud.state"; import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum"; import {AdminResourceApiEnum, ResourceApiEnum} from "@app/shared/enums/api.enum"; import {StateEnum} from "@app/shared/enums/state.enum"; +import {languageActionNameSpace} from "@app/shared/language.action"; import {QueryParametersModel} from "@app/shared/models/query-parameters.model"; import {ApiService} from "@app/core/http/api.service"; import {NotificationService} from "@app/core/notification.service"; -import {SubmissionPolicyAction} from "@app/shared/submission-policy.action"; +import {SubmissionPolicyAction, submissionPolicyActionNameSpace} from "@app/shared/submission-policy.action"; import {Action, State, StateContext, Store} from "@ngxs/store"; import {Observable} from "rxjs"; @@ -38,87 +40,11 @@ export class SubmissionPolicyState extends CrudState<SubmissionPoliciesModel> { return StateEnum.submissionPolicy; } - defineSubResource(): ApiResourceNameEnum[] { - return []; - } - - @Action(SubmissionPolicyAction.ChangeQueryParameters) - changeQueryParameters(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.ChangeQueryParameters): void { - super.changeQueryParameters(ctx, action); - } - - @Action(SubmissionPolicyAction.GetAll, {cancelUncompleted: true}) - getAll(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.GetAll) { - return super.getAll(ctx, action); - } - - @Action(SubmissionPolicyAction.GetAllSuccess) - getAllSuccess(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.GetAllSuccess): void { - super.getAllSuccess(ctx, action); - } - - @Action(SubmissionPolicyAction.GetAllFail) - getAllFail(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.GetAllFail): void { - super.getAllFail(ctx, action); - } - - @Action(SubmissionPolicyAction.GetById, {cancelUncompleted: true}) - getById(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.GetById): Observable<SubmissionPoliciesModel> { - return super.getById(ctx, action); - } - - @Action(SubmissionPolicyAction.GetByIdSuccess) - getByIdSuccess(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.GetByIdSuccess): void { - super.getByIdSuccess(ctx, action); - } - - @Action(SubmissionPolicyAction.GetByIdFail) - getByIdFail(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.GetByIdFail): void { - super.getByIdFail(ctx, action); - } - - @Action(SubmissionPolicyAction.Create, {cancelUncompleted: true}) - create(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.Create): Observable<SubmissionPoliciesModel> { - return super.create(ctx, action); - } - - @Action(SubmissionPolicyAction.CreateSuccess) - createSuccess(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.CreateSuccess): void { - super.createSuccess(ctx, action); - } - - @Action(SubmissionPolicyAction.CreateFail) - createFail(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.CreateFail): void { - super.createFail(ctx, action); - } - - @Action(SubmissionPolicyAction.Update, {cancelUncompleted: true}) - update(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.Update): Observable<SubmissionPoliciesModel> { - return super.update(ctx, action); - } - - @Action(SubmissionPolicyAction.UpdateSuccess) - updateSuccess(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.UpdateSuccess): void { - super.updateSuccess(ctx, action); + defineCrudNameSpace(): CrudNameSpace { + return submissionPolicyActionNameSpace; } - @Action(SubmissionPolicyAction.UpdateFail) - updateFail(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.UpdateFail): void { - super.updateFail(ctx, action); - } - - @Action(SubmissionPolicyAction.Delete, {cancelUncompleted: true}) - delete(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.Delete): Observable<SubmissionPoliciesModel> { - return super.delete(ctx, action); - } - - @Action(SubmissionPolicyAction.DeleteSuccess) - deleteSuccess(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.DeleteSuccess): void { - super.deleteSuccess(ctx, action); - } - - @Action(SubmissionPolicyAction.DeleteFail) - deleteFail(ctx: StateContext<SubmissionPolicyStateModel>, action: SubmissionPolicyAction.DeleteFail): void { - super.deleteFail(ctx, action); + defineSubResource(): ApiResourceNameEnum[] { + return []; } } diff --git a/src/app/shared/utils/crud-action.util.ts b/src/app/shared/utils/crud-action.util.ts index c926bed29..7e07290c6 100644 --- a/src/app/shared/utils/crud-action.util.ts +++ b/src/app/shared/utils/crud-action.util.ts @@ -1,7 +1,6 @@ -import {Type} from "@angular/core"; import {DepositAction} from "@app/deposit/deposit.action"; import {CrudAction} from "@app/shared/crud.action"; -import {CrudActionClass, CrudNameSpace} from "@app/shared/crud.namespace"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {ApiResourceNameEnum} from "@app/shared/enums/api-resource-name.enum"; import {StateEnum} from "@app/shared/enums/state.enum"; import {LanguageAction} from "@app/shared/language.action"; @@ -50,86 +49,80 @@ export class CrudActionUtil { } } - // TODO Find a way to not redeclare parameters (risk of mistake). If this methods go to CrudAction we get circular dependancy because of action namespace use (see getNamespace) - - static loadResource(state: StateEnum): CrudAction.LoadResource { - return CrudActionUtil.getInstanceInternal(state, CrudAction.LoadResource.className); + static loadResource(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.LoadResource>): CrudAction.LoadResource { + return new crudNameSpace.LoadResource(...args); } - static loadResourceSuccess(state: StateEnum): CrudAction.LoadResourceSuccess { - return CrudActionUtil.getInstanceInternal(state, CrudAction.LoadResourceSuccess.className); + static loadResourceSuccess(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.LoadResourceSuccess>): CrudAction.LoadResourceSuccess { + return new crudNameSpace.LoadResourceSuccess(...args); } - static loadResourceFail(state: StateEnum): CrudAction.LoadResourceFail { - return CrudActionUtil.getInstanceInternal(state, CrudAction.LoadResourceFail.className); + static loadResourceFail(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.LoadResourceFail>): CrudAction.LoadResourceFail { + return new crudNameSpace.LoadResourceFail(...args); } - static changeQueryParametersBis(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.ChangeQueryParameters>): CrudAction.ChangeQueryParameters { + static changeQueryParameters(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.ChangeQueryParameters>): CrudAction.ChangeQueryParameters { return new crudNameSpace.ChangeQueryParameters(...args); } - static changeQueryParameters(state: StateEnum, queryParameters: QueryParametersModel): CrudAction.ChangeQueryParameters { - return CrudActionUtil.getInstanceInternal(state, CrudAction.ChangeQueryParameters.className, queryParameters); - } - - static getAll(state: StateEnum, queryParameters?: QueryParametersModel): CrudAction.GetAll { - return CrudActionUtil.getInstanceInternal(state, CrudAction.GetAll.className, queryParameters); + static getAll(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.GetAll>): CrudAction.GetAll { + return new crudNameSpace.GetAll(...args); } - static getAllSuccess<T>(state: StateEnum, list: CollectionTypedModel<T>): CrudAction.GetAllSuccess<T> { - return CrudActionUtil.getInstanceInternal(state, CrudAction.GetAllSuccess.className, list); + static getAllSuccess<T>(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.GetAllSuccess>): CrudAction.GetAllSuccess<T> { + return new crudNameSpace.GetAllSuccess(...args); } - static getAllFail(state: StateEnum): CrudAction.GetAllFail { - return CrudActionUtil.getInstanceInternal(state, CrudAction.GetAllFail.className); + static getAllFail(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.GetAllFail>): CrudAction.GetAllFail { + return new crudNameSpace.GetAllFail(...args); } - static getById(state: StateEnum, id: string): CrudAction.GetById { - return CrudActionUtil.getInstanceInternal(state, CrudAction.GetById.className, id); + static getById(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.GetById>): CrudAction.GetById { + return new crudNameSpace.GetById(...args); } - static getByIdSuccess<T>(state: StateEnum, model: T): CrudAction.GetByIdSuccess<T> { - return CrudActionUtil.getInstanceInternal(state, CrudAction.GetByIdSuccess.className, model); + static getByIdSuccess<T>(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.GetByIdSuccess>): CrudAction.GetByIdSuccess<T> { + return new crudNameSpace.GetByIdSuccess(...args); } - static getByIdFail(state: StateEnum): CrudAction.GetByIdFail { - return CrudActionUtil.getInstanceInternal(state, CrudAction.GetByIdFail.className); + static getByIdFail(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.GetByIdFail>): CrudAction.GetByIdFail { + return new crudNameSpace.GetByIdFail(...args); } - static create<T>(state: StateEnum, model: T): CrudAction.Create<T> { - return CrudActionUtil.getInstanceInternal(state, CrudAction.Create.className, model); + static create<T>(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.Create>): CrudAction.Create<T> { + return new crudNameSpace.Create(...args); } - static createSuccess(state: StateEnum): CrudAction.CreateSuccess { - return CrudActionUtil.getInstanceInternal(state, CrudAction.CreateSuccess.className); + static createSuccess(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.CreateSuccess>): CrudAction.CreateSuccess { + return new crudNameSpace.CreateSuccess(...args); } - static createFail(state: StateEnum): CrudAction.CreateFail { - return CrudActionUtil.getInstanceInternal(state, CrudAction.CreateFail.className); + static createFail(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.CreateFail>): CrudAction.CreateFail { + return new crudNameSpace.CreateFail(...args); } - static update<T>(state: StateEnum, model: T): CrudAction.Update<T> { - return CrudActionUtil.getInstanceInternal(state, CrudAction.Update.className, model); + static update<T>(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.Update>): CrudAction.Update<T> { + return new crudNameSpace.Update(...args); } - static updateSuccess(state: StateEnum): CrudAction.UpdateSuccess { - return CrudActionUtil.getInstanceInternal(state, CrudAction.UpdateSuccess.className); + static updateSuccess(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.UpdateSuccess>): CrudAction.UpdateSuccess { + return new crudNameSpace.UpdateSuccess(...args); } - static updateFail(state: StateEnum): CrudAction.UpdateFail { - return CrudActionUtil.getInstanceInternal(state, CrudAction.UpdateFail.className); + static updateFail(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.UpdateFail>): CrudAction.UpdateFail { + return new crudNameSpace.UpdateFail(...args); } - static delete(state: StateEnum, resId: string): CrudAction.Delete { - return CrudActionUtil.getInstanceInternal(state, CrudAction.Delete.className, resId); + static delete(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.Delete>): CrudAction.Delete { + return new crudNameSpace.Delete(...args); } - static deleteSuccess(state: StateEnum): CrudAction.DeleteSuccess { - return CrudActionUtil.getInstanceInternal(state, CrudAction.DeleteSuccess.className); + static deleteSuccess(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.DeleteSuccess>): CrudAction.DeleteSuccess { + return new crudNameSpace.DeleteSuccess(...args); } - static deleteFail(state: StateEnum): CrudAction.DeleteFail { - return CrudActionUtil.getInstanceInternal(state, CrudAction.DeleteFail.name); + static deleteFail(crudNameSpace: CrudNameSpace, ...args: ConstructorParameters<typeof CrudAction.DeleteFail>): CrudAction.DeleteFail { + return new crudNameSpace.DeleteFail(...args); } static getAllSubResource(state: StateEnum, subResource: ApiResourceNameEnum, parentId: string, queryParameters?: QueryParametersModel): CrudAction.GetAllSubResource { diff --git a/src/app/shared/views/abstract-create/abstract-create.view.ts b/src/app/shared/views/abstract-create/abstract-create.view.ts index 8c5b96a54..6633bbf2b 100644 --- a/src/app/shared/views/abstract-create/abstract-create.view.ts +++ b/src/app/shared/views/abstract-create/abstract-create.view.ts @@ -1,4 +1,5 @@ import {OnInit} from "@angular/core"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudStateModel} from "@app/shared/crud.state"; import {BaseDirective} from "@app/shared/directives/base.directive"; import {StateEnum} from "@app/shared/enums/state.enum"; @@ -6,15 +7,17 @@ import {CrudActionUtil} from "@app/shared/utils/crud-action.util"; import {Store} from "@ngxs/store"; export abstract class AbstractCreateView<T, U extends CrudStateModel<T>> extends BaseDirective implements OnInit { - protected constructor(protected store: Store, private state: StateEnum) { + protected constructor(protected store: Store, + private state: StateEnum, + private crudActionNameSpace: CrudNameSpace) { super(); } create(model: T) { - this.store.dispatch(CrudActionUtil.create(this.state, model)); + this.store.dispatch(CrudActionUtil.create(this.crudActionNameSpace, model)); } ngOnInit(): void { - this.store.dispatch(CrudActionUtil.loadResource(this.state)); + this.store.dispatch(CrudActionUtil.loadResource(this.crudActionNameSpace)); } } diff --git a/src/app/shared/views/abstract-detail/abstract-detail.view.ts b/src/app/shared/views/abstract-detail/abstract-detail.view.ts index a2a51330f..8f5573699 100644 --- a/src/app/shared/views/abstract-detail/abstract-detail.view.ts +++ b/src/app/shared/views/abstract-detail/abstract-detail.view.ts @@ -2,6 +2,7 @@ import {ComponentType} from "@angular/cdk/portal"; import {OnInit} from "@angular/core"; import {MatDialog} from "@angular/material"; import {ActivatedRoute} from "@angular/router"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudStateModel} from "@app/shared/crud.state"; import {AbstractDeleteDialog} from "@app/shared/dialogs/abstract-delete/abstract-delete.dialog"; import {BaseDirective} from "@app/shared/directives/base.directive"; @@ -30,14 +31,15 @@ export abstract class AbstractDetailView<T, U extends CrudStateModel<T>> extends protected constructor(protected store: Store, protected route: ActivatedRoute, public dialog: MatDialog, - private state: StateEnum) { + private state: StateEnum, + private crudActionNameSpace: CrudNameSpace) { super(); this.isLoading$ = this.store.select(s => (s[state] as U).isLoading); this.current$ = this.store.select(s => (s[state] as U).current); } ngOnInit(): void { - this.store.dispatch(CrudActionUtil.loadResource(this.state)); + this.store.dispatch(CrudActionUtil.loadResource(this.crudActionNameSpace)); this.retreiveCurrentModelWithUrl(); } @@ -47,7 +49,7 @@ export abstract class AbstractDetailView<T, U extends CrudStateModel<T>> extends } private getById(id: string) { - this.store.dispatch(CrudActionUtil.getById(this.state, id)); + this.store.dispatch(CrudActionUtil.getById(this.crudActionNameSpace, id)); this.getSubResourceWithParentId(id); } diff --git a/src/app/shared/views/abstract-edit/abstract-edit.view.ts b/src/app/shared/views/abstract-edit/abstract-edit.view.ts index 4ef2ed160..7be8fc6e6 100644 --- a/src/app/shared/views/abstract-edit/abstract-edit.view.ts +++ b/src/app/shared/views/abstract-edit/abstract-edit.view.ts @@ -1,5 +1,6 @@ import {OnInit} from "@angular/core"; import {ActivatedRoute} from "@angular/router"; +import {CrudNameSpace} from "@app/shared/crud.namespace"; import {CrudStateModel} from "@app/shared/crud.state"; import {BaseDirective} from "@app/shared/directives/base.directive"; import {StateEnum} from "@app/shared/enums/state.enum"; @@ -15,14 +16,15 @@ export abstract class AbstractEditView<T, U extends CrudStateModel<T>> extends B protected constructor(protected store: Store, protected route: ActivatedRoute, - private state: StateEnum) { + private state: StateEnum, + private crudActionNameSpace: CrudNameSpace) { super(); this.isLoading$ = this.store.select(s => (s[state] as U).isLoading); this.current$ = this.store.select(s => (s[state] as U).current); } ngOnInit(): void { - this.store.dispatch(CrudActionUtil.loadResource(this.state)); + this.store.dispatch(CrudActionUtil.loadResource(this.crudActionNameSpace)); this.getCurrentModel(); } @@ -32,7 +34,7 @@ export abstract class AbstractEditView<T, U extends CrudStateModel<T>> extends B } private getById(id: string) { - this.store.dispatch(CrudActionUtil.getById(this.state, id)); + this.store.dispatch(CrudActionUtil.getById(this.crudActionNameSpace, id)); this.getSubResourceWithParentId(id); } @@ -43,6 +45,6 @@ export abstract class AbstractEditView<T, U extends CrudStateModel<T>> extends B } update(model: T) { - this.store.dispatch(CrudActionUtil.update<T>(this.state, model)); + this.store.dispatch(CrudActionUtil.update<T>(this.crudActionNameSpace, model)); } } diff --git a/src/app/shared/views/abstract-list/abstract-list.view.ts b/src/app/shared/views/abstract-list/abstract-list.view.ts index 23439a390..dae45a17a 100644 --- a/src/app/shared/views/abstract-list/abstract-list.view.ts +++ b/src/app/shared/views/abstract-list/abstract-list.view.ts @@ -42,14 +42,14 @@ export abstract class AbstractListView<T, U extends CrudStateModel<T>> extends B } getAll(queryParameters?: QueryParametersModel) { - this.store.dispatch(CrudActionUtil.getAll(this.state, queryParameters)); + this.store.dispatch(CrudActionUtil.getAll(this.crudActionNameSpace, queryParameters)); } showDetail(model: T) { this.store.dispatch(new Navigate([CrudRouteUtil.getDetailRoute(this.state), model[ModelAttributeEnum.resId]])); } - onQueryParametersEvent($event: QueryParametersModel) { - this.store.dispatch(CrudActionUtil.changeQueryParametersBis(this.crudActionNameSpace, $event)); + onQueryParametersEvent(queryParameters: QueryParametersModel) { + this.store.dispatch(CrudActionUtil.changeQueryParameters(this.crudActionNameSpace, queryParameters)); } } -- GitLab