diff --git a/scripts/native/file/rec-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner b/scripts/native/file/rec-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner index a49393a..8df5198 100644 Binary files a/scripts/native/file/rec-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner and b/scripts/native/file/rec-legal-customer-product-directory-1.0-native-quarkus-jdk17-runner differ diff --git a/src/main/java/com/banesco/module/account/domain/model/Account.java b/src/main/java/com/banesco/module/account/domain/model/Account.java index dc57579..0df1dc6 100644 --- a/src/main/java/com/banesco/module/account/domain/model/Account.java +++ b/src/main/java/com/banesco/module/account/domain/model/Account.java @@ -1,7 +1,9 @@ package com.banesco.module.account.domain.model; +import com.fasterxml.jackson.annotation.JsonInclude; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.*; +import org.eclipse.microprofile.openapi.annotations.media.Schema; import java.util.List; @@ -11,12 +13,20 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @RegisterForReflection +@JsonInclude(JsonInclude.Include.NON_NULL) public class Account { + @Schema(description = "Estado de la cuenta") private AccountStatus accountStatus; + @Schema(description = "Lista de datos de identificación de la cuenta") private List accountIdentification; + @Schema(description = "Tipo de cuenta") private String accountType; + @Schema(description = "Información de los tipos de balances de la cuenta") private List accountBalance; + @Schema(description = "Información de la moneda de la cuenta") private List accountCurrency; + @Schema(description = "Información complementaria de la cuenta") private List accountInvolvement; + @Schema(description = "Información relacional de la cuenta con otras o consigo misma") private List accountRelationship; } \ No newline at end of file diff --git a/src/main/java/com/banesco/module/legal_customer_product_directory/application/service/LegalCustomerProductDirectoryService.java b/src/main/java/com/banesco/module/legal_customer_product_directory/application/service/LegalCustomerProductDirectoryService.java index 595e7d4..426ad52 100644 --- a/src/main/java/com/banesco/module/legal_customer_product_directory/application/service/LegalCustomerProductDirectoryService.java +++ b/src/main/java/com/banesco/module/legal_customer_product_directory/application/service/LegalCustomerProductDirectoryService.java @@ -14,13 +14,13 @@ import com.banesco.module.party.domain.model.Party; import com.banesco.module.party.domain.model.PartyIdentification; import com.banesco.module.party.domain.model.PartyIdentificationType; import com.banesco.module.party.domain.model.PartyType; -import com.banesco.module.servicing_issue.domain.model.ServicingIssue; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import lombok.extern.slf4j.Slf4j; import java.math.BigDecimal; import java.util.List; +import java.util.Map; import java.util.Objects; @Slf4j @@ -77,7 +77,7 @@ public class LegalCustomerProductDirectoryService implements LegalCustomerProduc return businessUseCase.execute( true, request.getCustomerIbsNumber(), - request.toBusinessRequest(), + Map.of(), request.toBusinessHeaders(), LegalCustomerProductDirectoryResponse.class ); @@ -92,12 +92,6 @@ public class LegalCustomerProductDirectoryService implements LegalCustomerProduc .accounts(List.of(getAccount())) .build() ) - .servicingIssue( - ServicingIssue.builder() - .procedureCode("") - .issueDescription("") - .build() - ) .build(), StatusResponse.builder() .statusCode("200") diff --git a/src/main/java/com/banesco/module/legal_customer_product_directory/domain/dto/response/LegalCustomerProductDirectoryResponse.java b/src/main/java/com/banesco/module/legal_customer_product_directory/domain/dto/response/LegalCustomerProductDirectoryResponse.java index 787ec25..00a7edf 100644 --- a/src/main/java/com/banesco/module/legal_customer_product_directory/domain/dto/response/LegalCustomerProductDirectoryResponse.java +++ b/src/main/java/com/banesco/module/legal_customer_product_directory/domain/dto/response/LegalCustomerProductDirectoryResponse.java @@ -1,9 +1,9 @@ package com.banesco.module.legal_customer_product_directory.domain.dto.response; import com.banesco.module.legal_customer_product_directory.domain.model.CustomerProductAndServiceDirectory; -import com.banesco.module.servicing_issue.domain.model.ServicingIssue; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.*; +import org.eclipse.microprofile.openapi.annotations.media.Schema; @Getter @ToString @@ -11,7 +11,8 @@ import lombok.*; @NoArgsConstructor @AllArgsConstructor @RegisterForReflection +@Schema(description = "Respuesta del directorio de cuentas de cliente legal") public class LegalCustomerProductDirectoryResponse { + @Schema(description = "Directorio de cuentas") private CustomerProductAndServiceDirectory customerProductAndServiceDirectory; - private ServicingIssue servicingIssue; } diff --git a/src/main/java/com/banesco/module/legal_customer_product_directory/domain/model/CustomerProductAndServiceDirectory.java b/src/main/java/com/banesco/module/legal_customer_product_directory/domain/model/CustomerProductAndServiceDirectory.java index 937446a..c066479 100644 --- a/src/main/java/com/banesco/module/legal_customer_product_directory/domain/model/CustomerProductAndServiceDirectory.java +++ b/src/main/java/com/banesco/module/legal_customer_product_directory/domain/model/CustomerProductAndServiceDirectory.java @@ -4,6 +4,7 @@ import com.banesco.module.account.domain.model.Account; import com.banesco.module.party.domain.model.Party; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.*; +import org.eclipse.microprofile.openapi.annotations.media.Schema; import java.util.List; @@ -13,7 +14,10 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @RegisterForReflection +@Schema(description = "Directorio de cuentas") public class CustomerProductAndServiceDirectory { + @Schema(description = "Información del cliente") private Party party; + @Schema(description = "Lista de cuentas") private List accounts; } diff --git a/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/resource/LegalCustomerProductDirectoryResource.java b/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/resource/LegalCustomerProductDirectoryResource.java index 9e0410d..261aecc 100644 --- a/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/resource/LegalCustomerProductDirectoryResource.java +++ b/src/main/java/com/banesco/module/legal_customer_product_directory/infrastructure/resource/LegalCustomerProductDirectoryResource.java @@ -3,8 +3,10 @@ package com.banesco.module.legal_customer_product_directory.infrastructure.resou import com.banesco.common.application.helper.ErrorResponseHelper; import com.banesco.common.domain.exception.BaseApiException; import com.banesco.common.domain.model.ApiResponse; +import com.banesco.common.domain.model.StatusResponse; import com.banesco.module.legal_customer_product_directory.application.usecase.LegalCustomerProductDirectoryUseCase; import com.banesco.module.legal_customer_product_directory.domain.dto.request.LegalCustomerProductDirectoryRequest; +import com.banesco.module.legal_customer_product_directory.domain.dto.response.LegalCustomerProductDirectoryResponse; import jakarta.inject.Inject; import jakarta.ws.rs.*; import jakarta.ws.rs.core.MediaType; @@ -14,6 +16,7 @@ import org.eclipse.microprofile.openapi.annotations.Operation; import org.eclipse.microprofile.openapi.annotations.media.Content; import org.eclipse.microprofile.openapi.annotations.media.ExampleObject; import org.eclipse.microprofile.openapi.annotations.media.Schema; +import org.eclipse.microprofile.openapi.annotations.media.SchemaProperty; import org.eclipse.microprofile.openapi.annotations.parameters.Parameter; import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; import org.eclipse.microprofile.openapi.annotations.responses.APIResponses; @@ -49,7 +52,19 @@ public class LegalCustomerProductDirectoryResource { description = "Operación exitosa", content = @Content( mediaType = MediaType.APPLICATION_JSON, - schema = @Schema(implementation = ApiResponse.class), + schema = @Schema( + implementation = ApiResponse.class, + properties = { + @SchemaProperty( + name = "data", + oneOf = {LegalCustomerProductDirectoryResponse.class} + ), + @SchemaProperty( + name = "statusResponse", + implementation = StatusResponse.class + ) + } + ), examples = @ExampleObject( name = "Ejemplo exitoso", value = """ @@ -70,7 +85,7 @@ public class LegalCustomerProductDirectoryResource { "identifierValue": "J000000001" } } - ], + ] }, "accounts": [ { @@ -141,13 +156,13 @@ public class LegalCustomerProductDirectoryResource { { "partyIdentificationType": "TELEPHONE_NUMBER", "partyIdentification": { - "identifierValue": "04122710660", + "identifierValue": "04122710660" } }, { "partyIdentificationType": "TELEPHONE_OPERATOR", "partyIdentification": { - "identifierValue": "0412", + "identifierValue": "0412" } } ] @@ -161,10 +176,6 @@ public class LegalCustomerProductDirectoryResource { ] } ] - }, - "servicingIssue": { - "procedureCode": "", - "issueDescription": "" } }, "statusResponse": { @@ -181,7 +192,19 @@ public class LegalCustomerProductDirectoryResource { description = "Error en formato o campo requerido", content = @Content( mediaType = MediaType.APPLICATION_JSON, - schema = @Schema(implementation = ApiResponse.class), + schema = @Schema( + implementation = ApiResponse.class, + properties = { + @SchemaProperty( + name = "data", + oneOf = {LegalCustomerProductDirectoryResponse.class} + ), + @SchemaProperty( + name = "statusResponse", + implementation = StatusResponse.class + ) + } + ), examples = { @ExampleObject( name = "Error VDE01 - Campo obligatorio", @@ -215,7 +238,19 @@ public class LegalCustomerProductDirectoryResource { description = "No autorizado", content = @Content( mediaType = MediaType.APPLICATION_JSON, - schema = @Schema(implementation = ApiResponse.class), + schema = @Schema( + implementation = ApiResponse.class, + properties = { + @SchemaProperty( + name = "data", + oneOf = {LegalCustomerProductDirectoryResponse.class} + ), + @SchemaProperty( + name = "statusResponse", + implementation = StatusResponse.class + ) + } + ), examples = { @ExampleObject( name = "Error VRN08 - Identificación del fintechId no coincide", @@ -237,7 +272,19 @@ public class LegalCustomerProductDirectoryResource { description = "Servicio no disponible", content = @Content( mediaType = MediaType.APPLICATION_JSON, - schema = @Schema(implementation = ApiResponse.class), + schema = @Schema( + implementation = ApiResponse.class, + properties = { + @SchemaProperty( + name = "data", + oneOf = {LegalCustomerProductDirectoryResponse.class} + ), + @SchemaProperty( + name = "statusResponse", + implementation = StatusResponse.class + ) + } + ), examples = { @ExampleObject( name = "Error VRN04 - Fuera de horario", diff --git a/src/main/java/com/banesco/module/party/domain/model/Party.java b/src/main/java/com/banesco/module/party/domain/model/Party.java index 7944652..a367cd3 100644 --- a/src/main/java/com/banesco/module/party/domain/model/Party.java +++ b/src/main/java/com/banesco/module/party/domain/model/Party.java @@ -1,6 +1,7 @@ package com.banesco.module.party.domain.model; import com.banesco.common.domain.model.Name; +import com.fasterxml.jackson.annotation.JsonInclude; import io.quarkus.runtime.annotations.RegisterForReflection; import lombok.*; @@ -12,6 +13,7 @@ import java.util.List; @NoArgsConstructor @AllArgsConstructor @RegisterForReflection +@JsonInclude(JsonInclude.Include.NON_NULL) public class Party { private List partyName; private PartyType partyType; diff --git a/src/main/java/com/banesco/module/servicing_issue/domain/model/ServicingIssue.java b/src/main/java/com/banesco/module/servicing_issue/domain/model/ServicingIssue.java deleted file mode 100644 index de2d86e..0000000 --- a/src/main/java/com/banesco/module/servicing_issue/domain/model/ServicingIssue.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.banesco.module.servicing_issue.domain.model; - -import io.quarkus.runtime.annotations.RegisterForReflection; -import lombok.*; - -@Getter -@ToString -@Builder -@NoArgsConstructor -@AllArgsConstructor -@RegisterForReflection -public class ServicingIssue { - private String procedureCode; - private String issueDescription; -}