From 631765fb220d46e1c90e2ee5983127bc7851b075 Mon Sep 17 00:00:00 2001 From: Florent POITTEVIN <poittevin.florent@gmail.com> Date: Mon, 16 Mar 2020 10:48:10 +0100 Subject: [PATCH] fix: 1178 aip status history of stage 2 is the same as storage 1 --- .../preservation/aip/helpers/aip.helper.ts | 25 ++++++++++++++++++- .../preservation/aip/stores/aip.state.ts | 25 +++---------------- .../aip-status-history.state.ts | 3 ++- 3 files changed, 29 insertions(+), 24 deletions(-) diff --git a/src/app/features/preservation/aip/helpers/aip.helper.ts b/src/app/features/preservation/aip/helpers/aip.helper.ts index a9c739eb7..89a0c0bb8 100644 --- a/src/app/features/preservation/aip/helpers/aip.helper.ts +++ b/src/app/features/preservation/aip/helpers/aip.helper.ts @@ -1,6 +1,9 @@ import {ActivatedRoute} from "@angular/router"; import {AipTabEnum} from "@preservation/aip/enums/aip-tab.enum"; -import {PreservationPlanningRoutesEnum} from "@shared/enums/routes.enum"; +import {AppRoutesEnum, PreservationPlanningRoutesEnum} from "@shared/enums/routes.enum"; +import {isNullOrUndefined, StringUtil} from "solidify-frontend"; +import {ArchivalStorageResourceApiEnum} from "@shared/enums/api.enum"; +import {Store} from "@ngxs/store"; export class AipHelper { static getTabRouteSelected(route: ActivatedRoute): PreservationPlanningRoutesEnum | undefined { @@ -31,4 +34,24 @@ export class AipHelper { } return undefined; } + + static generateUrlResource(store: Store, storagionNumber: number | undefined = undefined): string { + if (isNullOrUndefined(storagionNumber)) { + if (isNullOrUndefined(store)) { + return StringUtil.stringEmpty; + } + const url = store.selectSnapshot(state => state.router.state.url); + if (url.includes(PreservationPlanningRoutesEnum.aipDetail)) { + const urlParts = url.split(AppRoutesEnum.separator); + storagionNumber = urlParts[urlParts.indexOf(PreservationPlanningRoutesEnum.aipDetail) - 1]; + } else { + storagionNumber = store.selectSnapshot(state => state.router.state.root.children[0].children[0].children[0].params[PreservationPlanningRoutesEnum.storagionNumberWithoutPrefixParam]); + } + } + const storagion = ArchivalStorageResourceApiEnum.aipStorages.find(aip => aip.index === +storagionNumber); + if (isNullOrUndefined(storagion)) { + throw new Error(`The storagion index '${storagionNumber}' is not find in setting`); + } + return storagion.url; + } } diff --git a/src/app/features/preservation/aip/stores/aip.state.ts b/src/app/features/preservation/aip/stores/aip.state.ts index 7c865705f..a637e973a 100644 --- a/src/app/features/preservation/aip/stores/aip.state.ts +++ b/src/app/features/preservation/aip/stores/aip.state.ts @@ -61,6 +61,7 @@ import { StringUtil, TRANSLATE, } from "solidify-frontend"; +import {AipHelper} from "@preservation/aip/helpers/aip.helper"; export interface PreservationAipStateModel extends ResourceStateModel<Aip> { preservation_aip_organizationalUnit: PreservationAipOrganizationalUnitStateModel; @@ -97,27 +98,7 @@ export class PreservationAipState extends ResourceState<PreservationAipStateMode } protected get _urlResource(): string { - return this._generateUrlResource(); - } - - private _generateUrlResource(storagionNumber: number | undefined = undefined): string { - if (isNullOrUndefined(storagionNumber)) { - if (isNullOrUndefined(this.store)) { - return StringUtil.stringEmpty; - } - const url = this.store.selectSnapshot(state => state.router.state.url); - if (url.includes(PreservationPlanningRoutesEnum.aipDetail)) { - const urlParts = url.split(AppRoutesEnum.separator); - storagionNumber = urlParts[urlParts.indexOf(PreservationPlanningRoutesEnum.aipDetail) - 1]; - } else { - storagionNumber = this.store.selectSnapshot(state => state.router.state.root.children[0].children[0].children[0].params[PreservationPlanningRoutesEnum.storagionNumberWithoutPrefixParam]); - } - } - const storagion = ArchivalStorageResourceApiEnum.aipStorages.find(aip => aip.index === +storagionNumber); - if (isNullOrUndefined(storagion)) { - throw new Error(`The storagion index '${storagionNumber}' is not find in setting`); - } - return storagion.url; + return AipHelper.generateUrlResource(this.store); } @Selector() @@ -163,7 +144,7 @@ export class PreservationAipState extends ResourceState<PreservationAipStateMode ...reset, }); - return this.apiService.getById<Aip>(this._generateUrlResource(action.storagionNumber), action.id) + return this.apiService.getById<Aip>(AipHelper.generateUrlResource(this.store, action.storagionNumber), action.id) .pipe( tap((model: Aip) => { ctx.dispatch(new PreservationAipAction.GetByIdSuccess(action, model)); diff --git a/src/app/features/preservation/aip/stores/status-history/aip-status-history.state.ts b/src/app/features/preservation/aip/stores/status-history/aip-status-history.state.ts index 8924d1f7e..b9f0af938 100644 --- a/src/app/features/preservation/aip/stores/status-history/aip-status-history.state.ts +++ b/src/app/features/preservation/aip/stores/status-history/aip-status-history.state.ts @@ -17,6 +17,7 @@ import { ApiService, NotificationService, } from "solidify-frontend"; +import {AipHelper} from "@preservation/aip/helpers/aip.helper"; export interface PreservationAipStatusHistoryStateModel extends StatusHistoryStateModel<Aip> { } @@ -39,6 +40,6 @@ export class PreservationAipStatusHistoryState extends StatusHistoryState<Preser } protected get _urlResource(): string { - return ArchivalStorageResourceApiEnum.aip; + return AipHelper.generateUrlResource(this.store); } } -- GitLab