diff --git a/helm/Chart.yaml b/helm/Chart.yaml
index 8c93cef..a43ae8d 100644
--- a/helm/Chart.yaml
+++ b/helm/Chart.yaml
@@ -2,8 +2,8 @@ apiVersion: v2
name: gpd-payments-pull
description: Microservice pagopa-gpd-payments-pull
type: application
-version: 0.19.0
-appVersion: 1.1.1
+version: 0.22.0
+appVersion: 1.1.1-3-logging-kibana
dependencies:
- name: microservice-chart
version: 2.8.0
diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml
index 43ae15e..272bce6 100644
--- a/helm/values-dev.yaml
+++ b/helm/values-dev.yaml
@@ -4,7 +4,7 @@ microservice-chart:
fullnameOverride: "gpd-payments-pull"
image:
repository: ghcr.io/pagopa/pagopa-gpd-payments-pull
- tag: "1.1.1"
+ tag: "1.1.1-3-logging-kibana"
pullPolicy: Always
livenessProbe:
httpGet:
@@ -69,9 +69,9 @@ microservice-chart:
value: "70"
fileConfig: {}
envConfig:
- APP_NAME: "gpd-payments-pull"
+ APP_NAME: "pagopa-gpd-payments-pull"
APP_ENVIRONMENT: "dev"
- WEBSITE_SITE_NAME: 'gpd-payments-pull' # required to show cloud role name in application insights
+ WEBSITE_SITE_NAME: 'pagopa-gpd-payments-pull' # required to show cloud role name in application insights
APP_LOGGING_LEVEL: 'DEBUG'
DEFAULT_LOGGING_LEVEL: 'INFO'
OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopa-gpd-payments-pull,deployment.environment=dev"
diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml
index aee09e9..561822b 100644
--- a/helm/values-prod.yaml
+++ b/helm/values-prod.yaml
@@ -4,7 +4,7 @@ microservice-chart:
fullnameOverride: "gpd-payments-pull"
image:
repository: ghcr.io/pagopa/pagopa-gpd-payments-pull
- tag: "1.1.1"
+ tag: "1.1.1-3-logging-kibana"
pullPolicy: Always
livenessProbe:
httpGet:
@@ -69,9 +69,9 @@ microservice-chart:
value: "70"
fileConfig: {}
envConfig:
- APP_NAME: "gpd-payments-pull"
+ APP_NAME: "pagopa-gpd-payments-pull"
APP_ENVIRONMENT: "prod"
- WEBSITE_SITE_NAME: 'gpd-payments-pull' # required to show cloud role name in application insights
+ WEBSITE_SITE_NAME: 'pagopa-gpd-payments-pull' # required to show cloud role name in application insights
APP_LOGGING_LEVEL: 'DEBUG'
DEFAULT_LOGGING_LEVEL: 'INFO'
OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopa-gpd-payments-pull,deployment.environment=prod"
diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml
index 3a6205b..40f25f1 100644
--- a/helm/values-uat.yaml
+++ b/helm/values-uat.yaml
@@ -4,7 +4,7 @@ microservice-chart:
fullnameOverride: "gpd-payments-pull"
image:
repository: ghcr.io/pagopa/pagopa-gpd-payments-pull
- tag: "1.1.1"
+ tag: "1.1.1-3-logging-kibana"
pullPolicy: Always
livenessProbe:
httpGet:
@@ -69,9 +69,9 @@ microservice-chart:
value: "70"
fileConfig: {}
envConfig:
- APP_NAME: "gpd-payments-pull"
+ APP_NAME: "pagopa-gpd-payments-pull"
APP_ENVIRONMENT: "uat"
- WEBSITE_SITE_NAME: 'gpd-payments-pull' # required to show cloud role name in application insights
+ WEBSITE_SITE_NAME: 'pagopa-gpd-payments-pull' # required to show cloud role name in application insights
APP_LOGGING_LEVEL: 'DEBUG'
DEFAULT_LOGGING_LEVEL: 'INFO'
OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopa-gpd-payments-pull,deployment.environment=uat"
diff --git a/infra/04_apim_api.tf b/infra/04_apim_api.tf
index 0b67af8..eecaf27 100644
--- a/infra/04_apim_api.tf
+++ b/infra/04_apim_api.tf
@@ -3,7 +3,7 @@ locals {
// GPD Payments Pull
display_name = "GPD Payments Pull"
description = "API for GPD Payments Pull"
- path = "gpd/payments/pull"
+ path = "pagopa-gpd-payments-pull"
subscription_required = true
service_url = null
}
@@ -17,7 +17,7 @@ locals {
resource "azurerm_api_management_api_version_set" "api_gpd_payments_pull_api" {
- name = format("%s-gpd-payments-pull-api", var.env_short)
+ name = "pagopa-${var.env_short}-gpd-payments-pull-api"
resource_group_name = local.apim.rg
api_management_name = local.apim.name
display_name = local.apim_gpd_payments_pull.display_name
@@ -31,10 +31,10 @@ resource "azurerm_api_management_api_version_set" "api_gpd_payments_pull_api" {
module "apim_gpd_payments_pull_api_v1" {
source = "git::https://github.com/pagopa/terraform-azurerm-v3.git//api_management_api?ref=v6.4.1"
- name = format("%s-gpd-payments-pull-api", var.env_short)
+ name = "pagopa-${var.env_short}-gpd-payments-pull-api"
api_management_name = local.apim.name
resource_group_name = local.apim.rg
- product_ids = [local.apim.gpd_payments_pull_product_id]
+ product_ids = [local.apim.gpd_payments_pull_product_id]
subscription_required = local.apim_gpd_payments_pull.subscription_required
version_set_id = azurerm_api_management_api_version_set.api_gpd_payments_pull_api.id
api_version = "v1"
@@ -42,11 +42,11 @@ module "apim_gpd_payments_pull_api_v1" {
description = local.apim_gpd_payments_pull.description
display_name = local.apim_gpd_payments_pull.display_name
path = local.apim_gpd_payments_pull.path
- protocols = ["https"]
+ protocols = ["https"]
service_url = local.apim_gpd_payments_pull.service_url
content_format = "openapi"
- content_value = file("../openapi/openapi.json")
+ content_value = file("../openapi/openapi.json")
xml_content = templatefile("./policy/_base_policy.xml", {
hostname = local.hostname
diff --git a/integration-test/src/config/.env.dev b/integration-test/src/config/.env.dev
index 9be8c8c..069516d 100644
--- a/integration-test/src/config/.env.dev
+++ b/integration-test/src/config/.env.dev
@@ -1,5 +1,5 @@
GPD_HOST=https://api.dev.platform.pagopa.it/gpd/api/v1
-GPD_PULL_HOST=https://api.dev.platform.pagopa.it/gpd/payments/pull/v1
+GPD_PULL_HOST=https://api.dev.platform.pagopa.it/gpd-payments-pull/v1
ORGANIZATIONAL_FISCAL_CODE=77777777777
IUV_OK=11101751670642134
diff --git a/integration-test/src/config/.env.uat b/integration-test/src/config/.env.uat
index 70cd0d3..843edc1 100644
--- a/integration-test/src/config/.env.uat
+++ b/integration-test/src/config/.env.uat
@@ -1,5 +1,5 @@
GPD_HOST=https://api.uat.platform.pagopa.it/gpd/api/v1
-GPD_PULL_HOST=https://api.uat.platform.pagopa.it/gpd/payments/pull/v1
+GPD_PULL_HOST=https://api.uat.platform.pagopa.it/gpd-payments-pull/v1
ORGANIZATIONAL_FISCAL_CODE=77777777777
IUV_OK=03163674189686371
diff --git a/openapi/openapi.json b/openapi/openapi.json
index ba50152..4b30556 100644
--- a/openapi/openapi.json
+++ b/openapi/openapi.json
@@ -4,7 +4,7 @@
"title": "gpd-payments-pull",
"description": "GPD Payments Pull Services",
"termsOfService": "https://www.pagopa.gov.it/",
- "version": "1.1.1"
+ "version": "1.1.1-3-logging-kibana"
},
"servers": [
{
@@ -12,7 +12,7 @@
"description": "Localhost base URL"
},
{
- "url": "https://{host}/gpd/payments/pull/api/v1",
+ "url": "https://{host}/gpd-payments-pull/api/v1",
"description": "Base URL",
"variables": {
"host": {
diff --git a/pom.xml b/pom.xml
index e5ae390..107ead2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,9 +5,9 @@
4.0.0
it.gov.pagopa
- gpd-payments-pull
- GPD Payments Pull Services
- 1.1.1
+ pagopa-gpd-payments-pull
+ PagoPA GPD Payments Pull Services
+ 1.1.1-3-logging-kibana
0.8.7
@@ -57,11 +57,9 @@
- io.quarkiverse.loggingjson
+ io.quarkus
quarkus-logging-json
- 3.0.0
-
io.quarkus
quarkus-resteasy-reactive-jackson
diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/App.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/App.java
index 38d8d4b..1418ccb 100644
--- a/src/main/java/it/gov/pagopa/gpd/payments/pull/App.java
+++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/App.java
@@ -28,11 +28,11 @@
info = @Info(title = "GPD Payments Pull Services", version = "${quarkus.application.version}"),
servers = {
@Server(url = "http://localhost:8080", description = "Localhost base URL"),
- @Server(url = "https://{host}/gpd/payments/pull/api/v1", description = "Base URL",
+ @Server(url = "https://{host}/gpd-payments-pull/api/v1", description = "Base URL",
variables = {
- @ServerVariable(name = "host",
- enumeration = {"api.dev.platform.pagopa.it","api.uat.platform.pagopa.it","api.platform.pagopa.it"},
- defaultValue = "api.dev.platform.pagopa.it")})
+ @ServerVariable(name = "host",
+ enumeration = {"api.dev.platform.pagopa.it", "api.uat.platform.pagopa.it", "api.platform.pagopa.it"},
+ defaultValue = "api.dev.platform.pagopa.it")})
},
components =
@Components(
diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/config/LoggingInterceptor.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/config/LoggingInterceptor.java
index 677f650..b4ba092 100644
--- a/src/main/java/it/gov/pagopa/gpd/payments/pull/config/LoggingInterceptor.java
+++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/config/LoggingInterceptor.java
@@ -5,15 +5,14 @@
import it.gov.pagopa.gpd.payments.pull.models.ErrorResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
import java.util.HashMap;
import java.util.Map;
-import java.util.UUID;
-import static io.quarkiverse.loggingjson.providers.KeyValueStructuredArgument.kv;
import static it.gov.pagopa.gpd.payments.pull.util.CommonUtil.mapToJSON;
@Logged
@@ -28,52 +27,45 @@ private static String getParams(InvocationContext context) {
for (int i = 0; i < context.getParameters().length; i++) {
String name = context.getMethod().getParameters()[i].getName();
Object value = context.getParameters()[i];
- if("taxCode".equals(name) && value != null) {
+ if ("taxCode".equals(name) && value != null) {
value = value.hashCode();
}
params.put(name, value);
}
return mapToJSON(params);
-
}
@AroundInvoke
Object logInvocation(InvocationContext context) throws Exception {
var startTime = System.currentTimeMillis();
-
String args = getParams(context);
- Object ret = null;
+ Object ret;
try {
ret = context.proceed();
} catch (Exception e) {
var endTime = System.currentTimeMillis();
int httpCode = 400;
String faultCode = "UNKNOWN";
- if(e instanceof PaymentNoticeException ex) {
+ if (e instanceof PaymentNoticeException ex) {
faultCode = ex.getErrorCode().getErrorCode();
httpCode = ex.getErrorCode().getStatus().getStatusCode();
}
- logger.error("Failed API Invocation getPaymentNotices",
- kv("method", "getPaymentNotices"),
- kv("startTime", startTime),
- kv("args", mapToJSON(args)),
- kv("responseTime", endTime - startTime),
- kv("status", "KO"),
- kv("httpCode", httpCode),
- kv("requestId", UUID.randomUUID().toString()),
- kv("operationId", UUID.randomUUID().toString()),
- kv("faultCode", faultCode),
- kv("faultDetail", e.getMessage()),
- kv("response", mapToJSON(buildErrorResponse(httpCode, faultCode, e.getMessage()))));
+ MDC.put("responseTime", String.valueOf(endTime - startTime));
+ MDC.put("status", "KO");
+ MDC.put("httpCode", String.valueOf(httpCode));
+ MDC.put("faultCode", faultCode);
+ MDC.put("faultDetail", e.getMessage());
+ MDC.put("args", mapToJSON(args));
+ MDC.put("response", mapToJSON(buildErrorResponse(httpCode, faultCode, e.getMessage())));
+ logger.error("Failed API Invocation getPaymentNotices");
throw e;
}
return ret;
}
-
private ErrorResponse buildErrorResponse(int status, String errorCode, String message) {
return ErrorResponse.builder()
.title(String.valueOf(status))
@@ -82,5 +74,4 @@ private ErrorResponse buildErrorResponse(int status, String errorCode, String me
.instance(errorCode)
.build();
}
-
}
diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/mapper/ExceptionMapper.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/mapper/ExceptionMapper.java
index 8038e54..884c801 100644
--- a/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/mapper/ExceptionMapper.java
+++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/mapper/ExceptionMapper.java
@@ -7,17 +7,24 @@
import org.jboss.resteasy.reactive.server.ServerExceptionMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
import javax.ws.rs.NotFoundException;
import javax.ws.rs.core.Response;
import java.util.List;
import static it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException.getHttpStatus;
+import static it.gov.pagopa.gpd.payments.pull.util.CommonUtil.mapToJSON;
import static org.jboss.resteasy.reactive.RestResponse.Status.BAD_REQUEST;
import static org.jboss.resteasy.reactive.RestResponse.StatusCode.INTERNAL_SERVER_ERROR;
public class ExceptionMapper {
+ private static final String FAULT_CODE = "faultCode";
+ private static final String FAULT_DETAIL = "faultDetail";
+ private static final String RESPONSE = "response";
+ private static final String STATUS = "status";
+
Logger logger = LoggerFactory.getLogger(ExceptionMapper.class);
private ErrorResponse buildErrorResponse(Response.Status status, AppErrorCodeEnum errorCode, String message) {
@@ -31,14 +38,13 @@ private ErrorResponse buildErrorResponse(Response.Status status, AppErrorCodeEnu
@ServerExceptionMapper
public Response mapCompositeException(CompositeException exception) {
- logger.error(exception.getMessage(), exception);
Exception composedException;
List causes = exception.getCauses();
composedException = (Exception) causes.get(causes.size() - 1);
- if(composedException instanceof NotFoundException ex) {
+ if (composedException instanceof NotFoundException ex) {
return mapNotFoundException(ex);
- } else if(composedException instanceof PaymentNoticeException paymentNoticeException) {
+ } else if (composedException instanceof PaymentNoticeException paymentNoticeException) {
return mapPaymentNoticeException(paymentNoticeException);
} else {
return mapGenericException(exception);
@@ -48,29 +54,56 @@ public Response mapCompositeException(CompositeException exception) {
@ServerExceptionMapper
public Response mapNotFoundException(NotFoundException exception) {
+ ErrorResponse errorResponse = buildErrorResponse(Response.Status.BAD_REQUEST, AppErrorCodeEnum.PPL_600,
+ "Invalid parameters on request");
+
+ MDC.put(FAULT_CODE, "400");
+ MDC.put(FAULT_DETAIL, getDetails(exception));
+ MDC.put(RESPONSE, mapToJSON(errorResponse));
+ MDC.put(STATUS, "KO");
logger.error(exception.getMessage(), exception);
+
return Response.status(BAD_REQUEST).entity(
- buildErrorResponse(Response.Status.BAD_REQUEST, AppErrorCodeEnum.PPL_600,
- "Invalid parameters on request")).build();
+ errorResponse).build();
}
@ServerExceptionMapper
public Response mapPaymentNoticeException(PaymentNoticeException exception) {
- logger.error(exception.getMessage(), exception);
Response.Status status = getHttpStatus(exception);
- return Response.status(status).entity(buildErrorResponse(status,
- exception.getErrorCode(), exception.getMessage())).build();
+ ErrorResponse errorResponse = buildErrorResponse(status,
+ exception.getErrorCode(), exception.getMessage());
+ MDC.put(FAULT_CODE, String.valueOf(exception.getErrorCode()));
+ MDC.put(FAULT_DETAIL, getDetails(exception));
+ MDC.put(RESPONSE, mapToJSON(errorResponse));
+ MDC.put(STATUS, "KO");
+ logger.error(exception.getMessage(), exception);
+ return Response.status(status)
+ .entity(errorResponse)
+ .build();
}
+
@ServerExceptionMapper
public Response mapGenericException(Exception exception) {
+ ErrorResponse errorResponse = buildErrorResponse(
+ Response.Status.INTERNAL_SERVER_ERROR,
+ AppErrorCodeEnum.PPL_900,
+ "Unexpected Error");
logger.error(exception.getMessage(), exception);
+ MDC.put(FAULT_CODE, "500");
+ MDC.put(FAULT_DETAIL, getDetails(exception));
+ MDC.put(RESPONSE, mapToJSON(errorResponse));
+ MDC.put(STATUS, "KO");
return Response.status(INTERNAL_SERVER_ERROR)
- .entity(buildErrorResponse(
- Response.Status.INTERNAL_SERVER_ERROR,
- AppErrorCodeEnum.PPL_900,
- "Unexpected Error"))
+ .entity(errorResponse)
.build();
}
+ private String getDetails(Exception exception) {
+ String message = exception.getMessage();
+ var length = message.length();
+ var maxLength = Math.min(length, 200);
+ return message.substring(0, maxLength);
+ }
+
}
diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNotices.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNotices.java
index e05bed4..b1fae83 100644
--- a/src/main/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNotices.java
+++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNotices.java
@@ -20,13 +20,19 @@
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
import javax.inject.Inject;
import javax.validation.Valid;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Positive;
-import javax.ws.rs.*;
+import javax.ws.rs.DefaultValue;
+import javax.ws.rs.GET;
+import javax.ws.rs.HeaderParam;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.time.LocalDate;
@@ -35,7 +41,6 @@
import java.util.Map;
import java.util.UUID;
-import static io.quarkiverse.loggingjson.providers.KeyValueStructuredArgument.kv;
import static it.gov.pagopa.gpd.payments.pull.util.CommonUtil.mapToJSON;
/**
@@ -50,7 +55,9 @@ public class PaymentNotices {
private static final String REGEX = "[\n\r]";
private static final String REPLACEMENT = "_";
private static final int FISCAL_CODE_LENGTH = 16;
+
Logger logger = LoggerFactory.getLogger(PaymentNotices.class);
+
@Inject
PaymentNoticesService paymentNoticeService;
@@ -91,7 +98,6 @@ public Uni getPaymentNotices(
@Valid @Min(0) @Parameter(description = "Page number. Page value starts from 0")
@DefaultValue("0") @QueryParam("page") @Schema(defaultValue = "0") Integer page
) {
-
var startTime = System.currentTimeMillis();
Map args = new HashMap<>();
args.put("taxCode", taxCode != null ? taxCode.hashCode() : "null");
@@ -99,6 +105,15 @@ public Uni getPaymentNotices(
args.put("limit", limit);
args.put("page", page);
+ MDC.put("method", "getPaymentNotices");
+ MDC.put("startTime", String.valueOf(startTime));
+ MDC.put("args", mapToJSON(args));
+ MDC.put("responseTime", String.valueOf(System.currentTimeMillis() - startTime));
+ MDC.put("status", "OK");
+ MDC.put("httpCode", "200");
+ MDC.put("requestId", UUID.randomUUID().toString());
+ MDC.put("operationId", UUID.randomUUID().toString());
+
if (taxCode == null || taxCode.length() != FISCAL_CODE_LENGTH) {
String errMsg = "Fiscal code " + taxCode + " header is null or not valid";
throw new InvalidTaxCodeHeaderException(AppErrorCodeEnum.PPL_601, errMsg);
@@ -115,16 +130,9 @@ public Uni getPaymentNotices(
}))
.onItem()
.transform(item -> {
- logger.info("Successfully API Invocation getPaymentNotices",
- kv("method", "getPaymentNotices"),
- kv("startTime", startTime),
- kv("args", args),
- kv("responseTime", System.currentTimeMillis() - startTime),
- kv("status", "OK"),
- kv("httpCode", "200"),
- kv("requestId", UUID.randomUUID().toString()),
- kv("operationId", UUID.randomUUID().toString()),
- kv("response", mapToJSON(item)));
+ MDC.put("response", mapToJSON(item));
+ MDC.put("status", "OK");
+ logger.info("Successfully API Invocation getPaymentNotices");
return Response.ok().entity(item).build();
});
}
diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImpl.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImpl.java
index 59e9d8d..650993f 100644
--- a/src/main/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImpl.java
+++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImpl.java
@@ -9,6 +9,8 @@
import it.gov.pagopa.gpd.payments.pull.repository.PaymentPositionRepository;
import it.gov.pagopa.gpd.payments.pull.service.PaymentNoticesService;
import org.eclipse.microprofile.config.inject.ConfigProperty;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
@@ -19,25 +21,30 @@
@ApplicationScoped
public class PaymentNoticesServiceImpl implements PaymentNoticesService {
+ Logger logger = LoggerFactory.getLogger(PaymentNoticesServiceImpl.class);
+
@Inject
PaymentPositionRepository paymentPositionRepository;
- @ConfigProperty(name = "quarkus.app.payment_pull.keep_aca", defaultValue = "true")
+ @ConfigProperty(name = "app.payment_pull.keep_aca", defaultValue = "true")
Boolean keepAca;
@Override
public Uni> getPaymentNotices(String taxCode, LocalDate dueDate, Integer limit, Integer page) {
return paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page)
.onFailure().invoke(Unchecked.consumer(throwable -> {
- throw new PaymentNoticeException(AppErrorCodeEnum.PPL_700, String.format("Exception thrown during data recovery: %s", throwable));
+ throw buildPaymentNoticeException(AppErrorCodeEnum.PPL_700, throwable);
}))
.onItem().transform(paymentPositions -> paymentPositions.stream()
.filter(item -> keepAca || !item.getIupd().contains("ACA"))
.map(PaymentNoticeMapper::manNotice)
.toList())
.onFailure().invoke(Unchecked.consumer(throwable -> {
- throw new PaymentNoticeException(AppErrorCodeEnum.PPL_800, String.format("Exception thrown during data recovery: %s", throwable));
+ throw buildPaymentNoticeException(AppErrorCodeEnum.PPL_800, throwable);
}));
}
+ private PaymentNoticeException buildPaymentNoticeException(AppErrorCodeEnum errorCodeEnum, Throwable throwable) {
+ return new PaymentNoticeException(errorCodeEnum, String.format("Exception thrown during data recovery: %s", throwable), throwable);
+ }
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 89fbbc1..d4576d9 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,30 +1,33 @@
###################
## CUSTOM
###################
-app.name=gpd-payments-pull
+app.name=pagopa-gpd-payments-pull
app.version=${quarkus.application.version}
app.environment=${ENV:local}
+
###################
## COMMON OVERRIDE
###################
quarkus.default-locale=it-IT
quarkus.locales=it-IT
quarkus.native.additional-build-args=-H:ResourceConfigurationFiles=resources-config.json
+
###################
## LOG
###################
quarkus.log.file.json=false
quarkus.log.level=${LOG_LEVEL:INFO}
-quarkus.log.category."it.gov.pagopa.gpd.payments.pull".level=${LOG_LEVEL:INFO}
-quarkus.log.json.log-format=ecs
+quarkus.log.category."it.gov.pagopa.gpd.payments.pull".level=${LOG_LEVEL:DEBUG}
+quarkus.log.console.format=%d{HH:mm:ss} %-5p [%c{2.}] (%t) %s%e%n
quarkus.log.console.json=true
-%dev.quarkus.log.console.json=false
+%dev.quarkus.log.console.json=true
%test.quarkus.log.console.json=false
%openapi.quarkus.log.console.json=false
%openapi_internal.quarkus.log.console.json=false
quarkus.log.console.json.additional-field."service.name".value=${app.name}
quarkus.log.console.json.additional-field."service.version".value=${app.version}
quarkus.log.console.json.additional-field."service.environment".value=${app.environment}
+
####################
## OPENAPI - SWAGGER
####################
@@ -39,6 +42,7 @@ quarkus.smallrye-openapi.info-terms-of-service=https://www.pagopa.gov.it/
# Path for the Swagger endpoint and file
quarkus.swagger-ui.path=/swagger
quarkus.smallrye-openapi.path=/openapi.json
+
##################
## DATABASE ##
##################
@@ -49,8 +53,9 @@ quarkus.datasource.reactive.url=${GPD_DB_URL}
%test.quarkus.datasource.db-kind=h2
%test.quarkus.datasource.username=admin
%test.quarkus.datasource.reactive.url=vertx-reactive:h2:tcp://localhost/mem:apd
+
################
## CUSTOM ##
################
-quarkus.app.payment_pull.keep_aca=true
-%test.quarkus.app.payment_pull.keep_aca=false
+app.payment_pull.keep_aca=true
+%test.app.payment_pull.keep_aca=false