diff --git a/src/app/deposit/deposit.action.ts b/src/app/deposit/deposit.action.ts index f0c23b371f5fb593429eae2e572a1646439433e6..f1352acfe4f8c6039ba29ba686ec4a2fa48228c9 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 71b022a1915d65b5c205d0f5e8af74cd07f949f1..f66bfd90b95431dab9e69073200461d9f646ce6a 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 43c8cafcce389162f14e0401d4fa6149ade652dc..8cbf4e5c492e85342dcbf44629e4b9a893ac7372 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 b46430034f4763fcda27132504853978a5658dec..bec52015a44474e56b88b51b14b5ebf314569ea9 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 6ee60b4baaa897cfeb3c595db283c14f5026836e..2bcf74db41499d6f4e77974fbb5f17f92daf98b3 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 06bb940775a6636489764c21af6d143d1cd962cf..ff02571b00575cd7812a44756e52cb7b2550df16 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 4f69389b4e2b4979dfd427e579a71d48e5bf3c5a..ebf8557239a22d2995225dd45476c98903ef27da 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 db111601b6169e81e777bd5743db2335bee9862a..396c10c4da2aff0ea3fb2aa583fdc8ed13502a51 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 0e10da7e6d6082628cc130a25617eb87c82e9693..1a4efd0d75e5ee1bf06589a852481d41a36c1b52 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 33864745e41903208c0e051395406688452cbe72..433eb7b193d03fad733fe977f1673d0ebbc2600f 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 7300cbf40189684c8249034f471000ee324a6e1b..57018824bf5484bc6a12736e0093b445eef05d72 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 6fe56a03f9f28aad673fcfd80dfdeb1d4029a556..c9dc92fab54673e5f4f122785d18521eb37dba27 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 506452e6151311f6cb4c8a7e24ca2d20b0b91aba..f072ceb1592be5439f12b055ca71487468525fe4 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 91e8ea98638ab326fc74be022dcf899fb537be3e..0b8a0106ae8e33cc893029a92df6f5d663bcbadf 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 2683b72b1a814ba7cc4daa126242d6451e949f35..e5b2ce7ed3310e19ee86fb2407b8dc8c1c401931 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 04685d81272eaab8ef6e441eed6dc689c7151942..bb21053e9779ff6d90c44c6d70a1f59ad668ecd0 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 053b3dd09600957ee49990f96a3e122f1f1e6dd8..85f82f4498aa36b3fa6bc39951e7ff836625b8d0 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 29e3b0f40ac272287bec43b7608ca69115c6995e..c03aeaad6d87657f622f87da4d9a7497ad094f41 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 034e2b329bacaf8a320fda4bc278cf34a57e085c..2ff0e7480994eb6fa4cf98e605520a28b81c1a89 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 80ce913de35b2fe47599366c55bd25514ca6408b..0618b6b2eb363de66d028bfe88cab30e54b4ba26 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 e79e8efc285dac5dc53453e44313e96be15e1033..9a0ce4db6e396ec421e6f55dd9f5959753f74359 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 a5944001eb59069c4321dacb4fe9425a3ba6b25d..dc5b9a1fe575ea0a53bbe260f59976fa48fdcc5a 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 c926bed29def3b0a0444292e6f498246b649ca50..7e07290c63d8a6d45dcb3d6f8a798af394e5b24c 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 8c5b96a54346f308ec90b33c91fa184e84e80764..6633bbf2b26b6c7d390876b4728cc212ff81f3b4 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 a2a51330f85c797195163c9cb00848095523d706..8f5573699c299164bf72ec26e395649a8af75963 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 4ef2ed1603ef4dde6d681e5f8e3d7dd713838ca2..7be8fc6e6a6b55285d9183720a95bbf53ca9ba98 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 23439a3902b6be4a8dab033fa84adfcbd509a59b..dae45a17aac2b8158a839717f83ca9ff16306f9a 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)); } }