From fdc3534afc81981ae650b12e92721f98359511d1 Mon Sep 17 00:00:00 2001 From: jourdiw Date: Mon, 18 Mar 2024 09:39:27 +0100 Subject: [PATCH] feat(service): only create org license if license non-null --- .../domain_service/LicenseDomainService.java | 13 ++++++++++++- .../domain_service/LicenseDomainServiceTest.java | 10 ++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/main/java/io/gravitee/apim/core/license/domain_service/LicenseDomainService.java b/gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/main/java/io/gravitee/apim/core/license/domain_service/LicenseDomainService.java index 95ddb39c579..b0ff921d167 100644 --- a/gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/main/java/io/gravitee/apim/core/license/domain_service/LicenseDomainService.java +++ b/gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/main/java/io/gravitee/apim/core/license/domain_service/LicenseDomainService.java @@ -32,6 +32,13 @@ public Optional getLicenseByOrganizationId(String organizationId) { return this.licenseCrudService.getOrganizationLicense(organizationId); } + /** + * Create or update license by organization ID. + * If on create and license is null, no license is saved in the database. + * If on update and license is the same, no license is updated. + * @param organizationId -- organization identifier + * @param license -- license content to be saved + */ public void createOrUpdateOrganizationLicense(String organizationId, String license) { this.licenseCrudService.getOrganizationLicense(organizationId) .ifPresentOrElse( @@ -40,7 +47,11 @@ public void createOrUpdateOrganizationLicense(String organizationId, String lice this.licenseCrudService.updateOrganizationLicense(organizationId, license); } }, - () -> this.licenseCrudService.createOrganizationLicense(organizationId, license) + () -> { + if (Objects.nonNull(license)) { + this.licenseCrudService.createOrganizationLicense(organizationId, license); + } + } ); } } diff --git a/gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/test/java/io/gravitee/apim/core/license/domain_service/LicenseDomainServiceTest.java b/gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/test/java/io/gravitee/apim/core/license/domain_service/LicenseDomainServiceTest.java index ddd0eb6e7b2..122185c10b5 100644 --- a/gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/test/java/io/gravitee/apim/core/license/domain_service/LicenseDomainServiceTest.java +++ b/gravitee-apim-rest-api/gravitee-apim-rest-api-service/src/test/java/io/gravitee/apim/core/license/domain_service/LicenseDomainServiceTest.java @@ -53,6 +53,16 @@ void should_create_organization_license() { assertThat(result.get().getLicense()).isEqualTo("newLicense"); } + @Test + void should_not_create_organization_license_if_null_license() { + assertThat(service.getLicenseByOrganizationId("new")).isEmpty(); + + service.createOrUpdateOrganizationLicense("new", null); + + var result = service.getLicenseByOrganizationId("new"); + assertThat(result).isEmpty(); + } + @Test void should_update_organization_license() { givenOrganizationLicense("org-to-update", "initialLicense");