Skip to content

Commit 4b3218c

Browse files
fix: use a domain model from use case to service
1 parent 17bccee commit 4b3218c

File tree

39 files changed

+753
-570
lines changed

39 files changed

+753
-570
lines changed

.aiignore

Lines changed: 0 additions & 9 deletions
This file was deleted.

.junie/guidelines.md

Lines changed: 0 additions & 38 deletions
This file was deleted.

gravitee-apim-rest-api/gravitee-apim-rest-api-automation/gravitee-apim-rest-api-automation-rest/src/test/java/io/gravitee/apim/rest/api/automation/spring/ResourceContextConfiguration.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
import io.gravitee.apim.core.application.domain_service.ValidateApplicationCRDDomainService;
6969
import io.gravitee.apim.core.application.domain_service.ValidateApplicationSettingsDomainService;
7070
import io.gravitee.apim.core.application.use_case.ImportApplicationCRDUseCase;
71+
import io.gravitee.apim.core.application_certificate.domain_service.ApplicationCertificatesUpdateDomainService;
7172
import io.gravitee.apim.core.audit.domain_service.AuditDomainService;
7273
import io.gravitee.apim.core.audit.domain_service.SearchAuditDomainService;
7374
import io.gravitee.apim.core.audit.query_service.AuditMetadataQueryService;
@@ -990,4 +991,9 @@ public BucketNamesPostProcessor namesPostprocessor() {
990991
public UserContextLoader userContextLoader() {
991992
return mock(UserContextLoader.class);
992993
}
994+
995+
@Bean
996+
public ApplicationCertificatesUpdateDomainService applicationCertificatesUpdateDomainService() {
997+
return mock(ApplicationCertificatesUpdateDomainService.class);
998+
}
993999
}

gravitee-apim-rest-api/gravitee-apim-rest-api-management-v2/gravitee-apim-rest-api-management-v2-rest/src/test/java/io/gravitee/rest/api/management/v2/rest/spring/ResourceContextConfiguration.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
import io.gravitee.apim.core.application.domain_service.ValidateApplicationCRDDomainService;
7676
import io.gravitee.apim.core.application.domain_service.ValidateApplicationSettingsDomainService;
7777
import io.gravitee.apim.core.application.use_case.ValidateApplicationCRDUseCase;
78+
import io.gravitee.apim.core.application_certificate.domain_service.ApplicationCertificatesUpdateDomainService;
7879
import io.gravitee.apim.core.audit.domain_service.SearchAuditDomainService;
7980
import io.gravitee.apim.core.audit.query_service.AuditMetadataQueryService;
8081
import io.gravitee.apim.core.audit.query_service.AuditQueryService;
@@ -1077,4 +1078,9 @@ public DeletePortalNavigationItemUseCase deletePortalNavigationItemUseCase() {
10771078
public UserContextLoader userContextLoader() {
10781079
return mock(UserContextLoader.class);
10791080
}
1081+
1082+
@Bean
1083+
ApplicationCertificatesUpdateDomainService applicationCertificatesUpdateDomainService() {
1084+
return mock(ApplicationCertificatesUpdateDomainService.class);
1085+
}
10801086
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright © 2015 The Gravitee team (http://gravitee.io)
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package io.gravitee.rest.api.management.rest.mapper;
17+
18+
import io.gravitee.apim.core.application_certificate.model.ClientCertificate;
19+
import io.gravitee.apim.core.application_certificate.model.ClientCertificateStatus;
20+
import io.gravitee.common.data.domain.Page;
21+
import io.gravitee.rest.api.model.clientcertificate.CreateClientCertificate;
22+
import io.gravitee.rest.api.model.clientcertificate.UpdateClientCertificate;
23+
import org.mapstruct.Mapper;
24+
import org.mapstruct.factory.Mappers;
25+
26+
/**
27+
* Mapper for converting between domain model and DTOs for client certificates.
28+
*
29+
* @author GraviteeSource Team
30+
*/
31+
@Mapper
32+
public interface ClientCertificateMapper {
33+
ClientCertificateMapper INSTANCE = Mappers.getMapper(ClientCertificateMapper.class);
34+
35+
io.gravitee.rest.api.model.clientcertificate.ClientCertificate toDto(ClientCertificate domain);
36+
37+
ClientCertificate toDomain(CreateClientCertificate dto);
38+
39+
ClientCertificate toDomain(UpdateClientCertificate dto);
40+
41+
Page<io.gravitee.rest.api.model.clientcertificate.ClientCertificate> map(Page<ClientCertificate> clientCertificatePage);
42+
}

gravitee-apim-rest-api/gravitee-apim-rest-api-management/gravitee-apim-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/ApplicationClientCertificateResource.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import io.gravitee.apim.core.application_certificate.use_case.GetClientCertificateUseCase;
2020
import io.gravitee.apim.core.application_certificate.use_case.UpdateClientCertificateUseCase;
2121
import io.gravitee.common.http.MediaType;
22+
import io.gravitee.rest.api.management.rest.mapper.ClientCertificateMapper;
2223
import io.gravitee.rest.api.model.clientcertificate.ClientCertificate;
2324
import io.gravitee.rest.api.model.clientcertificate.UpdateClientCertificate;
2425
import io.gravitee.rest.api.model.permissions.RolePermission;
@@ -81,7 +82,8 @@ public class ApplicationClientCertificateResource extends AbstractResource {
8182
@ApiResponse(responseCode = "500", description = "Internal server error")
8283
@Permissions({ @Permission(value = RolePermission.APPLICATION_DEFINITION, acls = RolePermissionAction.READ) })
8384
public ClientCertificate getApplicationClientCertificate() {
84-
return getClientCertificateUseCase.execute(new GetClientCertificateUseCase.Input(certId)).clientCertificate();
85+
var clientCertificate = getClientCertificateUseCase.execute(new GetClientCertificateUseCase.Input(certId)).clientCertificate();
86+
return ClientCertificateMapper.INSTANCE.toDto(clientCertificate);
8587
}
8688

8789
@PUT
@@ -100,10 +102,10 @@ public ClientCertificate getApplicationClientCertificate() {
100102
@ApiResponse(responseCode = "500", description = "Internal server error")
101103
@Permissions({ @Permission(value = RolePermission.APPLICATION_DEFINITION, acls = RolePermissionAction.UPDATE) })
102104
public Response updateApplicationClientCertificate(@Valid @NotNull final UpdateClientCertificate updateClientCertificate) {
103-
ClientCertificate updated = updateClientCertificateUseCase
104-
.execute(new UpdateClientCertificateUseCase.Input(certId, updateClientCertificate))
105+
var updated = updateClientCertificateUseCase
106+
.execute(new UpdateClientCertificateUseCase.Input(certId, ClientCertificateMapper.INSTANCE.toDomain(updateClientCertificate)))
105107
.clientCertificate();
106-
return Response.ok(updated).build();
108+
return Response.ok(ClientCertificateMapper.INSTANCE.toDto(updated)).build();
107109
}
108110

109111
@DELETE

gravitee-apim-rest-api/gravitee-apim-rest-api-management/gravitee-apim-rest-api-management-rest/src/main/java/io/gravitee/rest/api/management/rest/resource/ApplicationClientCertificatesResource.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import io.gravitee.apim.core.application_certificate.use_case.GetClientCertificatesUseCase;
2020
import io.gravitee.common.data.domain.Page;
2121
import io.gravitee.common.http.MediaType;
22+
import io.gravitee.rest.api.management.rest.mapper.ClientCertificateMapper;
2223
import io.gravitee.rest.api.management.rest.model.Pageable;
2324
import io.gravitee.rest.api.management.rest.model.PagedResult;
2425
import io.gravitee.rest.api.model.clientcertificate.ClientCertificate;
@@ -81,9 +82,11 @@ public class ApplicationClientCertificatesResource extends AbstractResource {
8182
@ApiResponse(responseCode = "500", description = "Internal server error")
8283
@Permissions({ @Permission(value = RolePermission.APPLICATION_DEFINITION, acls = RolePermissionAction.READ) })
8384
public PagedResult<ClientCertificate> getApplicationClientCertificates(@Valid @BeanParam Pageable pageable) {
84-
Page<ClientCertificate> page = getClientCertificatesUseCase
85-
.execute(new GetClientCertificatesUseCase.Input(application, pageable.toPageable()))
86-
.clientCertificates();
85+
Page<ClientCertificate> page = ClientCertificateMapper.INSTANCE.map(
86+
getClientCertificatesUseCase
87+
.execute(new GetClientCertificatesUseCase.Input(application, pageable.toPageable()))
88+
.clientCertificates()
89+
);
8790
return new PagedResult<>(page, pageable.getSize());
8891
}
8992

@@ -102,10 +105,12 @@ public PagedResult<ClientCertificate> getApplicationClientCertificates(@Valid @B
102105
@ApiResponse(responseCode = "500", description = "Internal server error")
103106
@Permissions({ @Permission(value = RolePermission.APPLICATION_DEFINITION, acls = RolePermissionAction.CREATE) })
104107
public Response createApplicationClientCertificate(@Valid @NotNull final CreateClientCertificate createClientCertificate) {
105-
ClientCertificate created = createClientCertificateUseCase
106-
.execute(new CreateClientCertificateUseCase.Input(application, createClientCertificate))
108+
var created = createClientCertificateUseCase
109+
.execute(
110+
new CreateClientCertificateUseCase.Input(application, ClientCertificateMapper.INSTANCE.toDomain(createClientCertificate))
111+
)
107112
.clientCertificate();
108-
return Response.created(this.getLocationHeader(created.id())).entity(created).build();
113+
return Response.created(this.getLocationHeader(created.getId())).entity(ClientCertificateMapper.INSTANCE.toDto(created)).build();
109114
}
110115

111116
@Path("{certId}")

gravitee-apim-rest-api/gravitee-apim-rest-api-management/gravitee-apim-rest-api-management-rest/src/test/java/io/gravitee/rest/api/management/rest/resource/ApplicationClientCertificateResourceTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@
2323
import static org.mockito.Mockito.verify;
2424
import static org.mockito.Mockito.when;
2525

26+
import io.gravitee.apim.core.application_certificate.model.ClientCertificate;
2627
import io.gravitee.apim.core.application_certificate.use_case.DeleteClientCertificateUseCase;
2728
import io.gravitee.apim.core.application_certificate.use_case.GetClientCertificateUseCase;
2829
import io.gravitee.apim.core.application_certificate.use_case.UpdateClientCertificateUseCase;
2930
import io.gravitee.common.http.HttpStatusCode;
30-
import io.gravitee.rest.api.model.clientcertificate.ClientCertificate;
3131
import io.gravitee.rest.api.model.clientcertificate.UpdateClientCertificate;
3232
import io.gravitee.rest.api.service.exceptions.ClientCertificateNotFoundException;
3333
import jakarta.ws.rs.client.Entity;
@@ -56,7 +56,7 @@ public void setUp() throws Exception {
5656

5757
@Test
5858
public void should_get_client_certificate() {
59-
ClientCertificate certificate = createClientCertificate(CERT_ID, "My Certificate");
59+
var certificate = createClientCertificate(CERT_ID, "My Certificate");
6060

6161
when(getClientCertificateUseCase.execute(any(GetClientCertificateUseCase.Input.class))).thenReturn(
6262
new GetClientCertificateUseCase.Output(certificate)
@@ -66,7 +66,7 @@ public void should_get_client_certificate() {
6666

6767
SoftAssertions.assertSoftly(soft -> {
6868
soft.assertThat(response.getStatus()).isEqualTo(HttpStatusCode.OK_200);
69-
ClientCertificate result = response.readEntity(ClientCertificate.class);
69+
var result = response.readEntity(io.gravitee.rest.api.model.clientcertificate.ClientCertificate.class);
7070
soft.assertThat(result.id()).isEqualTo(CERT_ID);
7171
soft.assertThat(result.name()).isEqualTo("My Certificate");
7272
});
@@ -102,7 +102,7 @@ public void should_update_client_certificate() {
102102

103103
SoftAssertions.assertSoftly(soft -> {
104104
soft.assertThat(response.getStatus()).isEqualTo(HttpStatusCode.OK_200);
105-
ClientCertificate result = response.readEntity(ClientCertificate.class);
105+
var result = response.readEntity(io.gravitee.rest.api.model.clientcertificate.ClientCertificate.class);
106106
soft.assertThat(result.name()).isEqualTo("Updated Certificate Name");
107107
});
108108
verify(updateClientCertificateUseCase).execute(any(UpdateClientCertificateUseCase.Input.class));

gravitee-apim-rest-api/gravitee-apim-rest-api-management/gravitee-apim-rest-api-management-rest/src/test/java/io/gravitee/rest/api/management/rest/resource/ApplicationClientCertificatesResourceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@
2020
import static org.mockito.Mockito.verify;
2121
import static org.mockito.Mockito.when;
2222

23+
import io.gravitee.apim.core.application_certificate.model.ClientCertificate;
2324
import io.gravitee.apim.core.application_certificate.use_case.CreateClientCertificateUseCase;
2425
import io.gravitee.apim.core.application_certificate.use_case.GetClientCertificatesUseCase;
2526
import io.gravitee.common.data.domain.Page;
2627
import io.gravitee.common.http.HttpStatusCode;
27-
import io.gravitee.rest.api.model.clientcertificate.ClientCertificate;
2828
import io.gravitee.rest.api.model.clientcertificate.CreateClientCertificate;
2929
import jakarta.ws.rs.client.Entity;
3030
import jakarta.ws.rs.core.Response;

gravitee-apim-rest-api/gravitee-apim-rest-api-portal/gravitee-apim-rest-api-portal-rest/src/test/java/io/gravitee/rest/api/portal/rest/spring/ResourceContextConfiguration.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
import io.gravitee.apim.core.api.use_case.RollbackApiUseCase;
5757
import io.gravitee.apim.core.apim.service_provider.ApimProductInfo;
5858
import io.gravitee.apim.core.application.domain_service.ValidateApplicationSettingsDomainService;
59+
import io.gravitee.apim.core.application_certificate.domain_service.ApplicationCertificatesUpdateDomainService;
5960
import io.gravitee.apim.core.audit.domain_service.SearchAuditDomainService;
6061
import io.gravitee.apim.core.audit.query_service.AuditMetadataQueryService;
6162
import io.gravitee.apim.core.audit.query_service.AuditQueryService;
@@ -1086,4 +1087,9 @@ public BucketNamesPostProcessor namesPostprocessor() {
10861087
public UserContextLoader userContextLoader() {
10871088
return mock(UserContextLoader.class);
10881089
}
1090+
1091+
@Bean
1092+
ApplicationCertificatesUpdateDomainService applicationCertificatesUpdateDomainService() {
1093+
return mock(ApplicationCertificatesUpdateDomainService.class);
1094+
}
10891095
}

0 commit comments

Comments
 (0)