diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource.util.spec.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource.util.spec.ts index 07ef0798552c6f98fdeed8603fca545ebf05562c..293d3e918580059d0aed36eb52051663afd945d7 100644 --- a/alfa-client/libs/tech-shared/src/lib/resource/resource.util.spec.ts +++ b/alfa-client/libs/tech-shared/src/lib/resource/resource.util.spec.ts @@ -22,7 +22,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -import { EMPTY_ARRAY } from '@alfa-client/tech-shared'; +import { EMPTY_ARRAY, notHasLink } from '@alfa-client/tech-shared'; import { Resource } from '@ngxp/rest'; import { createDummyListResource, @@ -39,6 +39,8 @@ import { isResourceDifferent, isValidStateResource, } from './resource.util'; +import { createCommandResource } from '../../../../command-shared/test/command'; +import { CommandLinkRel } from '../../../../command-shared/src/lib/command.linkrel'; describe('resource util', () => { describe('isLoadingRequired', () => { @@ -189,4 +191,21 @@ describe('isResourceDifferent', () => { expect(isChanged).toBeFalsy(); }); + + describe('notHasLink', () => { + it('should return true', () => { + const result = notHasLink(createCommandResource(), CommandLinkRel.EFFECTED_RESOURCE); + + expect(result).toBeTruthy(); + }); + + it('should return true', () => { + const result = notHasLink( + createCommandResource([CommandLinkRel.EFFECTED_RESOURCE]), + CommandLinkRel.EFFECTED_RESOURCE, + ); + + expect(result).toBeFalsy(); + }); + }); }); diff --git a/alfa-client/libs/tech-shared/src/lib/resource/resource.util.ts b/alfa-client/libs/tech-shared/src/lib/resource/resource.util.ts index 08d17f6400cd22441ea75c8b6c57f0159a5f1109..78791500f052588d712548fe8274eff5d785d20e 100644 --- a/alfa-client/libs/tech-shared/src/lib/resource/resource.util.ts +++ b/alfa-client/libs/tech-shared/src/lib/resource/resource.util.ts @@ -22,7 +22,7 @@ * unter der Lizenz sind dem Lizenztext zu entnehmen. */ import { encodeUrlForEmbedding, isNotNull } from '@alfa-client/tech-shared'; -import { getEmbeddedResource, getUrl, Resource, ResourceUri } from '@ngxp/rest'; +import { getEmbeddedResource, getUrl, hasLink, Resource, ResourceUri } from '@ngxp/rest'; import { isEqual, isNil } from 'lodash-es'; import { HttpError } from '../tech.model'; @@ -113,3 +113,7 @@ export function isResourceDifferent( export function throwErrorOn(condition: boolean, errorMsg: string): void { if (condition) throw Error(errorMsg); } + +export function notHasLink<T extends Resource>(resource: T, linkRel: string): boolean { + return !hasLink(resource, linkRel); +} diff --git a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts index d5f23cad1c8ab2ea2994110073779f3381c42c37..3659ad16a204f227fea8fec11e20ce6f6bf1e0a8 100644 --- a/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts +++ b/alfa-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-bescheiden/vorgang-detail-bescheiden-steps/vorgang-detail-bescheiden-steps-content/vorgang-detail-bescheiden-ueberspringen-dialog/vorgang-detail-bescheiden-ueberspringen-dialog.component.ts @@ -4,9 +4,8 @@ import { OzgcloudDialogService } from '@alfa-client/ui'; import { BescheidService } from '@alfa-client/bescheid-shared'; import { Observable, switchMap, tap } from 'rxjs'; import { CommandResource, isSuccessfulDone } from '@alfa-client/command-shared'; -import { StateResource } from '@alfa-client/tech-shared'; +import { notHasLink, StateResource } from '@alfa-client/tech-shared'; import { BescheiderstellungUeberspringenDailogData } from '@alfa-client/vorgang-detail'; -import { hasLink } from '@ngxp/rest'; import { VorgangWithEingangLinkRel } from '@alfa-client/vorgang-shared'; @Component({ @@ -29,7 +28,7 @@ export class VorgangDetailBescheidenUeberspringenDialogComponent { onConfirm() { const vorgangWithEingangResource = this.dialogData.vorgangWithEingangResource; - if (!hasLink(vorgangWithEingangResource, VorgangWithEingangLinkRel.BESCHEID_DRAFT)) { + if (notHasLink(vorgangWithEingangResource, VorgangWithEingangLinkRel.BESCHEID_DRAFT)) { this.bescheiderstellungUeberspringen$ = this.bescheidService.bescheidErstellungUeberspringen( vorgangWithEingangResource, );