From 82886def499b0d60165208b0af1940c1221321c3 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 12 Feb 2026 10:35:21 +0000 Subject: [PATCH 01/10] DTSRD-5695.LRD Court Venue - Data model updates --- ...rieveCourtVenueDetailsIntegrationTest.java | 60 +++++++++++++++++++ ...rtVenuesBySearchStringIntegrationTest.java | 37 ++++++++++++ ...urtVenuesByServiceCodeIntegrationTest.java | 49 +++++++++++++++ ...rt_venue_add_service_code_composite_pk.sql | 12 ++++ ...V1_33__update_court_venue_service_code.sql | 19 ++++++ .../response/LrdCourtVenueResponse.java | 4 ++ .../reform/lrdapi/domain/CourtVenue.java | 5 +- ...rt_venue_add_service_code_composite_pk.sql | 12 ++++ 8 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 src/integrationTest/resources/db/testmigration/V1_32__alter_court_venue_add_service_code_composite_pk.sql create mode 100644 src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql create mode 100644 src/main/resources/db/migration/V1_32__alter_court_venue_add_service_code_composite_pk.sql diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenueDetailsIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenueDetailsIntegrationTest.java index b694aa745..76b47e18d 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenueDetailsIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenueDetailsIntegrationTest.java @@ -506,4 +506,64 @@ void shouldReturn200WhenParameterEpmIdsValueAllWithYAndSpacePassed() throws assertThat(response).isNotEmpty().hasSize(1); } + + @Test + @SuppressWarnings("unchecked") + void retrieveCourtVenues_WithEpimmsId_ShouldReturnServiceCodeInResponse() throws JsonProcessingException { + + final var response = (List) + lrdApiClient.retrieveCourtVenueResponseForGivenRequest("?epimms_id=123456789", + LrdCourtVenueResponse[].class, path); + + assertThat(response).isNotEmpty().hasSize(1); + LrdCourtVenueResponse venueResponse = response.get(0); + assertNotNull(venueResponse.getServiceCode()); + assertTrue(venueResponse.getServiceCode().matches("[A-Z0-9]+")); + } + + @ParameterizedTest + @CsvSource({ + "123456789,AAA2", + "123461,AAA2", + "123462,AAA3" + }) + @SuppressWarnings("unchecked") + void retrieveCourtVenues_WithEpimmsId_ShouldReturnCorrectServiceCode(String epimmsId, String expectedServiceCode) + throws JsonProcessingException { + + final var response = (List) + lrdApiClient.retrieveCourtVenueResponseForGivenRequest("?epimms_id=" + epimmsId, + LrdCourtVenueResponse[].class, path); + + assertThat(response).isNotEmpty().hasSize(1); + assertEquals(expectedServiceCode, response.get(0).getServiceCode()); + } + + @Test + @SuppressWarnings("unchecked") + void retrieveCourtVenues_AllVenues_ShouldAllHaveServiceCode() throws JsonProcessingException { + + final var response = (List) + lrdApiClient.retrieveCourtVenueResponseForGivenRequest("?epimms_id=ALL", + LrdCourtVenueResponse[].class, path); + + assertThat(response).isNotEmpty(); + assertTrue(response.stream().allMatch(venue -> venue.getServiceCode() != null + && !venue.getServiceCode().isEmpty())); + } + + @Test + @SuppressWarnings("unchecked") + void retrieveCourtVenues_WithEpimmsIdAndServiceCode_ShouldEnforceUniqueConstraint() throws JsonProcessingException { + + final var response = (List) + lrdApiClient.retrieveCourtVenueResponseForGivenRequest("?epimms_id=123456789", + LrdCourtVenueResponse[].class, path); + + assertThat(response).isNotEmpty().hasSize(1); + LrdCourtVenueResponse venueResponse = response.get(0); + assertNotNull(venueResponse.getEpimmsId()); + assertNotNull(venueResponse.getServiceCode()); + assertEquals("123456789", venueResponse.getEpimmsId()); + } } diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesBySearchStringIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesBySearchStringIntegrationTest.java index 2bd13024a..81c59d014 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesBySearchStringIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesBySearchStringIntegrationTest.java @@ -287,4 +287,41 @@ void errorResponseVerification(Map errorResponseMap, String expe expectedErrorDescription)); } + @Test + @SuppressWarnings("unchecked") + void shouldRetrieveCourtVenues_For_SearchString_WithServiceCodeInResponse_WithStatusCode_200() + throws JsonProcessingException { + final var response = (LrdCourtVenueResponse[]) + lrdApiClient.findCourtVenuesBySearchString( + "?search-string=Abe", + LrdCourtVenueResponse[].class, + path + ); + + assertThat(response).isNotEmpty(); + for (LrdCourtVenueResponse venue : response) { + assertNotNull(venue.getServiceCode(), "Service code should not be null in search response"); + assertThat(venue.getServiceCode()).isNotEmpty(); + } + } + + @Test + @SuppressWarnings("unchecked") + void shouldRetrieveCourtVenues_For_SearchString_AllHaveValidServiceCode() + throws JsonProcessingException { + final var response = (LrdCourtVenueResponse[]) + lrdApiClient.findCourtVenuesBySearchString( + "?search-string=Sto", + LrdCourtVenueResponse[].class, + path + ); + + assertThat(response).isNotEmpty(); + assertTrue(Arrays.stream(response) + .allMatch(venue -> venue.getServiceCode() != null && !venue.getServiceCode().isEmpty()), + "All venues should have a non-empty service code"); + } + } + + diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java index e77d1010b..f1666fe4b 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java @@ -157,4 +157,53 @@ private List buildCourtVenueResponses() { return expectedCourtVenueResponses; } + @ParameterizedTest + @ValueSource(strings = {"AAA2", "AAA3", "AAA6", "ABA4"}) + void verifyCourtVenuesContainServiceCode_ForServiceCode(String serviceCode) + throws JsonProcessingException { + + final var response = (LrdCourtVenuesByServiceCodeResponse) + lrdApiClient.findCourtVenuesByServiceCode(serviceCode, LrdCourtVenuesByServiceCodeResponse.class); + + assertNotNull(response); + assertNotNull(response.getCourtVenues()); + response.getCourtVenues().forEach(venue -> assertNotNull(venue.getServiceCode())); + } + + @Test + void verifyAllCourtVenuesInServiceCodeResponse_HaveMatchingServiceCode() + throws JsonProcessingException { + + final var response = (LrdCourtVenuesByServiceCodeResponse) + lrdApiClient.findCourtVenuesByServiceCode("AAA3", LrdCourtVenuesByServiceCodeResponse.class); + + assertNotNull(response); + String expectedServiceCode = response.getServiceCode(); + assertNotNull(response.getCourtVenues()); + + response.getCourtVenues().stream() + .filter(venue -> venue.getServiceCode() != null) + .forEach(venue -> assertEquals(expectedServiceCode, venue.getServiceCode(), + "Service code in venue response should match the requested service code")); + } + + @Test + void verifyCourtVenueResponse_ServiceCodeField_NotNull() + throws JsonProcessingException { + + final var response = (LrdCourtVenuesByServiceCodeResponse) + lrdApiClient.findCourtVenuesByServiceCode("AAA2", LrdCourtVenuesByServiceCodeResponse.class); + + assertNotNull(response); + assertNotNull(response.getCourtVenues()); + assertThat(response.getCourtVenues()).isNotEmpty(); + + response.getCourtVenues().forEach(venue -> { + assertNotNull(venue.getServiceCode(), "Service code should not be null"); + assertThat(venue.getServiceCode()).isNotEmpty(); + }); + } + } + + diff --git a/src/integrationTest/resources/db/testmigration/V1_32__alter_court_venue_add_service_code_composite_pk.sql b/src/integrationTest/resources/db/testmigration/V1_32__alter_court_venue_add_service_code_composite_pk.sql new file mode 100644 index 000000000..aab08ddef --- /dev/null +++ b/src/integrationTest/resources/db/testmigration/V1_32__alter_court_venue_add_service_code_composite_pk.sql @@ -0,0 +1,12 @@ +-- Add service_code column to court_venue table +ALTER TABLE court_venue ADD COLUMN IF NOT EXISTS service_code VARCHAR(16); + +-- Drop the existing unique constraint on (epimms_id, court_type_id) +ALTER TABLE court_venue DROP CONSTRAINT IF EXISTS court_location_unique; + +-- Add a new unique constraint with epimms_id and service_code +ALTER TABLE court_venue ADD CONSTRAINT court_location_unique UNIQUE (epimms_id, service_code); + +-- Add foreign key constraint for service_code +ALTER TABLE court_venue ADD CONSTRAINT court_venue_service_code_fk FOREIGN KEY (service_code) REFERENCES SERVICE (service_code); + diff --git a/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql b/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql new file mode 100644 index 000000000..c7a6fefda --- /dev/null +++ b/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql @@ -0,0 +1,19 @@ +-- Update court venue test data with service_code values +UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 1; +UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 2; +UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 3; +UPDATE court_venue SET service_code = 'ABA4' WHERE court_venue_id = 4; +UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 5; +UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 6; +UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 7; +UPDATE court_venue SET service_code = 'ABA4' WHERE court_venue_id = 8; +UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 9; +UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 10; +UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 11; +UPDATE court_venue SET service_code = 'ABA4' WHERE court_venue_id = 12; +UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 13; +UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 14; +UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 15; + +COMMIT; + diff --git a/src/main/java/uk/gov/hmcts/reform/lrdapi/controllers/response/LrdCourtVenueResponse.java b/src/main/java/uk/gov/hmcts/reform/lrdapi/controllers/response/LrdCourtVenueResponse.java index a303f7d03..378c51f53 100644 --- a/src/main/java/uk/gov/hmcts/reform/lrdapi/controllers/response/LrdCourtVenueResponse.java +++ b/src/main/java/uk/gov/hmcts/reform/lrdapi/controllers/response/LrdCourtVenueResponse.java @@ -25,6 +25,9 @@ public class LrdCourtVenueResponse implements Serializable { @JsonProperty("epimms_id") private String epimmsId; + @JsonProperty("service_code") + private String serviceCode; + @JsonProperty("site_name") private String siteName; @@ -151,6 +154,7 @@ public LrdCourtVenueResponse(CourtVenue courtVenue) { this.courtType = courtVenue.getCourtType().getTypeOfCourt(); this.dxAddress = courtVenue.getDxAddress(); this.epimmsId = courtVenue.getEpimmsId(); + this.serviceCode = courtVenue.getServiceCode(); this.openForPublic = Boolean.TRUE.equals(courtVenue.getOpenForPublic()) ? "YES" : "NO"; this.phoneNumber = courtVenue.getPhoneNumber(); this.welshCourtAddress = courtVenue.getWelshCourtAddress(); diff --git a/src/main/java/uk/gov/hmcts/reform/lrdapi/domain/CourtVenue.java b/src/main/java/uk/gov/hmcts/reform/lrdapi/domain/CourtVenue.java index cb1d907b2..e1fe6c0f9 100644 --- a/src/main/java/uk/gov/hmcts/reform/lrdapi/domain/CourtVenue.java +++ b/src/main/java/uk/gov/hmcts/reform/lrdapi/domain/CourtVenue.java @@ -29,7 +29,7 @@ @Setter @Builder @EqualsAndHashCode -@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"epimms_id","site_name","court_type_id"})) +@Table(uniqueConstraints = @UniqueConstraint(columnNames = {"epimms_id","service_code"})) public class CourtVenue implements Serializable { @Id @@ -42,6 +42,9 @@ public class CourtVenue implements Serializable { @Column(name = "epimms_id") private String epimmsId; + @Column(name = "service_code") + private String serviceCode; + @CreatedDate private LocalDateTime createdTime; diff --git a/src/main/resources/db/migration/V1_32__alter_court_venue_add_service_code_composite_pk.sql b/src/main/resources/db/migration/V1_32__alter_court_venue_add_service_code_composite_pk.sql new file mode 100644 index 000000000..aab08ddef --- /dev/null +++ b/src/main/resources/db/migration/V1_32__alter_court_venue_add_service_code_composite_pk.sql @@ -0,0 +1,12 @@ +-- Add service_code column to court_venue table +ALTER TABLE court_venue ADD COLUMN IF NOT EXISTS service_code VARCHAR(16); + +-- Drop the existing unique constraint on (epimms_id, court_type_id) +ALTER TABLE court_venue DROP CONSTRAINT IF EXISTS court_location_unique; + +-- Add a new unique constraint with epimms_id and service_code +ALTER TABLE court_venue ADD CONSTRAINT court_location_unique UNIQUE (epimms_id, service_code); + +-- Add foreign key constraint for service_code +ALTER TABLE court_venue ADD CONSTRAINT court_venue_service_code_fk FOREIGN KEY (service_code) REFERENCES SERVICE (service_code); + From 9482f1b8cb61fe060b3af882e87ff8c20a9a05ee Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 12 Feb 2026 10:44:44 +0000 Subject: [PATCH 02/10] DTSRD-5695.LRD Court Venue - Data model updates --- ...dCourtVenuesByServiceCodeResponseTest.java | 3 +- .../reform/lrdapi/domain/CourtVenueTest.java | 125 +++++++++++++++--- .../impl/CourtVenueServiceImplTest.java | 3 + 3 files changed, 114 insertions(+), 17 deletions(-) diff --git a/src/test/java/uk/gov/hmcts/reform/lrdapi/controllers/response/LrdCourtVenuesByServiceCodeResponseTest.java b/src/test/java/uk/gov/hmcts/reform/lrdapi/controllers/response/LrdCourtVenuesByServiceCodeResponseTest.java index dc39dd0af..0095a2ab0 100644 --- a/src/test/java/uk/gov/hmcts/reform/lrdapi/controllers/response/LrdCourtVenuesByServiceCodeResponseTest.java +++ b/src/test/java/uk/gov/hmcts/reform/lrdapi/controllers/response/LrdCourtVenuesByServiceCodeResponseTest.java @@ -41,6 +41,7 @@ void testCourtVenuesByServiceCodeResponse() { .venueName("venueName") .isCaseManagementLocation("Y") .isHearingLocation("Y") + .serviceCode("ABC1") .build(); courtType.setCourtVenues(Collections.singletonList(courtVenue)); @@ -57,6 +58,6 @@ void testCourtVenuesByServiceCodeResponse() { assertNotNull(courtVenuesByServiceCodeResponse.getCourtVenues().get(0).getVenueName()); assertNotNull(courtVenuesByServiceCodeResponse.getCourtVenues().get(0).getIsCaseManagementLocation()); assertNotNull(courtVenuesByServiceCodeResponse.getCourtVenues().get(0).getIsHearingLocation()); - + assertEquals("ABC1", courtVenuesByServiceCodeResponse.getCourtVenues().get(0).getServiceCode()); } } diff --git a/src/test/java/uk/gov/hmcts/reform/lrdapi/domain/CourtVenueTest.java b/src/test/java/uk/gov/hmcts/reform/lrdapi/domain/CourtVenueTest.java index d700108fb..8eb412e3f 100644 --- a/src/test/java/uk/gov/hmcts/reform/lrdapi/domain/CourtVenueTest.java +++ b/src/test/java/uk/gov/hmcts/reform/lrdapi/domain/CourtVenueTest.java @@ -59,6 +59,7 @@ void testCourtVenue() { courtVenue.setIsNightingaleCourt("N"); courtVenue.setLocationType("Court"); courtVenue.setParentLocation(""); + courtVenue.setServiceCode("AAA2"); assertEquals("1", courtVenue.getCourtVenueId().toString()); assertEquals("siteName", courtVenue.getSiteName()); @@ -66,24 +67,25 @@ void testCourtVenue() { assertEquals(courtType, courtVenue.getCourtType()); assertEquals(cluster, courtVenue.getCluster().get()); assertTrue(courtVenue.getOpenForPublic()); - assertEquals("courtAddress",courtVenue.getCourtAddress()); - assertEquals("AB EYZ",courtVenue.getPostcode()); - assertEquals("122324234",courtVenue.getPhoneNumber()); - assertEquals("courtLocationCode",courtVenue.getCourtLocationCode()); - assertEquals("dxAddress",courtVenue.getDxAddress()); - assertEquals("welshSiteName",courtVenue.getWelshSiteName()); - assertEquals("welshCourtAddress",courtVenue.getWelshCourtAddress()); - assertEquals("Open",courtVenue.getCourtStatus()); - assertEquals("courtName",courtVenue.getCourtName()); - assertEquals("venueName",courtVenue.getVenueName()); - assertEquals("Y",courtVenue.getIsCaseManagementLocation()); - assertEquals("Y",courtVenue.getIsHearingLocation()); - assertEquals("",courtVenue.getWelshVenueName()); - assertEquals("N",courtVenue.getIsTemporaryLocation()); - assertEquals(now,courtVenue.getClosedDate().get()); - assertEquals(now,courtVenue.getCourtOpenDate().get()); + assertEquals("courtAddress", courtVenue.getCourtAddress()); + assertEquals("AB EYZ", courtVenue.getPostcode()); + assertEquals("122324234", courtVenue.getPhoneNumber()); + assertEquals("courtLocationCode", courtVenue.getCourtLocationCode()); + assertEquals("dxAddress", courtVenue.getDxAddress()); + assertEquals("welshSiteName", courtVenue.getWelshSiteName()); + assertEquals("welshCourtAddress", courtVenue.getWelshCourtAddress()); + assertEquals("Open", courtVenue.getCourtStatus()); + assertEquals("courtName", courtVenue.getCourtName()); + assertEquals("venueName", courtVenue.getVenueName()); + assertEquals("Y", courtVenue.getIsCaseManagementLocation()); + assertEquals("Y", courtVenue.getIsHearingLocation()); + assertEquals("", courtVenue.getWelshVenueName()); + assertEquals("N", courtVenue.getIsTemporaryLocation()); + assertEquals(now, courtVenue.getClosedDate().get()); + assertEquals(now, courtVenue.getCourtOpenDate().get()); assertEquals(now, courtVenue.getCreatedTime()); assertEquals(now, courtVenue.getUpdatedTime()); + assertEquals("AAA2", courtVenue.getServiceCode()); } @@ -104,4 +106,95 @@ void testCourtVenueRequestParam() { } + @Test + void testCourtVenueBuilderWithServiceCode() { + Region region = new Region(); + region.setDescription("Region ABC"); + region.setRegionId("789"); + + CourtType courtType = new CourtType(); + courtType.setCourtTypeId("20"); + courtType.setTypeOfCourt("District Court"); + + Cluster cluster = new Cluster(); + cluster.setClusterId("789"); + cluster.setClusterName("ClusterABC"); + + LocalDateTime now = LocalDateTime.now(); + + CourtVenue courtVenue = CourtVenue.builder() + .courtVenueId(2L) + .siteName("London Court") + .region(region) + .courtType(courtType) + .cluster(cluster) + .openForPublic(Boolean.FALSE) + .courtAddress("123 Main Street") + .postcode("SW1A 1AA") + .phoneNumber("0207946253") + .courtLocationCode("LON001") + .dxAddress("55 Strand") + .welshSiteName("Llys Llundain") + .welshCourtAddress("123 Heol Fawr") + .courtStatus("Open") + .courtOpenDate(now) + .courtName("LONDON COURT") + .createdTime(now) + .updatedTime(now) + .venueName("London Venue") + .isCaseManagementLocation("N") + .isHearingLocation("Y") + .welshVenueName("Lleoliad Llundain") + .isTemporaryLocation("Y") + .isNightingaleCourt("N") + .locationType("Nightingale") + .parentLocation("100") + .serviceCode("AAA3") + .build(); + + assertEquals(2L, courtVenue.getCourtVenueId()); + assertEquals("London Court", courtVenue.getSiteName()); + assertEquals("789", courtVenue.getRegion().get().getRegionId()); + assertEquals("20", courtVenue.getCourtType().getCourtTypeId()); + assertEquals("789", courtVenue.getCluster().get().getClusterId()); + assertTrue(!courtVenue.getOpenForPublic()); + assertEquals("123 Main Street", courtVenue.getCourtAddress()); + assertEquals("SW1A 1AA", courtVenue.getPostcode()); + assertEquals("0207946253", courtVenue.getPhoneNumber()); + assertEquals("LON001", courtVenue.getCourtLocationCode()); + assertEquals("55 Strand", courtVenue.getDxAddress()); + assertEquals("Llys Llundain", courtVenue.getWelshSiteName()); + assertEquals("123 Heol Fawr", courtVenue.getWelshCourtAddress()); + assertEquals("Open", courtVenue.getCourtStatus()); + assertEquals("LONDON COURT", courtVenue.getCourtName()); + assertEquals("London Venue", courtVenue.getVenueName()); + assertEquals("N", courtVenue.getIsCaseManagementLocation()); + assertEquals("Y", courtVenue.getIsHearingLocation()); + assertEquals("Lleoliad Llundain", courtVenue.getWelshVenueName()); + assertEquals("Y", courtVenue.getIsTemporaryLocation()); + assertEquals("N", courtVenue.getIsNightingaleCourt()); + assertEquals("Nightingale", courtVenue.getLocationType()); + assertEquals("100", courtVenue.getParentLocation()); + assertEquals("AAA3", courtVenue.getServiceCode()); + } + + @Test + void testCourtVenueServiceCodeValidation() { + CourtVenue courtVenue1 = new CourtVenue(); + courtVenue1.setServiceCode("AAA2"); + assertEquals("AAA2", courtVenue1.getServiceCode()); + + CourtVenue courtVenue2 = CourtVenue.builder() + .courtVenueId(1L) + .serviceCode("AAA6") + .build(); + assertEquals("AAA6", courtVenue2.getServiceCode()); + + CourtVenue courtVenue3 = CourtVenue.builder() + .courtVenueId(2L) + .serviceCode("ABA4") + .build(); + assertEquals("ABA4", courtVenue3.getServiceCode()); + } + } diff --git a/src/test/java/uk/gov/hmcts/reform/lrdapi/service/impl/CourtVenueServiceImplTest.java b/src/test/java/uk/gov/hmcts/reform/lrdapi/service/impl/CourtVenueServiceImplTest.java index 859ec3ebf..b9f34a7db 100644 --- a/src/test/java/uk/gov/hmcts/reform/lrdapi/service/impl/CourtVenueServiceImplTest.java +++ b/src/test/java/uk/gov/hmcts/reform/lrdapi/service/impl/CourtVenueServiceImplTest.java @@ -79,6 +79,7 @@ void testRetrieveCourtVenuesByServiceCode() { .mrdVenueId("765") .serviceUrl("https://serviceurl.com") .factUrl("https://facturl.com") + .serviceCode("ABC1") .build(); List courtVenues = Collections.singletonList(courtVenue); @@ -526,6 +527,7 @@ private List prepareCourtVenue() { .mrdVenueId("765") .serviceUrl("https://serviceurl.com") .factUrl("https://facturl.com") + .serviceCode("AAA2") .build()); return courtVenues; @@ -559,6 +561,7 @@ private List prepareMultiCourtVenueResponse() { .mrdVenueId("765") .serviceUrl("https://serviceurl.com") .factUrl("https://facturl.com") + .serviceCode("AAA3") .build()); return courtVenues; From c84503b90e361a313f001fd85035c92234cb767a Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 16 Feb 2026 11:03:39 +0000 Subject: [PATCH 03/10] DTSRD-4052 . Adding extra column to court venue table --- .../reform/lrdapi/RetrieveCourtVenueDetailsIntegrationTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenueDetailsIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenueDetailsIntegrationTest.java index 76b47e18d..2d9ae8475 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenueDetailsIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenueDetailsIntegrationTest.java @@ -523,7 +523,7 @@ void retrieveCourtVenues_WithEpimmsId_ShouldReturnServiceCodeInResponse() throws @ParameterizedTest @CsvSource({ - "123456789,AAA2", + "123456789,AAA6", "123461,AAA2", "123462,AAA3" }) From e48047b1f774f72fad632fe2b1b9f6abc63be197 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 16 Feb 2026 11:24:57 +0000 Subject: [PATCH 04/10] DTSRD-4052 . Adding extra column to court venue table --- ...urtVenuesByServiceCodeIntegrationTest.java | 49 +------------------ 1 file changed, 2 insertions(+), 47 deletions(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java index f1666fe4b..72567a319 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java @@ -128,6 +128,7 @@ private List buildCourtVenueResponses() { .isHearingLocation("N") .locationType("NBC") .isTemporaryLocation("N") + .serviceCode("AAA6") .build(); LrdCourtVenueResponse response2 = LrdCourtVenueResponse.builder() @@ -149,6 +150,7 @@ private List buildCourtVenueResponses() { .isHearingLocation("N") .locationType("NBC") .isTemporaryLocation("N") + .serviceCode("ABA4") .build(); expectedCourtVenueResponses.add(response1); @@ -157,53 +159,6 @@ private List buildCourtVenueResponses() { return expectedCourtVenueResponses; } - @ParameterizedTest - @ValueSource(strings = {"AAA2", "AAA3", "AAA6", "ABA4"}) - void verifyCourtVenuesContainServiceCode_ForServiceCode(String serviceCode) - throws JsonProcessingException { - - final var response = (LrdCourtVenuesByServiceCodeResponse) - lrdApiClient.findCourtVenuesByServiceCode(serviceCode, LrdCourtVenuesByServiceCodeResponse.class); - - assertNotNull(response); - assertNotNull(response.getCourtVenues()); - response.getCourtVenues().forEach(venue -> assertNotNull(venue.getServiceCode())); - } - - @Test - void verifyAllCourtVenuesInServiceCodeResponse_HaveMatchingServiceCode() - throws JsonProcessingException { - - final var response = (LrdCourtVenuesByServiceCodeResponse) - lrdApiClient.findCourtVenuesByServiceCode("AAA3", LrdCourtVenuesByServiceCodeResponse.class); - - assertNotNull(response); - String expectedServiceCode = response.getServiceCode(); - assertNotNull(response.getCourtVenues()); - - response.getCourtVenues().stream() - .filter(venue -> venue.getServiceCode() != null) - .forEach(venue -> assertEquals(expectedServiceCode, venue.getServiceCode(), - "Service code in venue response should match the requested service code")); - } - - @Test - void verifyCourtVenueResponse_ServiceCodeField_NotNull() - throws JsonProcessingException { - - final var response = (LrdCourtVenuesByServiceCodeResponse) - lrdApiClient.findCourtVenuesByServiceCode("AAA2", LrdCourtVenuesByServiceCodeResponse.class); - - assertNotNull(response); - assertNotNull(response.getCourtVenues()); - assertThat(response.getCourtVenues()).isNotEmpty(); - - response.getCourtVenues().forEach(venue -> { - assertNotNull(venue.getServiceCode(), "Service code should not be null"); - assertThat(venue.getServiceCode()).isNotEmpty(); - }); - } - } From d62ed52913c15c568edc66627d4b550ba9562a11 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 16 Feb 2026 11:25:51 +0000 Subject: [PATCH 05/10] DTSRD-4052 . Adding extra column to court venue table --- .../RetrieveCourtVenuesByServiceCodeIntegrationTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java index 72567a319..e77d1010b 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java @@ -128,7 +128,6 @@ private List buildCourtVenueResponses() { .isHearingLocation("N") .locationType("NBC") .isTemporaryLocation("N") - .serviceCode("AAA6") .build(); LrdCourtVenueResponse response2 = LrdCourtVenueResponse.builder() @@ -150,7 +149,6 @@ private List buildCourtVenueResponses() { .isHearingLocation("N") .locationType("NBC") .isTemporaryLocation("N") - .serviceCode("ABA4") .build(); expectedCourtVenueResponses.add(response1); @@ -160,5 +158,3 @@ private List buildCourtVenueResponses() { } } - - From 8aa63c55a1c0c0af35b25b79d25494b11ad663e2 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 16 Feb 2026 12:21:26 +0000 Subject: [PATCH 06/10] DTSRD-4052 . Adding extra column to court venue table --- ...rtVenuesBySearchStringIntegrationTest.java | 37 ------------------- ...V1_33__update_court_venue_service_code.sql | 23 ++++++------ 2 files changed, 12 insertions(+), 48 deletions(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesBySearchStringIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesBySearchStringIntegrationTest.java index 81c59d014..2bd13024a 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesBySearchStringIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesBySearchStringIntegrationTest.java @@ -287,41 +287,4 @@ void errorResponseVerification(Map errorResponseMap, String expe expectedErrorDescription)); } - @Test - @SuppressWarnings("unchecked") - void shouldRetrieveCourtVenues_For_SearchString_WithServiceCodeInResponse_WithStatusCode_200() - throws JsonProcessingException { - final var response = (LrdCourtVenueResponse[]) - lrdApiClient.findCourtVenuesBySearchString( - "?search-string=Abe", - LrdCourtVenueResponse[].class, - path - ); - - assertThat(response).isNotEmpty(); - for (LrdCourtVenueResponse venue : response) { - assertNotNull(venue.getServiceCode(), "Service code should not be null in search response"); - assertThat(venue.getServiceCode()).isNotEmpty(); - } - } - - @Test - @SuppressWarnings("unchecked") - void shouldRetrieveCourtVenues_For_SearchString_AllHaveValidServiceCode() - throws JsonProcessingException { - final var response = (LrdCourtVenueResponse[]) - lrdApiClient.findCourtVenuesBySearchString( - "?search-string=Sto", - LrdCourtVenueResponse[].class, - path - ); - - assertThat(response).isNotEmpty(); - assertTrue(Arrays.stream(response) - .allMatch(venue -> venue.getServiceCode() != null && !venue.getServiceCode().isEmpty()), - "All venues should have a non-empty service code"); - } - } - - diff --git a/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql b/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql index c7a6fefda..bd20cd98b 100644 --- a/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql +++ b/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql @@ -1,19 +1,20 @@ -- Update court venue test data with service_code values -UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 1; -UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 2; UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 3; +UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 13; +UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 14; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 1; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 2; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 3; UPDATE court_venue SET service_code = 'ABA4' WHERE court_venue_id = 4; -UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 5; -UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 6; -UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 7; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 5; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 6; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 7; UPDATE court_venue SET service_code = 'ABA4' WHERE court_venue_id = 8; -UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 9; -UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 10; -UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 11; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 9; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 10; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 11; UPDATE court_venue SET service_code = 'ABA4' WHERE court_venue_id = 12; -UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 13; -UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 14; -UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 15; +UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 15; COMMIT; From 07f627d779532113bc0e968615a0a28e0e5acb42 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Mon, 16 Feb 2026 13:44:38 +0000 Subject: [PATCH 07/10] DTSRD-4052 . Adding extra column to court venue table --- ...trieveBuildingLocationIntegrationTest.java | 5 ++++ ...urtVenuesByServiceCodeIntegrationTest.java | 2 ++ ...V1_33__update_court_venue_service_code.sql | 26 ++++++++----------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveBuildingLocationIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveBuildingLocationIntegrationTest.java index be1c9f17a..0b3949a26 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveBuildingLocationIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveBuildingLocationIntegrationTest.java @@ -523,6 +523,7 @@ private static LrdBuildingLocationResponse buildingLocation1() { .postcode("AB11 7KT") .courtAddress("AB2, 49 HUNTLY STREET, ABERDEEN") .courtVenueId("2") + .serviceCode("AAA3") .build(); courtVenueResponses.add(response3); @@ -581,6 +582,7 @@ private static LrdBuildingLocationResponse buildingLocation2() { .locationType("Court") .parentLocation("366559") .welshVenueName("testVenue") + .serviceCode("AAA2") .build(); courtVenueResponses.add(response3); @@ -610,6 +612,7 @@ private static LrdBuildingLocationResponse buildingLocation3() { .postcode("AB11 4RT") .courtAddress("AB4, 51 HUNTLY STREET, ABERDEEN") .courtVenueId("4") + .serviceCode("ABA4") .build(); courtVenueResponses.add(response3); @@ -647,6 +650,7 @@ private static LrdBuildingLocationResponse buildingLocation4() { .postcode("AB11 3RP") .courtAddress("AB9, 56 HUNTLY STREET, ABERDEEN") .courtVenueId("9") + .serviceCode("AAA2") .build(); courtVenueResponses.add(response3); @@ -686,6 +690,7 @@ private LrdBuildingLocationResponse getBuildingLocationSampleResponse() { .postcode("AB11 8IP") .courtAddress("AB3, 50 HUNTLY STREET, ABERDEEN") .courtVenueId("3") + .serviceCode("AAA6") .build(); courtVenueResponses.add(response3); diff --git a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java index e77d1010b..7a141a5a3 100644 --- a/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java +++ b/src/integrationTest/java/uk/gov/hmcts/reform/lrdapi/RetrieveCourtVenuesByServiceCodeIntegrationTest.java @@ -128,6 +128,7 @@ private List buildCourtVenueResponses() { .isHearingLocation("N") .locationType("NBC") .isTemporaryLocation("N") + .serviceCode("AAA6") .build(); LrdCourtVenueResponse response2 = LrdCourtVenueResponse.builder() @@ -149,6 +150,7 @@ private List buildCourtVenueResponses() { .isHearingLocation("N") .locationType("NBC") .isTemporaryLocation("N") + .serviceCode("ABA4") .build(); expectedCourtVenueResponses.add(response1); diff --git a/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql b/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql index bd20cd98b..643e8cad9 100644 --- a/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql +++ b/src/integrationTest/resources/db/testmigration/V1_33__update_court_venue_service_code.sql @@ -1,20 +1,16 @@ --- Update court venue test data with service_code values +UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 1; +UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 2; UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 3; -UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 13; -UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 14; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 1; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 2; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 3; UPDATE court_venue SET service_code = 'ABA4' WHERE court_venue_id = 4; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 5; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 6; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 7; +UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 5; +UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 6; +UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 7; UPDATE court_venue SET service_code = 'ABA4' WHERE court_venue_id = 8; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 9; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 10; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 11; +UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 9; +UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 10; +UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 11; UPDATE court_venue SET service_code = 'ABA4' WHERE court_venue_id = 12; -UPDATE court_venue SET service_code = 'AAA4' WHERE court_venue_id = 15; - +UPDATE court_venue SET service_code = 'AAA2' WHERE court_venue_id = 13; +UPDATE court_venue SET service_code = 'AAA3' WHERE court_venue_id = 14; +UPDATE court_venue SET service_code = 'AAA6' WHERE court_venue_id = 15; COMMIT; - From 387f8f360a8f71c2df7e857bb8811c37f743fbf9 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Thu, 5 Mar 2026 13:21:38 +0000 Subject: [PATCH 08/10] DTSRD-5695-FeatureBranch - Code will be merged after each completed review --- .../gov/hmcts/reform/lrdapi/controllers/LrdApiController.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/uk/gov/hmcts/reform/lrdapi/controllers/LrdApiController.java b/src/main/java/uk/gov/hmcts/reform/lrdapi/controllers/LrdApiController.java index c85eedf36..6668eb8b5 100644 --- a/src/main/java/uk/gov/hmcts/reform/lrdapi/controllers/LrdApiController.java +++ b/src/main/java/uk/gov/hmcts/reform/lrdapi/controllers/LrdApiController.java @@ -284,6 +284,4 @@ public ResponseEntity retrieveBuildingLocationDetailsBySearchString( Object responseEntity = buildingLocationService.searchBuildingLocationsBySearchString(trimmedSearchString); return ResponseEntity.status(HttpStatus.OK).body(responseEntity); } - - } From 22348ff1367e68f9b37271af2275fa9eebe11b44 Mon Sep 17 00:00:00 2001 From: SabinaHMCTS Date: Wed, 13 May 2026 13:55:15 +0100 Subject: [PATCH 09/10] DTSRD-5960-GrantAccessToBackupTable --- infrastructure/main.tf | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/infrastructure/main.tf b/infrastructure/main.tf index b580d83a7..2b3a1eaa6 100644 --- a/infrastructure/main.tf +++ b/infrastructure/main.tf @@ -49,13 +49,14 @@ module "db-rd-location-ref-api-v16" { { name = "dbrdlocationref" report_privilege_schema : "locrefdata" - report_privilege_tables : ["SERVICE_TO_CCD_CASE_TYPE_ASSOC", "building_location", "court_venue", "region", "cluster", "court_type", "court_type_service_assoc", "dataload_schedular_audit", "dataload_exception_records"] + report_privilege_tables : ["SERVICE_TO_CCD_CASE_TYPE_ASSOC", "building_location", "court_venue", "backup_court_venue","region", "cluster", "court_type", "court_type_service_assoc", "dataload_schedular_audit", "dataload_exception_records"] } ] - # Setup Access Reader db user + # Trigger to the force user permission script to rerun force_user_permissions_trigger = "3" - force_db_report_privileges_trigger = "1" + # Trigger to rerun and grant Access Reader role to the specified tables in the list report_privilege_tables + force_db_report_privileges_trigger = "2" # Sets correct DB owner after migration to fix permissions enable_schema_ownership = var.enable_schema_ownership From 2b2b5b5cd5ba240c3ac36d24270e6da8d55b42a8 Mon Sep 17 00:00:00 2001 From: 54687 <61242337+hmcts-jenkins-j-to-z[bot]@users.noreply.github.com> Date: Wed, 13 May 2026 13:01:54 +0000 Subject: [PATCH 10/10] Updating Terraform Formatting --- infrastructure/main.tf | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/infrastructure/main.tf b/infrastructure/main.tf index 2b3a1eaa6..f87276f34 100644 --- a/infrastructure/main.tf +++ b/infrastructure/main.tf @@ -39,17 +39,17 @@ module "db-rd-location-ref-api-v16" { azurerm.postgres_network = azurerm.postgres_network } - admin_user_object_id = var.jenkins_AAD_objectId - business_area = "cft" - common_tags = var.common_tags - component = var.component-v16 - env = var.env + admin_user_object_id = var.jenkins_AAD_objectId + business_area = "cft" + common_tags = var.common_tags + component = var.component-v16 + env = var.env enable_db_report_privileges = true pgsql_databases = [ { name = "dbrdlocationref" report_privilege_schema : "locrefdata" - report_privilege_tables : ["SERVICE_TO_CCD_CASE_TYPE_ASSOC", "building_location", "court_venue", "backup_court_venue","region", "cluster", "court_type", "court_type_service_assoc", "dataload_schedular_audit", "dataload_exception_records"] + report_privilege_tables : ["SERVICE_TO_CCD_CASE_TYPE_ASSOC", "building_location", "court_venue", "backup_court_venue", "region", "cluster", "court_type", "court_type_service_assoc", "dataload_schedular_audit", "dataload_exception_records"] } ] @@ -72,10 +72,10 @@ module "db-rd-location-ref-api-v16" { product = "rd" name = local.db_name - pgsql_server_configuration = var.pgsql_server_configuration - action_group_name = join("-", [var.action_group_name, local.db_name, "replica", var.env]) - email_address_key = var.email_address_key - email_address_key_vault_id = data.azurerm_key_vault.rd_key_vault.id + pgsql_server_configuration = var.pgsql_server_configuration + action_group_name = join("-", [var.action_group_name, local.db_name, "replica", var.env]) + email_address_key = var.email_address_key + email_address_key_vault_id = data.azurerm_key_vault.rd_key_vault.id } resource "azurerm_key_vault_secret" "POSTGRES-HOST" {