diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 0e8d26a4c8..267c611bb9 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,5 +1,7 @@ ## RELEASE NOTES +### Version 7.0.55 +**EXUI-1775** Refdata intend to change ### Version 7.0.54 **EXUI-2085** Add Task completion logs in app insight diff --git a/package.json b/package.json index 0c2607df59..b7e6d37f75 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@hmcts/ccd-case-ui-toolkit", - "version": "7.0.54", + "version": "7.0.55", "engines": { "node": ">=18.19.0" }, diff --git a/projects/ccd-case-ui-toolkit/package.json b/projects/ccd-case-ui-toolkit/package.json index c184944956..3f2f4dc6e1 100644 --- a/projects/ccd-case-ui-toolkit/package.json +++ b/projects/ccd-case-ui-toolkit/package.json @@ -1,6 +1,6 @@ { "name": "@hmcts/ccd-case-ui-toolkit", - "version": "7.0.54", + "version": "7.0.55", "engines": { "node": ">=18.19.0" }, diff --git a/projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/case-flag-refdata.service.spec.ts b/projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/case-flag-refdata.service.spec.ts index 37585522d9..f5024ce2ab 100644 --- a/projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/case-flag-refdata.service.spec.ts +++ b/projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/case-flag-refdata.service.spec.ts @@ -96,7 +96,7 @@ describe('Case Flag Refdata Service', () => { next: flagTypes => expect(flagTypes).toEqual(dummyFlagsData.flags[0].FlagDetails) }); - const req = httpMock.expectOne(caseFlagsRefdataApiUrl.replace(':sid', 'BBA3')); + const req = httpMock.expectOne(caseFlagsRefdataApiUrl.replace(':sid', 'BBA3')+'?available-external-flag=N'); expect(req.request.method).toEqual('GET'); req.flush(dummyFlagsData); }); @@ -106,7 +106,7 @@ describe('Case Flag Refdata Service', () => { next: flagTypes => expect(flagTypes).toEqual(dummyFlagsData.flags[0].FlagDetails) }); - const req = httpMock.expectOne(`${caseFlagsRefdataApiUrl.replace(':sid', 'BBA3')}?flag-type=${RefdataCaseFlagType.PARTY}`); + const req = httpMock.expectOne(`${caseFlagsRefdataApiUrl.replace(':sid', 'BBA3')}?flag-type=${RefdataCaseFlagType.PARTY}&available-external-flag=N`); expect(req.request.method).toEqual('GET'); req.flush(dummyFlagsData); }); @@ -117,7 +117,7 @@ describe('Case Flag Refdata Service', () => { }); const req = httpMock.expectOne( - `${caseFlagsRefdataApiUrl.replace(':sid', 'BBA3')}?flag-type=${RefdataCaseFlagType.PARTY}&welsh-required=Y`); + `${caseFlagsRefdataApiUrl.replace(':sid', 'BBA3')}?flag-type=${RefdataCaseFlagType.PARTY}&welsh-required=Y&available-external-flag=N`); expect(req.request.method).toEqual('GET'); req.flush(dummyFlagsData); }); @@ -127,7 +127,7 @@ describe('Case Flag Refdata Service', () => { next: flagTypes => expect(flagTypes).toEqual(dummyFlagsData.flags[0].FlagDetails) }); - const req = httpMock.expectOne(`${caseFlagsRefdataApiUrl.replace(':sid', 'BBA3')}?welsh-required=N`); + const req = httpMock.expectOne(`${caseFlagsRefdataApiUrl.replace(':sid', 'BBA3')}?welsh-required=N&available-external-flag=N`); expect(req.request.method).toEqual('GET'); req.flush(dummyFlagsData); }); diff --git a/projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/case-flag-refdata.service.ts b/projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/case-flag-refdata.service.ts index 97ce2c7854..9ed5d8f7e0 100644 --- a/projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/case-flag-refdata.service.ts +++ b/projects/ccd-case-ui-toolkit/src/lib/shared/services/case-flag/case-flag-refdata.service.ts @@ -24,31 +24,26 @@ export class CaseFlagRefdataService { */ public getCaseFlagsRefdata(serviceId: string, flagType?: RefdataCaseFlagType, welshRequired?: boolean, externalFlagsOnly?: boolean): Observable { let url = this.appConfig.getCaseFlagsRefdataApiUrl(); - if (url) { url = url.replace(':sid', serviceId); + const requestSearchParams = new URLSearchParams(); if (flagType) { - url += `?flag-type=${flagType}`; + requestSearchParams.set('flag-type', flagType); } if (typeof welshRequired === 'boolean') { - // Check if flag-type has been added to the query string; if so, append welsh-required with '&' - url.indexOf('?') > -1 ? url += '&' : url += '?'; - welshRequired ? url += 'welsh-required=Y' : url += 'welsh-required=N'; - } - - if (externalFlagsOnly) { - // Check if anything has been added to the query string; if so, append available-external-flag with '&' - url.indexOf('?') > -1 ? url += '&' : url += '?'; - url += 'available-external-flag=Y'; + const welshFlagValue = welshRequired ? 'Y' : 'N'; + requestSearchParams.set('welsh-required', welshFlagValue); } - + const externalFlagsValue = externalFlagsOnly ? 'Y' : 'N'; + requestSearchParams.set('available-external-flag', externalFlagsValue); + url = `${url}?${requestSearchParams.toString()}`; return this.http - .get(url, {observe: 'body'}) + .get(url, { observe: 'body' }) .pipe( // Reference Data Common API returns a single object with a "flags" array, which itself contains a single object // with a "FlagDetails" array, which contains a hierarchy of flag types in an object - one each for "Party" flags // and "Case" flags - map(body => { + map((body) => { if (!body || !body.flags || !body.flags.length || !body.flags[0].FlagDetails || !body.flags[0].FlagDetails.length) { // Note: Reference Data Common API appears to respond with a 404 error rather than send an empty response, // so this may be redundant