From b0edbebaca2caa6f2e2159968651402e44bfaa3a Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 11 Oct 2024 17:14:45 +0200 Subject: [PATCH 01/53] add log --- performance-test/src/payment_pull_service_test.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/performance-test/src/payment_pull_service_test.js b/performance-test/src/payment_pull_service_test.js index 41608f3..01744fe 100644 --- a/performance-test/src/payment_pull_service_test.js +++ b/performance-test/src/payment_pull_service_test.js @@ -31,6 +31,9 @@ export default function () { let responseBody = JSON.parse(response.body); + if (response.status === 500) { + console.log("ERROR: 500 ", responseBody); + } check(response, { 'Payment Pull Service getPaymentNotices status is 200': () => response.status === 200, 'Payment Pull Service getPaymentNotices body has list of payment notices': () => From 42bb1fdc195d6a2673417374d617cf357bcbefe5 Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 11 Oct 2024 17:19:43 +0200 Subject: [PATCH 02/53] improve logs --- performance-test/src/payment_pull_service_test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/performance-test/src/payment_pull_service_test.js b/performance-test/src/payment_pull_service_test.js index 01744fe..7c5e8ea 100644 --- a/performance-test/src/payment_pull_service_test.js +++ b/performance-test/src/payment_pull_service_test.js @@ -31,8 +31,8 @@ export default function () { let responseBody = JSON.parse(response.body); - if (response.status === 500) { - console.log("ERROR: 500 ", responseBody); + if (response.status >= 400) { + console.log("ERROR: ", responseBody); } check(response, { 'Payment Pull Service getPaymentNotices status is 200': () => response.status === 200, From 566946067fa7a2757ba7f2948a9a3371b6559f8b Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 11 Oct 2024 17:40:34 +0200 Subject: [PATCH 03/53] add error message in response --- .../gpd/payments/pull/exception/mapper/ExceptionMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 884c801..695668c 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 @@ -88,7 +88,7 @@ public Response mapGenericException(Exception exception) { ErrorResponse errorResponse = buildErrorResponse( Response.Status.INTERNAL_SERVER_ERROR, AppErrorCodeEnum.PPL_900, - "Unexpected Error"); + "Unexpected Error" + exception.getMessage()); logger.error(exception.getMessage(), exception); MDC.put(FAULT_CODE, "500"); MDC.put(FAULT_DETAIL, getDetails(exception)); From fb8ec8f143fc783e96661f62e20c6fbff5530ec0 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Fri, 11 Oct 2024 15:42:17 +0000 Subject: [PATCH 04/53] Bump to version 1.1.3-1-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 4 ++-- pom.xml | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index e3a46d5..894723f 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.24.0 -appVersion: 1.1.3 +version: 0.25.0 +appVersion: 1.1.3-1-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 511d512..9d961f4 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.3" + tag: "1.1.3-1-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 4fa1e45..2b4efa0 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.3" + tag: "1.1.3-1-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index ce38c9b..553979d 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.3" + tag: "1.1.3-1-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 2024748..72bfaac 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3" + "version": "1.1.3-1-config-performance-test" }, "servers": [ { @@ -512,4 +512,4 @@ } } } -} \ No newline at end of file +} diff --git a/pom.xml b/pom.xml index 6ec73c3..3d4a628 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3 + 1.1.3-1-config-performance-test 0.8.7 From c7c58d0ad6afe152b9668d6e1823bbd9895cc859 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 14 Oct 2024 09:58:02 +0200 Subject: [PATCH 05/53] add more info to error --- .../impl/PaymentNoticesServiceImpl.java | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) 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 650993f..b008491 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 @@ -31,17 +31,22 @@ public class PaymentNoticesServiceImpl implements PaymentNoticesService { @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 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 buildPaymentNoticeException(AppErrorCodeEnum.PPL_800, throwable); - })); + + try { + return paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page) + .onFailure().invoke(Unchecked.consumer(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 buildPaymentNoticeException(AppErrorCodeEnum.PPL_800, throwable); + })); + } catch (Exception e) { + throw new RuntimeException(e.getMessage() + "taxCode " + taxCode + "duedate " + dueDate, e); + } } private PaymentNoticeException buildPaymentNoticeException(AppErrorCodeEnum errorCodeEnum, Throwable throwable) { From e1991c41be91b41212c7e8fea03b37a40fdbd8a2 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Mon, 14 Oct 2024 07:59:49 +0000 Subject: [PATCH 06/53] Bump to version 1.1.3-2-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 894723f..7a23e33 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.25.0 -appVersion: 1.1.3-1-config-performance-test +version: 0.26.0 +appVersion: 1.1.3-2-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 9d961f4..e3a151d 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.3-1-config-performance-test" + tag: "1.1.3-2-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 2b4efa0..7b4f5c0 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.3-1-config-performance-test" + tag: "1.1.3-2-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 553979d..c8beffe 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.3-1-config-performance-test" + tag: "1.1.3-2-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 72bfaac..d342eea 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-1-config-performance-test" + "version": "1.1.3-2-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 3d4a628..b389f8f 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-1-config-performance-test + 1.1.3-2-config-performance-test 0.8.7 From 0f3b1aa26aab94d8d5ebc19c046faec0f03a7e5e Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 14 Oct 2024 10:17:45 +0200 Subject: [PATCH 07/53] add more info to error --- .../pull/exception/AppErrorException.java | 11 +++++++++++ .../pull/exception/mapper/ExceptionMapper.java | 17 +++++++++++++---- .../service/impl/PaymentNoticesServiceImpl.java | 3 ++- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/AppErrorException.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/AppErrorException.java index 2974d8a..b5c147d 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/AppErrorException.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/AppErrorException.java @@ -2,14 +2,25 @@ import lombok.Getter; +import java.time.LocalDate; + /** * Base exception for PDF Engine exceptions */ @Getter public class AppErrorException extends RuntimeException { + private String taxCode; + private LocalDate dueDate; + public AppErrorException(Throwable error) { super(error); } + + public AppErrorException(Throwable cause, LocalDate dueDate, String taxCode) { + super(cause); + this.dueDate = dueDate; + this.taxCode = taxCode; + } } 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 695668c..6405355 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 @@ -1,6 +1,7 @@ package it.gov.pagopa.gpd.payments.pull.exception.mapper; import io.smallrye.mutiny.CompositeException; +import it.gov.pagopa.gpd.payments.pull.exception.AppErrorException; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.models.ErrorResponse; import it.gov.pagopa.gpd.payments.pull.models.enums.AppErrorCodeEnum; @@ -85,10 +86,18 @@ public Response mapPaymentNoticeException(PaymentNoticeException exception) { @ServerExceptionMapper public Response mapGenericException(Exception exception) { - ErrorResponse errorResponse = buildErrorResponse( - Response.Status.INTERNAL_SERVER_ERROR, - AppErrorCodeEnum.PPL_900, - "Unexpected Error" + exception.getMessage()); + ErrorResponse errorResponse; + if (exception instanceof AppErrorException appE) { + errorResponse = buildErrorResponse( + Response.Status.INTERNAL_SERVER_ERROR, + AppErrorCodeEnum.PPL_900, + "Unexpected Error, taxCode: " + appE.getTaxCode() + " dueDate: " + appE.getDueDate() + " "); + } else { + errorResponse = buildErrorResponse( + Response.Status.INTERNAL_SERVER_ERROR, + AppErrorCodeEnum.PPL_900, + "Unexpected Error" + exception.getMessage()); + } logger.error(exception.getMessage(), exception); MDC.put(FAULT_CODE, "500"); MDC.put(FAULT_DETAIL, getDetails(exception)); 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 b008491..0dba74e 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 @@ -2,6 +2,7 @@ import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.unchecked.Unchecked; +import it.gov.pagopa.gpd.payments.pull.exception.AppErrorException; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.mapper.PaymentNoticeMapper; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; @@ -45,7 +46,7 @@ public Uni> getPaymentNotices(String taxCode, LocalDate dueD throw buildPaymentNoticeException(AppErrorCodeEnum.PPL_800, throwable); })); } catch (Exception e) { - throw new RuntimeException(e.getMessage() + "taxCode " + taxCode + "duedate " + dueDate, e); + throw new AppErrorException(e, dueDate, taxCode); } } From fedfcc1dc48c309c9b2709eae0055033454f93e0 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Mon, 14 Oct 2024 08:19:05 +0000 Subject: [PATCH 08/53] Bump to version 1.1.3-3-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 7a23e33..ea09cfc 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.26.0 -appVersion: 1.1.3-2-config-performance-test +version: 0.27.0 +appVersion: 1.1.3-3-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index e3a151d..c38d590 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.3-2-config-performance-test" + tag: "1.1.3-3-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 7b4f5c0..36818ff 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.3-2-config-performance-test" + tag: "1.1.3-3-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index c8beffe..00a8734 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.3-2-config-performance-test" + tag: "1.1.3-3-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index d342eea..42c8e54 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-2-config-performance-test" + "version": "1.1.3-3-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index b389f8f..a12e1f0 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-2-config-performance-test + 1.1.3-3-config-performance-test 0.8.7 From 7410b58d3f0812baabac0132dfd168ed27eb0993 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 14 Oct 2024 10:31:10 +0200 Subject: [PATCH 09/53] move try catch --- .../repository/PaymentPositionRepository.java | 17 +++++++----- .../impl/PaymentNoticesServiceImpl.java | 27 ++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index 8b2ce2c..9c9bf4b 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -3,6 +3,7 @@ import io.quarkus.hibernate.reactive.panache.PanacheRepository; import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; +import it.gov.pagopa.gpd.payments.pull.exception.AppErrorException; import javax.enterprise.context.ApplicationScoped; import java.time.LocalDate; @@ -27,12 +28,16 @@ public class PaymentPositionRepository implements PanacheRepository> findPaymentPositionsByTaxCodeAndDueDate( String taxCode, LocalDate dueDate, Integer limit, Integer page) { - return (dueDate == null ? - find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode) : - find(GET_VALID_POSITIONS_BY_TAXCODE_BASE.concat(" AND " + - "EXISTS (from ppos.paymentOption AS po WHERE po.dueDate >= ?2)"), - taxCode, dueDate.atStartOfDay())) - .page(page, limit).list(); + try { + return (dueDate == null ? + find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode) : + find(GET_VALID_POSITIONS_BY_TAXCODE_BASE.concat(" AND " + + "EXISTS (from ppos.paymentOption AS po WHERE po.dueDate >= ?2)"), + taxCode, dueDate.atStartOfDay())) + .page(page, limit).list(); + } catch (Exception e) { + throw new AppErrorException(e, dueDate, taxCode); + } } } 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 0dba74e..add06ec 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 @@ -32,22 +32,17 @@ public class PaymentNoticesServiceImpl implements PaymentNoticesService { @Override public Uni> getPaymentNotices(String taxCode, LocalDate dueDate, Integer limit, Integer page) { - - try { - return paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page) - .onFailure().invoke(Unchecked.consumer(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 buildPaymentNoticeException(AppErrorCodeEnum.PPL_800, throwable); - })); - } catch (Exception e) { - throw new AppErrorException(e, dueDate, taxCode); - } + return paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page) + .onFailure().invoke(Unchecked.consumer(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 buildPaymentNoticeException(AppErrorCodeEnum.PPL_800, throwable); + })); } private PaymentNoticeException buildPaymentNoticeException(AppErrorCodeEnum errorCodeEnum, Throwable throwable) { From 1bf6d36829a019d7e172645668a15c448432d4e8 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Mon, 14 Oct 2024 08:33:24 +0000 Subject: [PATCH 10/53] Bump to version 1.1.3-4-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index ea09cfc..d4cf44d 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.27.0 -appVersion: 1.1.3-3-config-performance-test +version: 0.28.0 +appVersion: 1.1.3-4-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index c38d590..0bcc6e3 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.3-3-config-performance-test" + tag: "1.1.3-4-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 36818ff..06766d8 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.3-3-config-performance-test" + tag: "1.1.3-4-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 00a8734..2535ba6 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.3-3-config-performance-test" + tag: "1.1.3-4-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 42c8e54..ee1d5cd 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-3-config-performance-test" + "version": "1.1.3-4-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index a12e1f0..8db48cd 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-3-config-performance-test + 1.1.3-4-config-performance-test 0.8.7 From 705703ee81d5da93fbabc52fdfc99a4096465438 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 14 Oct 2024 11:32:12 +0200 Subject: [PATCH 11/53] change condition --- .../exception/mapper/ExceptionMapper.java | 17 ++++------------ .../repository/PaymentPositionRepository.java | 20 ++++++++----------- 2 files changed, 12 insertions(+), 25 deletions(-) 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 6405355..695668c 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 @@ -1,7 +1,6 @@ package it.gov.pagopa.gpd.payments.pull.exception.mapper; import io.smallrye.mutiny.CompositeException; -import it.gov.pagopa.gpd.payments.pull.exception.AppErrorException; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.models.ErrorResponse; import it.gov.pagopa.gpd.payments.pull.models.enums.AppErrorCodeEnum; @@ -86,18 +85,10 @@ public Response mapPaymentNoticeException(PaymentNoticeException exception) { @ServerExceptionMapper public Response mapGenericException(Exception exception) { - ErrorResponse errorResponse; - if (exception instanceof AppErrorException appE) { - errorResponse = buildErrorResponse( - Response.Status.INTERNAL_SERVER_ERROR, - AppErrorCodeEnum.PPL_900, - "Unexpected Error, taxCode: " + appE.getTaxCode() + " dueDate: " + appE.getDueDate() + " "); - } else { - errorResponse = buildErrorResponse( - Response.Status.INTERNAL_SERVER_ERROR, - AppErrorCodeEnum.PPL_900, - "Unexpected Error" + exception.getMessage()); - } + ErrorResponse errorResponse = buildErrorResponse( + Response.Status.INTERNAL_SERVER_ERROR, + AppErrorCodeEnum.PPL_900, + "Unexpected Error" + exception.getMessage()); logger.error(exception.getMessage(), exception); MDC.put(FAULT_CODE, "500"); MDC.put(FAULT_DETAIL, getDetails(exception)); diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index 9c9bf4b..2438c2d 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -3,7 +3,6 @@ import io.quarkus.hibernate.reactive.panache.PanacheRepository; import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; -import it.gov.pagopa.gpd.payments.pull.exception.AppErrorException; import javax.enterprise.context.ApplicationScoped; import java.time.LocalDate; @@ -27,17 +26,14 @@ public class PaymentPositionRepository implements PanacheRepository> findPaymentPositionsByTaxCodeAndDueDate( - String taxCode, LocalDate dueDate, Integer limit, Integer page) { - try { - return (dueDate == null ? - find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode) : - find(GET_VALID_POSITIONS_BY_TAXCODE_BASE.concat(" AND " + - "EXISTS (from ppos.paymentOption AS po WHERE po.dueDate >= ?2)"), - taxCode, dueDate.atStartOfDay())) - .page(page, limit).list(); - } catch (Exception e) { - throw new AppErrorException(e, dueDate, taxCode); + String taxCode, LocalDate dueDate, Integer limit, Integer page + ) { + if (dueDate == null) { + return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode).page(page, limit).list(); } + return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE.concat(" AND " + + "EXISTS (from ppos.paymentOption AS po WHERE po.dueDate >= ?2)"), + taxCode, dueDate.atStartOfDay()) + .page(page, limit).list(); } - } From da18f8bafc1235d333ab361aabdfaddf7a069882 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Mon, 14 Oct 2024 09:33:52 +0000 Subject: [PATCH 12/53] Bump to version 1.1.3-5-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index d4cf44d..0a705c3 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.28.0 -appVersion: 1.1.3-4-config-performance-test +version: 0.29.0 +appVersion: 1.1.3-5-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 0bcc6e3..8d64dd7 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.3-4-config-performance-test" + tag: "1.1.3-5-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 06766d8..2c0df3f 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.3-4-config-performance-test" + tag: "1.1.3-5-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 2535ba6..45db0c1 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.3-4-config-performance-test" + tag: "1.1.3-5-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index ee1d5cd..0163d52 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-4-config-performance-test" + "version": "1.1.3-5-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 8db48cd..fd5fc92 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-4-config-performance-test + 1.1.3-5-config-performance-test 0.8.7 From 8f5e9bf0db907eeced5e06293384e3b870b9650f Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 14 Oct 2024 11:51:23 +0200 Subject: [PATCH 13/53] update query creation --- .../pull/repository/PaymentPositionRepository.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index 2438c2d..8b4b35f 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -14,6 +14,10 @@ public class PaymentPositionRepository implements PanacheRepository= ?2)"; /** * Recovers a reactive stream of payment positions, using the debtor taxCode, and optionally the dueDate for which at least one @@ -31,9 +35,7 @@ public Uni> findPaymentPositionsByTaxCodeAndDueDate( if (dueDate == null) { return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode).page(page, limit).list(); } - return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE.concat(" AND " + - "EXISTS (from ppos.paymentOption AS po WHERE po.dueDate >= ?2)"), - taxCode, dueDate.atStartOfDay()) + return find(GET_VALID_POSITIONS_BY_TAXCODE_AND_DUE_DATE, taxCode, dueDate.atStartOfDay()) .page(page, limit).list(); } } From 686d4eb0ab4b74b2968a402cb6f5daccf6fc9b8a Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Mon, 14 Oct 2024 09:52:50 +0000 Subject: [PATCH 14/53] Bump to version 1.1.3-6-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 0a705c3..fbf38b4 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.29.0 -appVersion: 1.1.3-5-config-performance-test +version: 0.30.0 +appVersion: 1.1.3-6-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 8d64dd7..9c4936a 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.3-5-config-performance-test" + tag: "1.1.3-6-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 2c0df3f..ec88630 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.3-5-config-performance-test" + tag: "1.1.3-6-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 45db0c1..a9aa651 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.3-5-config-performance-test" + tag: "1.1.3-6-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 0163d52..eafdc94 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-5-config-performance-test" + "version": "1.1.3-6-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index fd5fc92..23fc71e 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-5-config-performance-test + 1.1.3-6-config-performance-test 0.8.7 From 9d234bced201ebbbb823ab04e42eb787ac2cf1a9 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 14 Oct 2024 12:19:45 +0200 Subject: [PATCH 15/53] enable sql loggin --- src/main/resources/application.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index d4576d9..fbc7f4e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -27,6 +27,7 @@ quarkus.log.console.json=true 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} +quarkus.hibernate-orm.log.sql=true #################### ## OPENAPI - SWAGGER From e9cfa87923e6d522a0550a5ecd45008843e38bcf Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Mon, 14 Oct 2024 10:21:38 +0000 Subject: [PATCH 16/53] Bump to version 1.1.3-7-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index fbf38b4..96326b0 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.30.0 -appVersion: 1.1.3-6-config-performance-test +version: 0.31.0 +appVersion: 1.1.3-7-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 9c4936a..e792627 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.3-6-config-performance-test" + tag: "1.1.3-7-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index ec88630..a8a2069 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.3-6-config-performance-test" + tag: "1.1.3-7-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index a9aa651..9b97793 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.3-6-config-performance-test" + tag: "1.1.3-7-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index eafdc94..93ff6c1 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-6-config-performance-test" + "version": "1.1.3-7-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 23fc71e..5fbb9e5 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-6-config-performance-test + 1.1.3-7-config-performance-test 0.8.7 From 9f73c2965e6d69c9bf714ad2d8e18f8531de48f3 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 14 Oct 2024 12:34:43 +0200 Subject: [PATCH 17/53] comment tear down --- performance-test/src/payment_pull_service_test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/performance-test/src/payment_pull_service_test.js b/performance-test/src/payment_pull_service_test.js index 7c5e8ea..b2af196 100644 --- a/performance-test/src/payment_pull_service_test.js +++ b/performance-test/src/payment_pull_service_test.js @@ -44,6 +44,6 @@ export default function () { export async function teardown(data) { // 4. teardown code - let response = await deleteToGPD(`${gpdURIBasePath}/organizations/${organizationTaxCode}/debtpositions/${iupd}`); - check(response, { 'Delete performance test debt position status is 200': () => response.status === 200 }); + // let response = await deleteToGPD(`${gpdURIBasePath}/organizations/${organizationTaxCode}/debtpositions/${iupd}`); + // check(response, { 'Delete performance test debt position status is 200': () => response.status === 200 }); } \ No newline at end of file From 05524c3ad25f5542091a31aae838b5da133f9e7e Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 14 Oct 2024 12:50:39 +0200 Subject: [PATCH 18/53] remove pagination --- .../payments/pull/repository/PaymentPositionRepository.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index 8b4b35f..f9613c4 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -33,9 +33,8 @@ public Uni> findPaymentPositionsByTaxCodeAndDueDate( String taxCode, LocalDate dueDate, Integer limit, Integer page ) { if (dueDate == null) { - return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode).page(page, limit).list(); + return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode).list(); } - return find(GET_VALID_POSITIONS_BY_TAXCODE_AND_DUE_DATE, taxCode, dueDate.atStartOfDay()) - .page(page, limit).list(); + return find(GET_VALID_POSITIONS_BY_TAXCODE_AND_DUE_DATE, taxCode, dueDate.atStartOfDay()).list(); } } From 42d2ad7ba1b0784da6812c0e27c8730b0bf01bb8 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Mon, 14 Oct 2024 10:51:59 +0000 Subject: [PATCH 19/53] Bump to version 1.1.3-8-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 96326b0..b9d8de0 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.31.0 -appVersion: 1.1.3-7-config-performance-test +version: 0.32.0 +appVersion: 1.1.3-8-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index e792627..85cf5f7 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.3-7-config-performance-test" + tag: "1.1.3-8-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index a8a2069..27e0702 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.3-7-config-performance-test" + tag: "1.1.3-8-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 9b97793..fe33a82 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.3-7-config-performance-test" + tag: "1.1.3-8-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 93ff6c1..5086c34 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-7-config-performance-test" + "version": "1.1.3-8-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 5fbb9e5..611a24f 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-7-config-performance-test + 1.1.3-8-config-performance-test 0.8.7 From e276efeb726b0df5459a62eab4b6ab605c76ba07 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 14 Oct 2024 16:14:59 +0200 Subject: [PATCH 20/53] added pagination --- .../pull/repository/PaymentPositionRepository.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index f9613c4..5465738 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -1,6 +1,7 @@ package it.gov.pagopa.gpd.payments.pull.repository; import io.quarkus.hibernate.reactive.panache.PanacheRepository; +import io.quarkus.panache.common.Page; import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; @@ -13,7 +14,7 @@ public class PaymentPositionRepository implements PanacheRepository> findPaymentPositionsByTaxCodeAndDueDate( String taxCode, LocalDate dueDate, Integer limit, Integer page ) { if (dueDate == null) { - return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode).list(); + return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode) + .page(Page.of(page, limit)) + .list(); } - return find(GET_VALID_POSITIONS_BY_TAXCODE_AND_DUE_DATE, taxCode, dueDate.atStartOfDay()).list(); + return find(GET_VALID_POSITIONS_BY_TAXCODE_AND_DUE_DATE, taxCode, dueDate.atStartOfDay()) + .page(Page.of(page, limit)) + .list(); } } From 1427d298398edb23c058b948b8ba46903d735792 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Mon, 14 Oct 2024 14:17:07 +0000 Subject: [PATCH 21/53] Bump to version 1.1.3-9-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index b9d8de0..5306dc6 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.32.0 -appVersion: 1.1.3-8-config-performance-test +version: 0.33.0 +appVersion: 1.1.3-9-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 85cf5f7..94415e2 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.3-8-config-performance-test" + tag: "1.1.3-9-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 27e0702..ed2a763 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.3-8-config-performance-test" + tag: "1.1.3-9-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index fe33a82..9f0778f 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.3-8-config-performance-test" + tag: "1.1.3-9-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 5086c34..a9285d0 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-8-config-performance-test" + "version": "1.1.3-9-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 611a24f..8ad9be2 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-8-config-performance-test + 1.1.3-9-config-performance-test 0.8.7 From 5ef7d721d73905155c770313da75c52a9f7ccddd Mon Sep 17 00:00:00 2001 From: giomella Date: Tue, 15 Oct 2024 09:37:37 +0200 Subject: [PATCH 22/53] bump quarkus to 3.15.1 version and do the necessary adjustment --- openapi/openapi.json | 60 ++++++++----------- pom.xml | 29 ++++----- .../it/gov/pagopa/gpd/payments/pull/App.java | 4 +- .../gpd/payments/pull/config/Logged.java | 2 +- .../pull/config/LoggingInterceptor.java | 8 +-- .../payments/pull/entity/PaymentOption.java | 4 +- .../pull/entity/PaymentOptionMetadata.java | 4 +- .../payments/pull/entity/PaymentPosition.java | 4 +- .../gpd/payments/pull/entity/Transfer.java | 4 +- .../pull/entity/TransferMetadata.java | 4 +- .../exception/PaymentNoticeException.java | 2 +- .../exception/mapper/ExceptionMapper.java | 4 +- .../pull/models/enums/AppErrorCodeEnum.java | 2 +- .../repository/PaymentPositionRepository.java | 2 +- .../gpd/payments/pull/resources/Generic.java | 12 ++-- .../pull/resources/PaymentNotices.java | 28 +++++---- .../impl/PaymentNoticesServiceImpl.java | 6 +- .../payments/pull/OpenApiGenerationTest.java | 1 - .../PaymentPositionRepositoryTest.java | 40 +++++++++---- .../payments/pull/resources/GenericTest.java | 6 +- .../pull/resources/PaymentNoticesTest.java | 8 +-- .../impl/PaymentNoticesServiceImplTest.java | 12 ++-- 22 files changed, 123 insertions(+), 123 deletions(-) diff --git a/openapi/openapi.json b/openapi/openapi.json index a9285d0..51cfc0f 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -82,7 +82,8 @@ "format": "int32", "default": 50, "maximum": 100, - "minimum": 1, + "minimum": 0, + "exclusiveMinimum": true, "type": "integer" } }, @@ -215,32 +216,29 @@ "type": "string" }, "dueDate": { + "description": "Is the date by which (TO) the Payment option is payable.", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/LocalDateTime" - }, - { - "description": "Is the date by which (TO) the Payment option is payable." } ] }, "retentionDate": { + "description": "Not currently used in any logic. The purpose of this date will be to give the possibility to specify a time period after the dueDate within which a payment option, even if expired, will still be payable.", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/LocalDateTime" - }, - { - "description": "Not currently used in any logic. The purpose of this date will be to give the possibility to specify a time period after the dueDate within which a payment option, even if expired, will still be payable." } ] }, "insertedDate": { + "description": "date of insertion of the OP", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/LocalDateTime" - }, - { - "description": "date of insertion of the OP" } ] }, @@ -250,22 +248,20 @@ "type": "integer" }, "status": { + "description": "Status of the OP", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/PaymentOptionStatus" - }, - { - "description": "Status of the OP" } ] }, "lastUpdatedDate": { + "description": "OP update date", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/LocalDateTime" - }, - { - "description": "OP update date" } ] } @@ -323,52 +319,47 @@ "type": "string" }, "insertedDate": { + "description": "Date of entry of the Debt Position", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/LocalDateTime" - }, - { - "description": "Date of entry of the Debt Position" } ] }, "publishDate": { + "description": "Date of publication of the Debt Position. In the case of Positions created by ACA it corresponds to the insertion date.", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/LocalDateTime" - }, - { - "description": "Date of publication of the Debt Position. In the case of Positions created by ACA it corresponds to the insertion date." } ] }, "validityDate": { + "description": "Start date of validity of the Debt Position. if set to null it goes directly to valid when publishing", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/LocalDateTime" - }, - { - "description": "Start date of validity of the Debt Position. if set to null it goes directly to valid when publishing" } ] }, "status": { + "description": "State of the Debt Position. Will be\nVALID\n or\nPARTIALLY_PAID", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/PaymentNoticeStatus" - }, - { - "description": "State of the Debt Position. Will be\nVALID\n or\nPARTIALLY_PAID" } ] }, "lastUpdateDate": { + "description": "Date of update of the Debt Position", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/LocalDate" - }, - { - "description": "Date of update of the Debt Position" } ] }, @@ -411,12 +402,11 @@ "type": "integer" }, "dueDate": { + "description": "Is the date by which the Payment option is payable.", + "type": "string", "allOf": [ { "$ref": "#/components/schemas/LocalDateTime" - }, - { - "description": "Is the date by which the Payment option is payable." } ] }, @@ -512,4 +502,4 @@ } } } -} +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 8ad9be2..17d2434 100644 --- a/pom.xml +++ b/pom.xml @@ -11,14 +11,14 @@ 0.8.7 - 3.8.1 + 3.12.1 17 UTF-8 UTF-8 quarkus-bom io.quarkus.platform - 2.13.0.Final - 3.0.0-M7 + 3.15.1 + 3.2.3 @@ -39,7 +39,7 @@ io.quarkus - quarkus-resteasy-reactive + quarkus-rest io.quarkus @@ -62,7 +62,7 @@ io.quarkus - quarkus-resteasy-reactive-jackson + quarkus-rest-jackson @@ -77,11 +77,6 @@ quarkus-reactive-pg-client - - io.quarkiverse.quarkus-reactive-h2-client - quarkus-reactive-h2-client - 0.1.1 - io.quarkus quarkus-hibernate-validator @@ -96,6 +91,11 @@ quarkus-jacoco test + + io.quarkus + quarkus-test-vertx + test + com.fasterxml.jackson.datatype jackson-datatype-jsr310 @@ -112,12 +112,6 @@ 1.3.1.Final provided - - org.mockito - mockito-core - 2.10.0 - test - io.quarkus quarkus-junit5-mockito @@ -232,7 +226,8 @@ false - native + true + false 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 fa9c30b..b6956e7 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 @@ -20,8 +20,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Application; +import jakarta.ws.rs.core.MediaType; @OpenAPIDefinition( diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/config/Logged.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/config/Logged.java index 0af0d7c..7348232 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/config/Logged.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/config/Logged.java @@ -1,6 +1,6 @@ package it.gov.pagopa.gpd.payments.pull.config; -import javax.interceptor.InterceptorBinding; +import jakarta.interceptor.InterceptorBinding; import java.lang.annotation.*; @InterceptorBinding 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 b4ba092..67579ce 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 @@ -1,15 +1,15 @@ package it.gov.pagopa.gpd.payments.pull.config; -import io.quarkus.arc.Priority; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.models.ErrorResponse; +import jakarta.annotation.Priority; 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 jakarta.interceptor.AroundInvoke; +import jakarta.interceptor.Interceptor; +import jakarta.interceptor.InvocationContext; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java index 921c088..7af88be 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java @@ -5,8 +5,8 @@ import it.gov.pagopa.gpd.payments.pull.models.enums.PaymentOptionStatus; import lombok.*; -import javax.persistence.*; -import javax.validation.constraints.NotNull; +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; import java.io.Serializable; import java.time.LocalDateTime; import java.util.ArrayList; diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java index 3a66d03..420c3e1 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java @@ -7,8 +7,8 @@ import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import javax.validation.constraints.NotNull; +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; import java.io.Serializable; @Table( diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java index dc70d09..5507140 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java @@ -7,8 +7,8 @@ import it.gov.pagopa.gpd.payments.pull.models.enums.Type; import lombok.*; -import javax.persistence.*; -import javax.validation.constraints.NotNull; +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java index 36380b2..902df42 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java @@ -5,8 +5,8 @@ import it.gov.pagopa.gpd.payments.pull.models.enums.TransferStatus; import lombok.*; -import javax.persistence.*; -import javax.validation.constraints.NotNull; +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; import java.io.Serializable; import java.time.LocalDateTime; import java.util.ArrayList; diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java index dedb7f2..bb63618 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java @@ -7,8 +7,8 @@ import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import javax.validation.constraints.NotNull; +import jakarta.persistence.*; +import jakarta.validation.constraints.NotNull; import java.io.Serializable; @Table( diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/PaymentNoticeException.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/PaymentNoticeException.java index 96d151e..e753c37 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/PaymentNoticeException.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/PaymentNoticeException.java @@ -3,7 +3,7 @@ import it.gov.pagopa.gpd.payments.pull.models.enums.AppErrorCodeEnum; import lombok.Getter; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; import java.util.Objects; /** 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 695668c..cd6b8f2 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 @@ -9,8 +9,8 @@ import org.slf4j.LoggerFactory; import org.slf4j.MDC; -import javax.ws.rs.NotFoundException; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.NotFoundException; +import jakarta.ws.rs.core.Response; import java.util.List; import static it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException.getHttpStatus; diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/models/enums/AppErrorCodeEnum.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/models/enums/AppErrorCodeEnum.java index 33136a9..8ba476a 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/models/enums/AppErrorCodeEnum.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/models/enums/AppErrorCodeEnum.java @@ -2,7 +2,7 @@ import lombok.Getter; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; /** * Enumeration for application error codes and messages diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index 5465738..26135df 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -4,8 +4,8 @@ import io.quarkus.panache.common.Page; import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; +import jakarta.enterprise.context.ApplicationScoped; -import javax.enterprise.context.ApplicationScoped; import java.time.LocalDate; import java.util.List; diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/resources/Generic.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/resources/Generic.java index c348423..3cafa3e 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/resources/Generic.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/resources/Generic.java @@ -8,12 +8,12 @@ import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; import org.eclipse.microprofile.openapi.annotations.responses.APIResponses; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriBuilder; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriBuilder; @Path("") @Produces(value = MediaType.APPLICATION_JSON) 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 b1fae83..0cf9c70 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 @@ -1,5 +1,6 @@ package it.gov.pagopa.gpd.payments.pull.resources; +import io.quarkus.hibernate.reactive.panache.common.WithSession; import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.unchecked.Unchecked; import it.gov.pagopa.gpd.payments.pull.config.Logged; @@ -22,19 +23,19 @@ 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.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 jakarta.inject.Inject; +import jakarta.validation.Valid; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.Positive; +import jakarta.ws.rs.DefaultValue; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.HeaderParam; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import java.time.LocalDate; import java.util.HashMap; import java.util.List; @@ -88,6 +89,7 @@ public class PaymentNotices { @GET @Path("/v1") @Logged + @WithSession public Uni getPaymentNotices( @Parameter(description = "Tax code to use for retrieving notices", required = true) @HeaderParam("x-tax-code") String taxCode, 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 add06ec..d5dc4d3 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 @@ -2,23 +2,21 @@ import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.unchecked.Unchecked; -import it.gov.pagopa.gpd.payments.pull.exception.AppErrorException; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.mapper.PaymentNoticeMapper; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; import it.gov.pagopa.gpd.payments.pull.models.enums.AppErrorCodeEnum; import it.gov.pagopa.gpd.payments.pull.repository.PaymentPositionRepository; import it.gov.pagopa.gpd.payments.pull.service.PaymentNoticesService; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.eclipse.microprofile.config.inject.ConfigProperty; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; import java.time.LocalDate; import java.util.List; - @ApplicationScoped public class PaymentNoticesServiceImpl implements PaymentNoticesService { diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/OpenApiGenerationTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/OpenApiGenerationTest.java index 4528b3c..f9c2274 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/OpenApiGenerationTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/OpenApiGenerationTest.java @@ -32,6 +32,5 @@ void swaggerSpringPlugin() throws Exception { Path basePath = Paths.get("openapi/"); Files.createDirectories(basePath); Files.write(basePath.resolve("openapi.json"), formatted.getBytes()); - } } diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java index 2c3cad5..7110cab 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java @@ -1,34 +1,48 @@ package it.gov.pagopa.gpd.payments.pull.repository; +import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.vertx.RunOnVertxContext; +import io.quarkus.test.vertx.UniAsserter; +import io.smallrye.mutiny.Uni; +import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; -import javax.inject.Inject; +import java.util.Collections; +import java.util.List; import static it.gov.pagopa.gpd.payments.pull.Constants.DUE_DATE; import static it.gov.pagopa.gpd.payments.pull.Constants.FISCAL_CODE; -import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; @QuarkusTest class PaymentPositionRepositoryTest { - @Inject + @InjectMock PaymentPositionRepository paymentPositionRepository; @Test - public void findNoticesOnRepositoryWithoutDueDate() { - assertDoesNotThrow(() -> { - paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( - FISCAL_CODE, null, 50, 0); - }); + @RunOnVertxContext + void findNoticesOnRepositoryWithoutDueDate(UniAsserter asserter) { + asserter.execute(() -> Mockito.when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( + FISCAL_CODE, null, 50, 0)) + .thenReturn(Uni.createFrom().item(Collections.emptyList()))); + + asserter.assertThat(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( + FISCAL_CODE, null, 50, 0), List::isEmpty); } @Test - public void findNoticesOnRepositoryWithDueDate() { - assertDoesNotThrow(() -> { - paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( - FISCAL_CODE, DUE_DATE, 50, 0); - }); + @RunOnVertxContext + void findNoticesOnRepositoryWithDueDate(UniAsserter asserter) { + List paymentPosition = Collections.singletonList(PaymentPosition.builder().iupd("test-with-data").build()); + + asserter.execute(() -> Mockito.when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( + FISCAL_CODE, DUE_DATE, 50, 0)) + .thenReturn(Uni.createFrom().item(paymentPosition))); + + asserter.assertEquals(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( + FISCAL_CODE, DUE_DATE, 50, 0), paymentPosition); } } \ No newline at end of file diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/GenericTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/GenericTest.java index bbbe0bb..0d15f20 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/GenericTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/GenericTest.java @@ -4,7 +4,7 @@ import io.quarkus.test.junit.QuarkusTest; import org.junit.jupiter.api.Test; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MediaType; import static io.restassured.RestAssured.given; @@ -12,7 +12,7 @@ class GenericTest { @Test - public void info(){ + void info(){ given() .when().get("/info") .then() @@ -21,7 +21,7 @@ public void info(){ } @Test - public void home(){ + void home(){ given() .when().get("") .then() diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java index 7e8d256..4a31ae8 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java @@ -2,8 +2,8 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.mockito.InjectMock; import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.models.ErrorResponse; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; @@ -17,8 +17,8 @@ import static io.restassured.RestAssured.given; import static it.gov.pagopa.gpd.payments.pull.Constants.DUE_DATE; import static it.gov.pagopa.gpd.payments.pull.Constants.FISCAL_CODE; -import static javax.ws.rs.core.Response.Status.BAD_REQUEST; -import static javax.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; +import static jakarta.ws.rs.core.Response.Status.BAD_REQUEST; +import static jakarta.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.Mockito.doReturn; @@ -30,7 +30,7 @@ class PaymentNoticesTest { private static final String INVALID_DUE_DATE = "2024-04-21A"; private static final String INVALID_FISCAL_CODE = "tooShort"; private final ObjectMapper objectMapper = new ObjectMapper(); - @InjectMock(convertScopes = true) + @InjectMock private PaymentNoticesService paymentNoticesService; @Test diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java index 638cec2..fe32cb7 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java @@ -1,21 +1,20 @@ package it.gov.pagopa.gpd.payments.pull.service.impl; +import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.junit.mockito.InjectMock; import io.smallrye.mutiny.CompositeException; import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.entity.PaymentOption; import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; -import it.gov.pagopa.gpd.payments.pull.entity.Transfer; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; import it.gov.pagopa.gpd.payments.pull.models.enums.AppErrorCodeEnum; import it.gov.pagopa.gpd.payments.pull.models.enums.DebtPositionStatus; import it.gov.pagopa.gpd.payments.pull.models.enums.Type; import it.gov.pagopa.gpd.payments.pull.repository.PaymentPositionRepository; +import jakarta.inject.Inject; import org.junit.jupiter.api.Test; -import javax.inject.Inject; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; @@ -24,14 +23,17 @@ import static it.gov.pagopa.gpd.payments.pull.Constants.DUE_DATE; import static it.gov.pagopa.gpd.payments.pull.Constants.FISCAL_CODE; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; @QuarkusTest class PaymentNoticesServiceImplTest { - @InjectMock(convertScopes = true) + @InjectMock PaymentPositionRepository paymentPositionRepository; @Inject From 1cd22893edd2e3639ff6fd2b66bddadffdfea438 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Tue, 15 Oct 2024 07:39:34 +0000 Subject: [PATCH 23/53] Bump to version 1.1.3-10-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 4 ++-- pom.xml | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 5306dc6..e78cee2 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.33.0 -appVersion: 1.1.3-9-config-performance-test +version: 0.34.0 +appVersion: 1.1.3-10-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 94415e2..352b1ca 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.3-9-config-performance-test" + tag: "1.1.3-10-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index ed2a763..3d4d886 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.3-9-config-performance-test" + tag: "1.1.3-10-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 9f0778f..50d6197 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.3-9-config-performance-test" + tag: "1.1.3-10-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 51cfc0f..be35ad2 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-9-config-performance-test" + "version": "1.1.3-10-config-performance-test" }, "servers": [ { @@ -502,4 +502,4 @@ } } } -} \ No newline at end of file +} diff --git a/pom.xml b/pom.xml index 17d2434..49010e6 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-9-config-performance-test + 1.1.3-10-config-performance-test 0.8.7 From 8c19a530d9efbbf1d9a75f14755b48d9b4601cb0 Mon Sep 17 00:00:00 2001 From: giomella Date: Tue, 15 Oct 2024 11:07:26 +0200 Subject: [PATCH 24/53] use named query --- .../payments/pull/entity/PaymentOption.java | 3 ++- .../pull/entity/PaymentOptionMetadata.java | 16 +++++++++--- .../payments/pull/entity/PaymentPosition.java | 26 ++++++++++++++++++- .../gpd/payments/pull/entity/Transfer.java | 3 ++- .../pull/entity/TransferMetadata.java | 3 ++- .../impl/PaymentNoticesServiceImpl.java | 23 +++++++++------- 6 files changed, 58 insertions(+), 16 deletions(-) diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java index 7af88be..f0f87e3 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; import it.gov.pagopa.gpd.payments.pull.models.enums.PaymentOptionStatus; import lombok.*; @@ -23,7 +24,7 @@ schema = "apd" ) @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@paymentOptionId") -public class PaymentOption implements Serializable { +public class PaymentOption extends PanacheEntityBase implements Serializable { /** * generated serialVersionUID diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java index 420c3e1..cb302fe 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java @@ -2,13 +2,23 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import jakarta.persistence.*; -import jakarta.validation.constraints.NotNull; import java.io.Serializable; @Table( @@ -20,7 +30,7 @@ @Entity @Builder @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@paymentOptionMetadataId") -public class PaymentOptionMetadata implements Serializable { +public class PaymentOptionMetadata extends PanacheEntityBase implements Serializable { /** diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java index 5507140..afc22be 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java @@ -3,12 +3,17 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; +import io.quarkus.panache.common.Page; +import io.quarkus.panache.common.Parameters; +import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.models.enums.DebtPositionStatus; import it.gov.pagopa.gpd.payments.pull.models.enums.Type; import lombok.*; import jakarta.persistence.*; import jakarta.validation.constraints.NotNull; + import java.io.Serializable; import java.time.LocalDate; import java.time.LocalDateTime; @@ -24,7 +29,11 @@ @Entity @Table(name = "payment_position", schema = "apd") @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@paymentPositionId") -public class PaymentPosition implements Serializable { +@NamedQueries({ + @NamedQuery(name = "PaymentPosition.getValidByTaxCode", query = "from PaymentPosition AS ppos Where ppos.fiscalCode = :fiscalCode AND ppos.status IN ('VALID', 'PARTIALLY_PAID') AND ppos.pull = true"), + @NamedQuery(name = "PaymentPosition.getValidByTaxCodeAndDueDate", query = "from PaymentPosition AS ppos Where ppos.fiscalCode = :fiscalCode AND ppos.status IN ('VALID', 'PARTIALLY_PAID') AND ppos.pull = true AND EXISTS (from ppos.paymentOption AS po WHERE po.dueDate >= :dueDate)"), +}) +public class PaymentPosition extends PanacheEntityBase implements Serializable { /** @@ -114,4 +123,19 @@ public class PaymentPosition implements Serializable { mappedBy = "paymentPosition", cascade = CascadeType.ALL, orphanRemoval = true) private List paymentOption = new ArrayList<>(); + public static Uni> findValidByTaxCode( + String taxCode, Integer limit, Integer page + ) { + return find("#PaymentPosition.getValidByTaxCode", Parameters.with("fiscalCode", taxCode)) + .page(Page.of(page, limit)) + .list(); + } + + public static Uni> findValidByTaxCodeAndDueDate( + String taxCode, LocalDate dueDate, Integer limit, Integer page + ) { + return find("#PaymentPosition.getValidByTaxCodeAndDueDate", Parameters.with("fiscalCode", taxCode).and("dueDate", dueDate)) + .page(Page.of(page, limit)) + .list(); + } } diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java index 902df42..f73247f 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; import it.gov.pagopa.gpd.payments.pull.models.enums.TransferStatus; import lombok.*; @@ -21,7 +22,7 @@ @Entity @Table(name = "transfer", schema = "apd") @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@transferId") -public class Transfer implements Serializable { +public class Transfer extends PanacheEntityBase implements Serializable { /** * generated serialVersionUID diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java index bb63618..776d0be 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; +import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -21,7 +22,7 @@ @Entity @Builder @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@transferMetadataId") -public class TransferMetadata implements Serializable { +public class TransferMetadata extends PanacheEntityBase implements Serializable { /** * generated serialVersionUID 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 d5dc4d3..4da82de 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 @@ -2,17 +2,14 @@ import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.unchecked.Unchecked; +import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.mapper.PaymentNoticeMapper; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; import it.gov.pagopa.gpd.payments.pull.models.enums.AppErrorCodeEnum; -import it.gov.pagopa.gpd.payments.pull.repository.PaymentPositionRepository; import it.gov.pagopa.gpd.payments.pull.service.PaymentNoticesService; import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; import org.eclipse.microprofile.config.inject.ConfigProperty; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import java.time.LocalDate; import java.util.List; @@ -20,17 +17,13 @@ @ApplicationScoped public class PaymentNoticesServiceImpl implements PaymentNoticesService { - Logger logger = LoggerFactory.getLogger(PaymentNoticesServiceImpl.class); - - @Inject - PaymentPositionRepository paymentPositionRepository; @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) + return findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page) .onFailure().invoke(Unchecked.consumer(throwable -> { throw buildPaymentNoticeException(AppErrorCodeEnum.PPL_700, throwable); })) @@ -43,6 +36,18 @@ public Uni> getPaymentNotices(String taxCode, LocalDate dueD })); } + private Uni> findPaymentPositionsByTaxCodeAndDueDate( + String taxCode, + LocalDate dueDate, + Integer limit, + Integer page + ) { + if (dueDate == null) { + return PaymentPosition.findValidByTaxCode(taxCode, limit, page); + } + return PaymentPosition.findValidByTaxCodeAndDueDate(taxCode, dueDate, limit, page); + } + private PaymentNoticeException buildPaymentNoticeException(AppErrorCodeEnum errorCodeEnum, Throwable throwable) { return new PaymentNoticeException(errorCodeEnum, String.format("Exception thrown during data recovery: %s", throwable), throwable); } From c620b342d7f5022017437b4f291951113bec2a6b Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Tue, 15 Oct 2024 09:12:35 +0000 Subject: [PATCH 25/53] Bump to version 1.1.3-11-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index e78cee2..d2d4ff8 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.34.0 -appVersion: 1.1.3-10-config-performance-test +version: 0.35.0 +appVersion: 1.1.3-11-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 352b1ca..f52b241 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.3-10-config-performance-test" + tag: "1.1.3-11-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 3d4d886..b4379e8 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.3-10-config-performance-test" + tag: "1.1.3-11-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 50d6197..7ce4183 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.3-10-config-performance-test" + tag: "1.1.3-11-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index be35ad2..aa0bbac 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.3-10-config-performance-test" + "version": "1.1.3-11-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 49010e6..79f8154 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.3-10-config-performance-test + 1.1.3-11-config-performance-test 0.8.7 From 591ffa3e52eff24323e9c984af0c459bb71371e7 Mon Sep 17 00:00:00 2001 From: giomella Date: Tue, 15 Oct 2024 12:52:52 +0200 Subject: [PATCH 26/53] rollback named query --- .../payments/pull/entity/PaymentOption.java | 27 +++++++++-- .../pull/entity/PaymentOptionMetadata.java | 3 +- .../payments/pull/entity/PaymentPosition.java | 47 ++++++++----------- .../gpd/payments/pull/entity/Transfer.java | 23 +++++++-- .../pull/entity/TransferMetadata.java | 16 +++++-- .../repository/PaymentPositionRepository.java | 1 + .../impl/PaymentNoticesServiceImpl.java | 19 ++------ 7 files changed, 78 insertions(+), 58 deletions(-) diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java index f0f87e3..c113d3b 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOption.java @@ -2,12 +2,29 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; import it.gov.pagopa.gpd.payments.pull.models.enums.PaymentOptionStatus; -import lombok.*; - -import jakarta.persistence.*; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.Table; +import jakarta.persistence.Transient; import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + import java.io.Serializable; import java.time.LocalDateTime; import java.util.ArrayList; @@ -24,7 +41,7 @@ schema = "apd" ) @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@paymentOptionId") -public class PaymentOption extends PanacheEntityBase implements Serializable { +public class PaymentOption implements Serializable { /** * generated serialVersionUID diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java index cb302fe..61b4fad 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentOptionMetadata.java @@ -2,7 +2,6 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; import jakarta.persistence.CascadeType; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -30,7 +29,7 @@ @Entity @Builder @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@paymentOptionMetadataId") -public class PaymentOptionMetadata extends PanacheEntityBase implements Serializable { +public class PaymentOptionMetadata implements Serializable { /** diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java index afc22be..cedde0c 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/PaymentPosition.java @@ -3,16 +3,27 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; -import io.quarkus.panache.common.Page; -import io.quarkus.panache.common.Parameters; -import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.models.enums.DebtPositionStatus; import it.gov.pagopa.gpd.payments.pull.models.enums.Type; -import lombok.*; - -import jakarta.persistence.*; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.OneToMany; +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.Table; +import jakarta.persistence.Version; import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; import java.io.Serializable; import java.time.LocalDate; @@ -29,11 +40,7 @@ @Entity @Table(name = "payment_position", schema = "apd") @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@paymentPositionId") -@NamedQueries({ - @NamedQuery(name = "PaymentPosition.getValidByTaxCode", query = "from PaymentPosition AS ppos Where ppos.fiscalCode = :fiscalCode AND ppos.status IN ('VALID', 'PARTIALLY_PAID') AND ppos.pull = true"), - @NamedQuery(name = "PaymentPosition.getValidByTaxCodeAndDueDate", query = "from PaymentPosition AS ppos Where ppos.fiscalCode = :fiscalCode AND ppos.status IN ('VALID', 'PARTIALLY_PAID') AND ppos.pull = true AND EXISTS (from ppos.paymentOption AS po WHERE po.dueDate >= :dueDate)"), -}) -public class PaymentPosition extends PanacheEntityBase implements Serializable { +public class PaymentPosition implements Serializable { /** @@ -122,20 +129,4 @@ public class PaymentPosition extends PanacheEntityBase implements Serializable { @OneToMany(targetEntity = PaymentOption.class, fetch = FetchType.EAGER, mappedBy = "paymentPosition", cascade = CascadeType.ALL, orphanRemoval = true) private List paymentOption = new ArrayList<>(); - - public static Uni> findValidByTaxCode( - String taxCode, Integer limit, Integer page - ) { - return find("#PaymentPosition.getValidByTaxCode", Parameters.with("fiscalCode", taxCode)) - .page(Page.of(page, limit)) - .list(); - } - - public static Uni> findValidByTaxCodeAndDueDate( - String taxCode, LocalDate dueDate, Integer limit, Integer page - ) { - return find("#PaymentPosition.getValidByTaxCodeAndDueDate", Parameters.with("fiscalCode", taxCode).and("dueDate", dueDate)) - .page(Page.of(page, limit)) - .list(); - } } diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java index f73247f..edfb70f 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/Transfer.java @@ -2,12 +2,25 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; import it.gov.pagopa.gpd.payments.pull.models.enums.TransferStatus; -import lombok.*; - -import jakarta.persistence.*; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.OneToMany; +import jakarta.persistence.Table; import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + import java.io.Serializable; import java.time.LocalDateTime; import java.util.ArrayList; @@ -22,7 +35,7 @@ @Entity @Table(name = "transfer", schema = "apd") @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@transferId") -public class Transfer extends PanacheEntityBase implements Serializable { +public class Transfer implements Serializable { /** * generated serialVersionUID diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java index 776d0be..e2730db 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/entity/TransferMetadata.java @@ -2,14 +2,22 @@ import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; -import io.quarkus.hibernate.reactive.panache.PanacheEntityBase; +import jakarta.persistence.CascadeType; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.SequenceGenerator; +import jakarta.persistence.Table; +import jakarta.validation.constraints.NotNull; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import jakarta.persistence.*; -import jakarta.validation.constraints.NotNull; import java.io.Serializable; @Table( @@ -22,7 +30,7 @@ @Entity @Builder @JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@transferMetadataId") -public class TransferMetadata extends PanacheEntityBase implements Serializable { +public class TransferMetadata implements Serializable { /** * generated serialVersionUID diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index 26135df..a0a9625 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -34,6 +34,7 @@ public Uni> findPaymentPositionsByTaxCodeAndDueDate( String taxCode, LocalDate dueDate, Integer limit, Integer page ) { if (dueDate == null) { + return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode) .page(Page.of(page, limit)) .list(); 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 4da82de..7f1ae80 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 @@ -2,13 +2,14 @@ import io.smallrye.mutiny.Uni; import io.smallrye.mutiny.unchecked.Unchecked; -import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.mapper.PaymentNoticeMapper; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; import it.gov.pagopa.gpd.payments.pull.models.enums.AppErrorCodeEnum; +import it.gov.pagopa.gpd.payments.pull.repository.PaymentPositionRepository; import it.gov.pagopa.gpd.payments.pull.service.PaymentNoticesService; import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.eclipse.microprofile.config.inject.ConfigProperty; import java.time.LocalDate; @@ -17,13 +18,15 @@ @ApplicationScoped public class PaymentNoticesServiceImpl implements PaymentNoticesService { + @Inject + PaymentPositionRepository paymentPositionRepository; @ConfigProperty(name = "app.payment_pull.keep_aca", defaultValue = "true") Boolean keepAca; @Override public Uni> getPaymentNotices(String taxCode, LocalDate dueDate, Integer limit, Integer page) { - return findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page) + return this.paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page) .onFailure().invoke(Unchecked.consumer(throwable -> { throw buildPaymentNoticeException(AppErrorCodeEnum.PPL_700, throwable); })) @@ -36,18 +39,6 @@ public Uni> getPaymentNotices(String taxCode, LocalDate dueD })); } - private Uni> findPaymentPositionsByTaxCodeAndDueDate( - String taxCode, - LocalDate dueDate, - Integer limit, - Integer page - ) { - if (dueDate == null) { - return PaymentPosition.findValidByTaxCode(taxCode, limit, page); - } - return PaymentPosition.findValidByTaxCodeAndDueDate(taxCode, dueDate, limit, page); - } - private PaymentNoticeException buildPaymentNoticeException(AppErrorCodeEnum errorCodeEnum, Throwable throwable) { return new PaymentNoticeException(errorCodeEnum, String.format("Exception thrown during data recovery: %s", throwable), throwable); } From f620baa30740fe0d6b43a3b82eaab81df7c08958 Mon Sep 17 00:00:00 2001 From: giomella Date: Tue, 15 Oct 2024 12:53:04 +0200 Subject: [PATCH 27/53] update constant test --- performance-test/src/test-types/constant.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/performance-test/src/test-types/constant.json b/performance-test/src/test-types/constant.json index eeb5a58..a1fc27c 100644 --- a/performance-test/src/test-types/constant.json +++ b/performance-test/src/test-types/constant.json @@ -13,7 +13,7 @@ "scenarios": { "contacts": { "executor": "constant-arrival-rate", - "duration": "1m", + "duration": "5m", "rate": 100, "timeUnit": "1s", "preAllocatedVUs": 100, From f383f0e07b8a4ccfff634c5c8b518ce0fcfa5c0c Mon Sep 17 00:00:00 2001 From: giomella Date: Wed, 16 Oct 2024 11:33:37 +0200 Subject: [PATCH 28/53] fix pool name --- .devops/performance-test-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devops/performance-test-pipelines.yml b/.devops/performance-test-pipelines.yml index cc458b7..379e054 100644 --- a/.devops/performance-test-pipelines.yml +++ b/.devops/performance-test-pipelines.yml @@ -32,7 +32,7 @@ variables: poolImage: 'pagopa-uat-loadtest-linux' API_SUBSCRIPTION_KEY: "$(UAT_API_SUBSCRIPTION_KEY)" ${{ if eq(parameters['ENVIRONMENT'], 'prod') }}: - poolImage: 'pagopa-prod-loadtest-linux' + poolImage: 'pagopa-uat-loadtest-linux' API_SUBSCRIPTION_KEY: "$(PROD_API_SUBSCRIPTION_KEY)" pool: From 554d31491053cada27685c8eb34734805a476e7d Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Wed, 16 Oct 2024 09:36:32 +0000 Subject: [PATCH 29/53] Bump to version 1.1.5-1-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index e16c75e..8f71752 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.26.0 -appVersion: 1.1.5 +version: 0.27.0 +appVersion: 1.1.5-1-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 4033b70..5e3218a 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.5" + tag: "1.1.5-1-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 9318f91..bd4601a 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.5" + tag: "1.1.5-1-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 345f932..41d9668 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.5" + tag: "1.1.5-1-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 0ab6657..88a669b 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.5" + "version": "1.1.5-1-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 8adc423..4ec6459 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.5 + 1.1.5-1-config-performance-test 0.8.7 From 376dfcfc58b8700d02fae8ec5742e1e142bc7c5f Mon Sep 17 00:00:00 2001 From: giomella Date: Wed, 16 Oct 2024 14:58:00 +0200 Subject: [PATCH 30/53] remove reactive code --- helm/values-uat.yaml | 2 +- pom.xml | 8 +-- .../repository/PaymentPositionRepository.java | 5 +- .../pull/resources/PaymentNotices.java | 59 +++++++++---------- .../pull/service/PaymentNoticesService.java | 3 +- .../impl/PaymentNoticesServiceImpl.java | 23 +++----- src/main/resources/application.properties | 5 +- 7 files changed, 45 insertions(+), 60 deletions(-) diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 41d9668..854d402 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -79,7 +79,7 @@ microservice-chart: OTEL_LOGS_EXPORTER: none OTEL_TRACES_SAMPLER: "always_on" JAVA_TOOL_OPTIONS: "-javaagent:/deployments/jmx_prometheus_javaagent-0.19.0.jar=12345:/deployments/config.yaml -javaagent:/deployments/opentelemetry-javaagent.jar -javaagent:/deployments/applicationinsights-agent.jar" - GPD_DB_URL: "vertx-reactive:postgresql://gpd-db.u.internal.postgresql.pagopa.it:6432/apd?sslmode=require&prepareThreshold=0&tcpKeepAlive=true" + GPD_DB_URL: "jdbc:postgresql://gpd-db.u.internal.postgresql.pagopa.it:6432/apd?sslmode=require&prepareThreshold=0&tcpKeepAlive=true" envFieldRef: envSecret: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-u-connection-string' diff --git a/pom.xml b/pom.xml index 4ec6459..8d3641f 100644 --- a/pom.xml +++ b/pom.xml @@ -65,16 +65,16 @@ quarkus-rest-jackson - + io.quarkus - quarkus-hibernate-reactive-panache + quarkus-hibernate-orm-panache - + io.quarkus - quarkus-reactive-pg-client + quarkus-jdbc-postgresql diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index a0a9625..7b9fae5 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -1,8 +1,7 @@ package it.gov.pagopa.gpd.payments.pull.repository; -import io.quarkus.hibernate.reactive.panache.PanacheRepository; +import io.quarkus.hibernate.orm.panache.PanacheRepository; import io.quarkus.panache.common.Page; -import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; import jakarta.enterprise.context.ApplicationScoped; @@ -30,7 +29,7 @@ public class PaymentPositionRepository implements PanacheRepository> findPaymentPositionsByTaxCodeAndDueDate( + public List findPaymentPositionsByTaxCodeAndDueDate( String taxCode, LocalDate dueDate, Integer limit, Integer page ) { if (dueDate == null) { 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 0cf9c70..09a050d 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 @@ -1,8 +1,5 @@ package it.gov.pagopa.gpd.payments.pull.resources; -import io.quarkus.hibernate.reactive.panache.common.WithSession; -import io.smallrye.mutiny.Uni; -import io.smallrye.mutiny.unchecked.Unchecked; import it.gov.pagopa.gpd.payments.pull.config.Logged; import it.gov.pagopa.gpd.payments.pull.exception.AppErrorException; import it.gov.pagopa.gpd.payments.pull.exception.InvalidTaxCodeHeaderException; @@ -10,19 +7,6 @@ import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; import it.gov.pagopa.gpd.payments.pull.models.enums.AppErrorCodeEnum; import it.gov.pagopa.gpd.payments.pull.service.PaymentNoticesService; -import org.eclipse.microprofile.openapi.annotations.Operation; -import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; -import org.eclipse.microprofile.openapi.annotations.media.Content; -import org.eclipse.microprofile.openapi.annotations.media.Schema; -import org.eclipse.microprofile.openapi.annotations.parameters.Parameter; -import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; -import org.eclipse.microprofile.openapi.annotations.responses.APIResponses; -import org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement; -import org.eclipse.microprofile.openapi.annotations.tags.Tag; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.MDC; - import jakarta.inject.Inject; import jakarta.validation.Valid; import jakarta.validation.constraints.Max; @@ -36,6 +20,19 @@ import jakarta.ws.rs.QueryParam; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; +import org.eclipse.microprofile.openapi.annotations.Operation; +import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; +import org.eclipse.microprofile.openapi.annotations.media.Content; +import org.eclipse.microprofile.openapi.annotations.media.Schema; +import org.eclipse.microprofile.openapi.annotations.parameters.Parameter; +import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; +import org.eclipse.microprofile.openapi.annotations.responses.APIResponses; +import org.eclipse.microprofile.openapi.annotations.security.SecurityRequirement; +import org.eclipse.microprofile.openapi.annotations.tags.Tag; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.MDC; + import java.time.LocalDate; import java.util.HashMap; import java.util.List; @@ -89,8 +86,7 @@ public class PaymentNotices { @GET @Path("/v1") @Logged - @WithSession - public Uni getPaymentNotices( + public Response getPaymentNotices( @Parameter(description = "Tax code to use for retrieving notices", required = true) @HeaderParam("x-tax-code") String taxCode, @Parameter(description = "Optional date to filter paymentNotices (if provided use the format yyyy-MM-dd)") @@ -123,19 +119,18 @@ public Uni getPaymentNotices( // replace new line and tab from user input to avoid log injection taxCode = taxCode.replaceAll(REGEX, REPLACEMENT); - Uni> paymentNoticesUni = paymentNoticeService.getPaymentNotices(taxCode, dueDate, limit, page); - return paymentNoticesUni.onFailure().invoke(Unchecked.consumer(error -> { - if (error instanceof PaymentNoticeException ex) - throw new PaymentNoticeException(ex.getErrorCode(), ex.getMessage(), ex.getCause()); - else - throw new AppErrorException(error); - })) - .onItem() - .transform(item -> { - MDC.put("response", mapToJSON(item)); - MDC.put("status", "OK"); - logger.info("Successfully API Invocation getPaymentNotices"); - return Response.ok().entity(item).build(); - }); + try { + List paymentNotices = this.paymentNoticeService.getPaymentNotices(taxCode, dueDate, limit, page); + MDC.put("response", mapToJSON(paymentNotices)); + MDC.put("status", "OK"); + logger.info("Successfully API Invocation getPaymentNotices"); + return Response.ok().entity(paymentNotices).build(); + } catch (Exception e) { + if (e instanceof PaymentNoticeException ex) { + throw new PaymentNoticeException(ex.getErrorCode(), ex.getMessage(), ex.getCause()); + } else { + throw new AppErrorException(e); + } + } } } diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/service/PaymentNoticesService.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/service/PaymentNoticesService.java index 0df5dd5..0c9a92e 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/service/PaymentNoticesService.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/service/PaymentNoticesService.java @@ -1,6 +1,5 @@ package it.gov.pagopa.gpd.payments.pull.service; -import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; import java.time.LocalDate; @@ -21,6 +20,6 @@ public interface PaymentNoticesService { * @param page page number * @return Uni stream containing a list of notices */ - Uni> getPaymentNotices(String taxCode, LocalDate dueDate, Integer limit, Integer page); + List getPaymentNotices(String taxCode, LocalDate dueDate, Integer limit, Integer page); } 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 7f1ae80..6ef58ca 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 @@ -1,7 +1,5 @@ package it.gov.pagopa.gpd.payments.pull.service.impl; -import io.smallrye.mutiny.Uni; -import io.smallrye.mutiny.unchecked.Unchecked; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.mapper.PaymentNoticeMapper; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; @@ -25,18 +23,15 @@ public class PaymentNoticesServiceImpl implements PaymentNoticesService { Boolean keepAca; @Override - public Uni> getPaymentNotices(String taxCode, LocalDate dueDate, Integer limit, Integer page) { - return this.paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page) - .onFailure().invoke(Unchecked.consumer(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 buildPaymentNoticeException(AppErrorCodeEnum.PPL_800, throwable); - })); + public List getPaymentNotices(String taxCode, LocalDate dueDate, Integer limit, Integer page) { + try { + return this.paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page).parallelStream() + .filter(item -> keepAca || !item.getIupd().contains("ACA")) + .map(PaymentNoticeMapper::manNotice) + .toList(); + } catch (Exception e) { + throw buildPaymentNoticeException(AppErrorCodeEnum.PPL_700, e); + } } private PaymentNoticeException buildPaymentNoticeException(AppErrorCodeEnum errorCodeEnum, Throwable throwable) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index fbc7f4e..5d7b324 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -50,10 +50,7 @@ quarkus.smallrye-openapi.path=/openapi.json quarkus.datasource.db-kind=postgresql quarkus.datasource.username=${GPD_DB_USERNAME} quarkus.datasource.password=${GPD_DB_PASSWORD} -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 +quarkus.datasource.jdbc.url=${GPD_DB_URL} ################ ## CUSTOM ## From d99e7ad39639033094253c03c7f819d3ce844ab2 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Wed, 16 Oct 2024 12:59:45 +0000 Subject: [PATCH 31/53] Bump to version 1.1.5-2-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 8f71752..96ed4dd 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.27.0 -appVersion: 1.1.5-1-config-performance-test +version: 0.28.0 +appVersion: 1.1.5-2-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 5e3218a..016de39 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.5-1-config-performance-test" + tag: "1.1.5-2-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index bd4601a..4185384 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.5-1-config-performance-test" + tag: "1.1.5-2-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 854d402..8c9ebbf 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.5-1-config-performance-test" + tag: "1.1.5-2-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 88a669b..1b7c542 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.5-1-config-performance-test" + "version": "1.1.5-2-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 8d3641f..37bfc95 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.5-1-config-performance-test + 1.1.5-2-config-performance-test 0.8.7 From 860731a9a4f88bc5a6fa798d5d5b27de7b992b17 Mon Sep 17 00:00:00 2001 From: giomella Date: Wed, 16 Oct 2024 15:09:54 +0200 Subject: [PATCH 32/53] fix compilation error on tests --- .../PaymentPositionRepositoryTest.java | 46 +++++++++---------- .../impl/PaymentNoticesServiceImplTest.java | 9 ++-- 2 files changed, 26 insertions(+), 29 deletions(-) diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java index 7110cab..7a104e4 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java @@ -21,28 +21,28 @@ class PaymentPositionRepositoryTest { @InjectMock PaymentPositionRepository paymentPositionRepository; - @Test - @RunOnVertxContext - void findNoticesOnRepositoryWithoutDueDate(UniAsserter asserter) { - asserter.execute(() -> Mockito.when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( - FISCAL_CODE, null, 50, 0)) - .thenReturn(Uni.createFrom().item(Collections.emptyList()))); - - asserter.assertThat(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( - FISCAL_CODE, null, 50, 0), List::isEmpty); - } - - @Test - @RunOnVertxContext - void findNoticesOnRepositoryWithDueDate(UniAsserter asserter) { - List paymentPosition = Collections.singletonList(PaymentPosition.builder().iupd("test-with-data").build()); - - asserter.execute(() -> Mockito.when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( - FISCAL_CODE, DUE_DATE, 50, 0)) - .thenReturn(Uni.createFrom().item(paymentPosition))); - - asserter.assertEquals(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( - FISCAL_CODE, DUE_DATE, 50, 0), paymentPosition); - } +// @Test +// @RunOnVertxContext +// void findNoticesOnRepositoryWithoutDueDate(UniAsserter asserter) { +// asserter.execute(() -> Mockito.when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( +// FISCAL_CODE, null, 50, 0)) +// .thenReturn(Uni.createFrom().item(Collections.emptyList()))); +// +// asserter.assertThat(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( +// FISCAL_CODE, null, 50, 0), List::isEmpty); +// } +// +// @Test +// @RunOnVertxContext +// void findNoticesOnRepositoryWithDueDate(UniAsserter asserter) { +// List paymentPosition = Collections.singletonList(PaymentPosition.builder().iupd("test-with-data").build()); +// +// asserter.execute(() -> Mockito.when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( +// FISCAL_CODE, DUE_DATE, 50, 0)) +// .thenReturn(Uni.createFrom().item(paymentPosition))); +// +// asserter.assertEquals(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( +// FISCAL_CODE, DUE_DATE, 50, 0), paymentPosition); +// } } \ No newline at end of file diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java index fe32cb7..46930bf 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java @@ -47,8 +47,7 @@ void getPaymentNoticesShouldReturnOK() { .when(paymentPositionRepository).findPaymentPositionsByTaxCodeAndDueDate (FISCAL_CODE, DUE_DATE, 50, 0); List response = assertDoesNotThrow(() -> - paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)) - .await().indefinitely(); + paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); assertNotNull(response); assertEquals(2, response.size()); assertEquals("iupd", response.get(0).getIupd()); @@ -67,8 +66,7 @@ void getPaymentNoticesShouldReturnExceptionOnRepositoryError() { (FISCAL_CODE, DUE_DATE, 50, 0); CompositeException paymentNoticeException = assertThrows(CompositeException.class, () -> - paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0) - .await().indefinitely()); + paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); List causes = paymentNoticeException.getCauses(); assertEquals(AppErrorCodeEnum.PPL_800, ((PaymentNoticeException) causes.get(causes.size()-1)).getErrorCode()); } @@ -82,8 +80,7 @@ void getPaymentNoticesShouldReturnExceptionOnMappingError() { (FISCAL_CODE, DUE_DATE, 50, 0); CompositeException paymentNoticeException = assertThrows(CompositeException.class, () -> - paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0) - .await().indefinitely()); + paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); List causes = paymentNoticeException.getCauses(); assertEquals(AppErrorCodeEnum.PPL_800, ((PaymentNoticeException) causes.get(causes.size()-1)).getErrorCode()); } From 40090f36644344b2b828cace2359dc345479e680 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Wed, 16 Oct 2024 13:11:48 +0000 Subject: [PATCH 33/53] Bump to version 1.1.5-3-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 96ed4dd..e5246fc 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.28.0 -appVersion: 1.1.5-2-config-performance-test +version: 0.29.0 +appVersion: 1.1.5-3-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 016de39..c29af64 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.5-2-config-performance-test" + tag: "1.1.5-3-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 4185384..7d9328f 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.5-2-config-performance-test" + tag: "1.1.5-3-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 8c9ebbf..07be2fa 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.5-2-config-performance-test" + tag: "1.1.5-3-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 1b7c542..704b73c 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.5-2-config-performance-test" + "version": "1.1.5-3-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 37bfc95..376964f 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.5-2-config-performance-test + 1.1.5-3-config-performance-test 0.8.7 From e0b7417b1fa8be841f6de627ad0df9974063d648 Mon Sep 17 00:00:00 2001 From: giomella Date: Wed, 16 Oct 2024 15:33:14 +0200 Subject: [PATCH 34/53] increase replica --- helm/values-prod.yaml | 4 ++-- helm/values-uat.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 4185384..95c46c9 100644 --- a/helm/values-prod.yaml +++ b/helm/values-prod.yaml @@ -52,8 +52,8 @@ microservice-chart: cpu: "600m" autoscaling: enable: true - minReplica: 1 - maxReplica: 1 + minReplica: 3 + maxReplica: 3 pollingInterval: 10 # seconds cooldownPeriod: 50 # seconds triggers: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 8c9ebbf..1e1d307 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -52,8 +52,8 @@ microservice-chart: cpu: "600m" autoscaling: enable: true - minReplica: 1 - maxReplica: 1 + minReplica: 3 + maxReplica: 3 pollingInterval: 10 # seconds cooldownPeriod: 50 # seconds triggers: From 9d25bb93e7092211aaee489abdc827ea61d6b266 Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 18 Oct 2024 10:20:41 +0200 Subject: [PATCH 35/53] increase resource --- helm/values-uat.yaml | 8 ++++---- .../pull/repository/PaymentPositionRepository.java | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 5b8a34d..9b42baa 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -45,15 +45,15 @@ microservice-chart: allowPrivilegeEscalation: false resources: requests: - memory: "512Mi" - cpu: "300m" + memory: "768Mi" + cpu: "600m" limits: memory: "768Mi" cpu: "600m" autoscaling: enable: true - minReplica: 3 - maxReplica: 3 + minReplica: 5 + maxReplica: 5 pollingInterval: 10 # seconds cooldownPeriod: 50 # seconds triggers: diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index 7b9fae5..a77dfbb 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -33,7 +33,6 @@ public List findPaymentPositionsByTaxCodeAndDueDate( String taxCode, LocalDate dueDate, Integer limit, Integer page ) { if (dueDate == null) { - return find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, taxCode) .page(Page.of(page, limit)) .list(); From cf9170d41fccca00976f308b63ceb803dca96b63 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Fri, 18 Oct 2024 08:22:59 +0000 Subject: [PATCH 36/53] Bump to version 1.1.5-4-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index e5246fc..b46e5a3 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.29.0 -appVersion: 1.1.5-3-config-performance-test +version: 0.30.0 +appVersion: 1.1.5-4-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index c29af64..3c89676 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.5-3-config-performance-test" + tag: "1.1.5-4-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 8077d2c..8f61956 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.5-3-config-performance-test" + tag: "1.1.5-4-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 9b42baa..d135d93 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.5-3-config-performance-test" + tag: "1.1.5-4-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 704b73c..8ea1ef2 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.5-3-config-performance-test" + "version": "1.1.5-4-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 376964f..a0697e5 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.5-3-config-performance-test + 1.1.5-4-config-performance-test 0.8.7 From 14b083a876f5d611e7a74c047f2a9b011edd02a8 Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 18 Oct 2024 10:41:38 +0200 Subject: [PATCH 37/53] increase replica --- helm/values-uat.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index d135d93..ee97a34 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -52,8 +52,8 @@ microservice-chart: cpu: "600m" autoscaling: enable: true - minReplica: 5 - maxReplica: 5 + minReplica: 10 + maxReplica: 10 pollingInterval: 10 # seconds cooldownPeriod: 50 # seconds triggers: From d2d0e3eaaa656fff21285dd0974ce49a15f527aa Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Fri, 18 Oct 2024 08:43:01 +0000 Subject: [PATCH 38/53] Bump to version 1.1.5-5-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index b46e5a3..8448c53 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.30.0 -appVersion: 1.1.5-4-config-performance-test +version: 0.31.0 +appVersion: 1.1.5-5-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 3c89676..ec986e8 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.5-4-config-performance-test" + tag: "1.1.5-5-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 8f61956..a8f6a5e 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.5-4-config-performance-test" + tag: "1.1.5-5-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index ee97a34..53ac2c7 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.5-4-config-performance-test" + tag: "1.1.5-5-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index 8ea1ef2..b64d75e 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.5-4-config-performance-test" + "version": "1.1.5-5-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index a0697e5..8e04544 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.5-4-config-performance-test + 1.1.5-5-config-performance-test 0.8.7 From 4f9facb2bc319e1777d1b8e048069be5ee25ed8c Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 18 Oct 2024 11:19:54 +0200 Subject: [PATCH 39/53] decrease cpu --- helm/values-uat.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index ee97a34..5c23067 100644 --- a/helm/values-uat.yaml +++ b/helm/values-uat.yaml @@ -46,10 +46,10 @@ microservice-chart: resources: requests: memory: "768Mi" - cpu: "600m" + cpu: "300m" limits: memory: "768Mi" - cpu: "600m" + cpu: "300m" autoscaling: enable: true minReplica: 10 From b24bd08228c5e1fe5ec6080c27c7772321c6b784 Mon Sep 17 00:00:00 2001 From: pagopa-github-bot Date: Fri, 18 Oct 2024 09:33:28 +0000 Subject: [PATCH 40/53] Bump to version 1.1.5-6-config-performance-test [skip ci] --- helm/Chart.yaml | 4 ++-- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 2 +- helm/values-uat.yaml | 2 +- openapi/openapi.json | 2 +- pom.xml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/helm/Chart.yaml b/helm/Chart.yaml index 8448c53..d2482fd 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.31.0 -appVersion: 1.1.5-5-config-performance-test +version: 0.32.0 +appVersion: 1.1.5-6-config-performance-test dependencies: - name: microservice-chart version: 2.8.0 diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index ec986e8..e26d03d 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.5-5-config-performance-test" + tag: "1.1.5-6-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index a8f6a5e..62a9217 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.5-5-config-performance-test" + tag: "1.1.5-6-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml index 279f49d..6e7a929 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.5-5-config-performance-test" + tag: "1.1.5-6-config-performance-test" pullPolicy: Always livenessProbe: httpGet: diff --git a/openapi/openapi.json b/openapi/openapi.json index b64d75e..ddc107a 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -4,7 +4,7 @@ "title": "pagopa-gpd-payments-pull", "description": "GPD Payments Pull Services", "termsOfService": "https://www.pagopa.gov.it/", - "version": "1.1.5-5-config-performance-test" + "version": "1.1.5-6-config-performance-test" }, "servers": [ { diff --git a/pom.xml b/pom.xml index 8e04544..b765bd6 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ it.gov.pagopa pagopa-gpd-payments-pull PagoPA GPD Payments Pull Services - 1.1.5-5-config-performance-test + 1.1.5-6-config-performance-test 0.8.7 From 4a49e4a9d5160b211e5840f8035b3158790cc7d5 Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 18 Oct 2024 16:32:42 +0200 Subject: [PATCH 41/53] fix test and remove test log --- pom.xml | 5 -- .../exception/mapper/ExceptionMapper.java | 3 +- src/main/resources/application.properties | 1 - .../PaymentPositionRepositoryTest.java | 46 ++++++------------- 4 files changed, 14 insertions(+), 41 deletions(-) diff --git a/pom.xml b/pom.xml index b765bd6..c710a93 100644 --- a/pom.xml +++ b/pom.xml @@ -91,11 +91,6 @@ quarkus-jacoco test - - io.quarkus - quarkus-test-vertx - test - com.fasterxml.jackson.datatype jackson-datatype-jsr310 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 cd6b8f2..69b315c 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 @@ -82,13 +82,12 @@ public Response mapPaymentNoticeException(PaymentNoticeException exception) { .build(); } - @ServerExceptionMapper public Response mapGenericException(Exception exception) { ErrorResponse errorResponse = buildErrorResponse( Response.Status.INTERNAL_SERVER_ERROR, AppErrorCodeEnum.PPL_900, - "Unexpected Error" + exception.getMessage()); + "Unexpected Error"); logger.error(exception.getMessage(), exception); MDC.put(FAULT_CODE, "500"); MDC.put(FAULT_DETAIL, getDetails(exception)); diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 5d7b324..522f189 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -27,7 +27,6 @@ quarkus.log.console.json=true 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} -quarkus.hibernate-orm.log.sql=true #################### ## OPENAPI - SWAGGER diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java index 7a104e4..72c7f1d 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java @@ -1,48 +1,28 @@ package it.gov.pagopa.gpd.payments.pull.repository; -import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; -import io.quarkus.test.vertx.RunOnVertxContext; -import io.quarkus.test.vertx.UniAsserter; -import io.smallrye.mutiny.Uni; -import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; +import jakarta.inject.Inject; import org.junit.jupiter.api.Test; -import org.mockito.Mockito; - -import java.util.Collections; -import java.util.List; import static it.gov.pagopa.gpd.payments.pull.Constants.DUE_DATE; import static it.gov.pagopa.gpd.payments.pull.Constants.FISCAL_CODE; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; @QuarkusTest class PaymentPositionRepositoryTest { - @InjectMock + @Inject PaymentPositionRepository paymentPositionRepository; -// @Test -// @RunOnVertxContext -// void findNoticesOnRepositoryWithoutDueDate(UniAsserter asserter) { -// asserter.execute(() -> Mockito.when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( -// FISCAL_CODE, null, 50, 0)) -// .thenReturn(Uni.createFrom().item(Collections.emptyList()))); -// -// asserter.assertThat(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( -// FISCAL_CODE, null, 50, 0), List::isEmpty); -// } -// -// @Test -// @RunOnVertxContext -// void findNoticesOnRepositoryWithDueDate(UniAsserter asserter) { -// List paymentPosition = Collections.singletonList(PaymentPosition.builder().iupd("test-with-data").build()); -// -// asserter.execute(() -> Mockito.when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( -// FISCAL_CODE, DUE_DATE, 50, 0)) -// .thenReturn(Uni.createFrom().item(paymentPosition))); -// -// asserter.assertEquals(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( -// FISCAL_CODE, DUE_DATE, 50, 0), paymentPosition); -// } + @Test + void findNoticesOnRepositoryWithoutDueDate() { + assertDoesNotThrow(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( + FISCAL_CODE, null, 50, 0)); + } + @Test + void findNoticesOnRepositoryWithDueDate() { + assertDoesNotThrow(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( + FISCAL_CODE, DUE_DATE, 50, 0)); + } } \ No newline at end of file From e2ed65e9cb5a890ed6d1eac1f48705fe8cf44817 Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 18 Oct 2024 17:20:43 +0200 Subject: [PATCH 42/53] fix conn string, updated prod helm chart resource and fix db-kind property --- helm/values-dev.yaml | 2 +- helm/values-prod.yaml | 8 ++++---- src/main/resources/application.properties | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index e26d03d..69c835a 100644 --- a/helm/values-dev.yaml +++ b/helm/values-dev.yaml @@ -79,7 +79,7 @@ microservice-chart: OTEL_LOGS_EXPORTER: none OTEL_TRACES_SAMPLER: "always_on" JAVA_TOOL_OPTIONS: "-javaagent:/deployments/jmx_prometheus_javaagent-0.19.0.jar=12345:/deployments/config.yaml -javaagent:/deployments/opentelemetry-javaagent.jar -javaagent:/deployments/applicationinsights-agent.jar" - GPD_DB_URL: "vertx-reactive:postgresql://pagopa-d-gpd-postgresql.postgres.database.azure.com:5432/apd?sslmode=require&tcpKeepAlive=true" + GPD_DB_URL: "jdbc:postgresql://pagopa-d-gpd-postgresql.postgres.database.azure.com:5432/apd?sslmode=require&tcpKeepAlive=true" envFieldRef: envSecret: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-d-connection-string' diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml index 62a9217..61d6edf 100644 --- a/helm/values-prod.yaml +++ b/helm/values-prod.yaml @@ -45,15 +45,15 @@ microservice-chart: allowPrivilegeEscalation: false resources: requests: - memory: "512Mi" + memory: "768Mi" cpu: "300m" limits: memory: "768Mi" - cpu: "600m" + cpu: "300m" autoscaling: enable: true minReplica: 3 - maxReplica: 3 + maxReplica: 10 pollingInterval: 10 # seconds cooldownPeriod: 50 # seconds triggers: @@ -79,7 +79,7 @@ microservice-chart: OTEL_LOGS_EXPORTER: none OTEL_TRACES_SAMPLER: "always_on" JAVA_TOOL_OPTIONS: "-javaagent:/deployments/jmx_prometheus_javaagent-0.19.0.jar=12345:/deployments/config.yaml -javaagent:/deployments/opentelemetry-javaagent.jar -javaagent:/deployments/applicationinsights-agent.jar" - GPD_DB_URL: "vertx-reactive:postgresql://gpd-db.p.internal.postgresql.pagopa.it:6432/apd?sslmode=require&prepareThreshold=0" + GPD_DB_URL: "jdbc:postgresql://gpd-db.p.internal.postgresql.pagopa.it:6432/apd?sslmode=require&prepareThreshold=0" envFieldRef: envSecret: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-p-connection-string' diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 522f189..aee5a51 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -46,7 +46,7 @@ quarkus.smallrye-openapi.path=/openapi.json ################## ## DATABASE ## ################## -quarkus.datasource.db-kind=postgresql +quarkus.datasource.db-kind=postgres quarkus.datasource.username=${GPD_DB_USERNAME} quarkus.datasource.password=${GPD_DB_PASSWORD} quarkus.datasource.jdbc.url=${GPD_DB_URL} From 15ec99b511ff860e0178c67f64fedc585f298dcc Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 18 Oct 2024 17:24:35 +0200 Subject: [PATCH 43/53] fix db-kind property --- src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index aee5a51..522f189 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -46,7 +46,7 @@ quarkus.smallrye-openapi.path=/openapi.json ################## ## DATABASE ## ################## -quarkus.datasource.db-kind=postgres +quarkus.datasource.db-kind=postgresql quarkus.datasource.username=${GPD_DB_USERNAME} quarkus.datasource.password=${GPD_DB_PASSWORD} quarkus.datasource.jdbc.url=${GPD_DB_URL} From 2a97d2d97c56fbcc38fadfe551f03de7b1dbc411 Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 18 Oct 2024 17:31:39 +0200 Subject: [PATCH 44/53] fix --- src/main/resources/application.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 522f189..f306173 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -19,8 +19,8 @@ quarkus.log.file.json=false quarkus.log.level=${LOG_LEVEL:INFO} 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=true +quarkus.log.console.json=false +%dev.quarkus.log.console.json=false %test.quarkus.log.console.json=false %openapi.quarkus.log.console.json=false %openapi_internal.quarkus.log.console.json=false @@ -47,9 +47,9 @@ quarkus.smallrye-openapi.path=/openapi.json ## DATABASE ## ################## quarkus.datasource.db-kind=postgresql -quarkus.datasource.username=${GPD_DB_USERNAME} -quarkus.datasource.password=${GPD_DB_PASSWORD} -quarkus.datasource.jdbc.url=${GPD_DB_URL} +&prod.quarkus.datasource.username=${GPD_DB_USERNAME} +&prod.quarkus.datasource.password=${GPD_DB_PASSWORD} +&prod.quarkus.datasource.jdbc.url=${GPD_DB_URL} ################ ## CUSTOM ## From 8235f8a6e155f3d3b7a7aa5e2c78bd74bdf91acf Mon Sep 17 00:00:00 2001 From: giomella Date: Fri, 18 Oct 2024 17:43:13 +0200 Subject: [PATCH 45/53] fix --- src/main/resources/application.properties | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index f306173..54cba33 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -47,9 +47,11 @@ quarkus.smallrye-openapi.path=/openapi.json ## DATABASE ## ################## quarkus.datasource.db-kind=postgresql -&prod.quarkus.datasource.username=${GPD_DB_USERNAME} -&prod.quarkus.datasource.password=${GPD_DB_PASSWORD} -&prod.quarkus.datasource.jdbc.url=${GPD_DB_URL} +%prod.quarkus.datasource.username=${GPD_DB_USERNAME} +%prod.quarkus.datasource.password=${GPD_DB_PASSWORD} +%prod.quarkus.datasource.jdbc.url=${GPD_DB_URL} +%test.quarkus.hibernate-orm.database.generation=drop-and-create +%test.quarkus.hibernate-orm.database.database.generation.create-schemas=true ################ ## CUSTOM ## From 926fee19647ebf75129e849939e09ce66d1e27cd Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 21 Oct 2024 10:05:09 +0200 Subject: [PATCH 46/53] fix --- src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 54cba33..a407133 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -51,7 +51,7 @@ quarkus.datasource.db-kind=postgresql %prod.quarkus.datasource.password=${GPD_DB_PASSWORD} %prod.quarkus.datasource.jdbc.url=${GPD_DB_URL} %test.quarkus.hibernate-orm.database.generation=drop-and-create -%test.quarkus.hibernate-orm.database.database.generation.create-schemas=true +%test.quarkus.hibernate-orm.database.generation.create-schemas=true ################ ## CUSTOM ## From d2d042cccad6d72167e619a4dfc6f8ea6095f095 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 21 Oct 2024 10:18:55 +0200 Subject: [PATCH 47/53] fix tests --- .../pull/resources/PaymentNoticesTest.java | 18 +++---- .../impl/PaymentNoticesServiceImplTest.java | 52 +++++++++---------- 2 files changed, 33 insertions(+), 37 deletions(-) diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java index 4a31ae8..c04ad50 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; -import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.models.ErrorResponse; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; import it.gov.pagopa.gpd.payments.pull.models.enums.AppErrorCodeEnum; @@ -21,8 +20,8 @@ import static jakarta.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; @QuarkusTest class PaymentNoticesTest { @@ -35,8 +34,8 @@ class PaymentNoticesTest { @Test void getPaymentNoticesOnValidTaxCodeShouldReturnData() throws JsonProcessingException { - doReturn(Uni.createFrom().item(Collections.singletonList(PaymentNotice.builder().build()))) - .when(paymentNoticesService).getPaymentNotices(FISCAL_CODE, null, 50, 0); + when(paymentNoticesService.getPaymentNotices(FISCAL_CODE, null, 50, 0)) + .thenReturn(Collections.singletonList(PaymentNotice.builder().build())); String responseString = given() .header("x-tax-code", FISCAL_CODE) @@ -58,8 +57,8 @@ void getPaymentNoticesOnValidTaxCodeShouldReturnData() throws JsonProcessingExce @Test void getPaymentNoticesOnValidTaxCodeAndDateShouldReturnData() throws JsonProcessingException { - doReturn(Uni.createFrom().item(Collections.singletonList(PaymentNotice.builder().build()))) - .when(paymentNoticesService).getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0); + when(paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)) + .thenReturn(Collections.singletonList(PaymentNotice.builder().build())); String responseString = given() .header("x-tax-code", FISCAL_CODE) @@ -104,9 +103,8 @@ void getPaymentNoticesOnValidTaxCodeAndDateShouldReturnData() throws JsonProcess @Test void getPaymentNoticesOnServiceErrorShouldReturnIntServerError() throws JsonProcessingException { - doReturn(Uni.createFrom().item(() -> { - throw new RuntimeException(); - })).when(paymentNoticesService).getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0); + when(paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)) + .thenThrow(RuntimeException.class); String responseString = given() .header("x-tax-code", FISCAL_CODE) @@ -150,7 +148,6 @@ void getPaymentNoticesOnMissingTaxCodeShouldReturnBadRequest() throws JsonProces assertNotNull(response.getTitle()); } - @Test void getPaymentNoticesOnValidTaxCodeAndInvalidDateShouldBadRequest() throws JsonProcessingException { String responseString = @@ -174,5 +171,4 @@ void getPaymentNoticesOnValidTaxCodeAndInvalidDateShouldBadRequest() throws Json assertNotNull(response.getDetail()); assertNotNull(response.getTitle()); } - } diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java index 46930bf..11a64a9 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java @@ -3,7 +3,6 @@ import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; import io.smallrye.mutiny.CompositeException; -import io.smallrye.mutiny.Uni; import it.gov.pagopa.gpd.payments.pull.entity.PaymentOption; import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; @@ -27,8 +26,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; @QuarkusTest class PaymentNoticesServiceImplTest { @@ -41,13 +40,14 @@ class PaymentNoticesServiceImplTest { @Test void getPaymentNoticesShouldReturnOK() { - doReturn(Uni.createFrom().item(Arrays.asList(createPaymentPosition("", false), - createPaymentPosition("ACA_", false), - createPaymentPosition("PARTIAL_", true)))) - .when(paymentPositionRepository).findPaymentPositionsByTaxCodeAndDueDate - (FISCAL_CODE, DUE_DATE, 50, 0); + when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(FISCAL_CODE, DUE_DATE, 50, 0)) + .thenReturn(Arrays.asList(createPaymentPosition("", false), + createPaymentPosition("ACA_", false), + createPaymentPosition("PARTIAL_", true))); + List response = assertDoesNotThrow(() -> - paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); + paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); + assertNotNull(response); assertEquals(2, response.size()); assertEquals("iupd", response.get(0).getIupd()); @@ -60,44 +60,45 @@ void getPaymentNoticesShouldReturnOK() { @Test void getPaymentNoticesShouldReturnExceptionOnRepositoryError() { - doReturn(Uni.createFrom().item(() -> { - throw new RuntimeException(); - })).when(paymentPositionRepository).findPaymentPositionsByTaxCodeAndDueDate - (FISCAL_CODE, DUE_DATE, 50, 0); + when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(FISCAL_CODE, DUE_DATE, 50, 0)) + .thenThrow(RuntimeException.class); + CompositeException paymentNoticeException = assertThrows(CompositeException.class, () -> - paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); + paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); + List causes = paymentNoticeException.getCauses(); - assertEquals(AppErrorCodeEnum.PPL_800, ((PaymentNoticeException) causes.get(causes.size()-1)).getErrorCode()); + assertEquals(AppErrorCodeEnum.PPL_800, ((PaymentNoticeException) causes.get(causes.size() - 1)).getErrorCode()); } @Test void getPaymentNoticesShouldReturnExceptionOnMappingError() { PaymentPosition paymentPosition = createPaymentPosition("", true); paymentPosition.setPaymentOption(null); - doReturn(Uni.createFrom().item(Collections.singletonList(paymentPosition))) - .when(paymentPositionRepository).findPaymentPositionsByTaxCodeAndDueDate - (FISCAL_CODE, DUE_DATE, 50, 0); + when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(FISCAL_CODE, DUE_DATE, 50, 0)) + .thenReturn(Collections.singletonList(paymentPosition)); + CompositeException paymentNoticeException = assertThrows(CompositeException.class, () -> - paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); + paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); + List causes = paymentNoticeException.getCauses(); - assertEquals(AppErrorCodeEnum.PPL_800, ((PaymentNoticeException) causes.get(causes.size()-1)).getErrorCode()); + assertEquals(AppErrorCodeEnum.PPL_800, ((PaymentNoticeException) causes.get(causes.size() - 1)).getErrorCode()); } - PaymentPosition createPaymentPosition(String prefix, Boolean isPartialPayment) { + private PaymentPosition createPaymentPosition(String prefix, Boolean isPartialPayment) { PaymentPosition paymentPosition = PaymentPosition.builder() - .iupd(prefix+"iupd") + .iupd(prefix + "iupd") .status(DebtPositionStatus.VALID) .type(Type.F) .build(); List paymentOption = new ArrayList<>( List.of(new PaymentOption[]{PaymentOption.builder() - .amount(100) - .dueDate(LocalDateTime.now()) - .isPartialPayment(isPartialPayment) - .build()})); + .amount(100) + .dueDate(LocalDateTime.now()) + .isPartialPayment(isPartialPayment) + .build()})); if (isPartialPayment) { paymentOption.add(PaymentOption.builder() @@ -111,5 +112,4 @@ PaymentPosition createPaymentPosition(String prefix, Boolean isPartialPayment) { return paymentPosition; } - } \ No newline at end of file From d0c9db8c89600607ae738094bb2f79a8c5ead143 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 21 Oct 2024 10:51:00 +0200 Subject: [PATCH 48/53] fix exception handling and unit tests --- openapi/openapi.json | 4 +- pom.xml | 4 ++ .../pull/resources/PaymentNotices.java | 8 ++-- .../impl/PaymentNoticesServiceImpl.java | 18 +++++++- src/main/resources/application.properties | 5 ++- .../pull/resources/PaymentNoticesTest.java | 44 +++++++++---------- .../impl/PaymentNoticesServiceImplTest.java | 13 ++---- 7 files changed, 55 insertions(+), 41 deletions(-) diff --git a/openapi/openapi.json b/openapi/openapi.json index ddc107a..229cd97 100644 --- a/openapi/openapi.json +++ b/openapi/openapi.json @@ -82,7 +82,7 @@ "format": "int32", "default": 50, "maximum": 100, - "minimum": 1, + "minimum": 0, "exclusiveMinimum": true, "type": "integer" } @@ -502,4 +502,4 @@ } } } -} +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index c710a93..279653c 100644 --- a/pom.xml +++ b/pom.xml @@ -76,6 +76,10 @@ io.quarkus quarkus-jdbc-postgresql + + io.quarkus + quarkus-jdbc-h2 + io.quarkus 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 09a050d..3d812f4 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 @@ -125,12 +125,10 @@ public Response getPaymentNotices( MDC.put("status", "OK"); logger.info("Successfully API Invocation getPaymentNotices"); return Response.ok().entity(paymentNotices).build(); + } catch (PaymentNoticeException e) { + throw e; } catch (Exception e) { - if (e instanceof PaymentNoticeException ex) { - throw new PaymentNoticeException(ex.getErrorCode(), ex.getMessage(), ex.getCause()); - } else { - throw new AppErrorException(e); - } + throw new AppErrorException(e); } } } 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 6ef58ca..1d4c057 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 @@ -1,5 +1,6 @@ package it.gov.pagopa.gpd.payments.pull.service.impl; +import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; import it.gov.pagopa.gpd.payments.pull.mapper.PaymentNoticeMapper; import it.gov.pagopa.gpd.payments.pull.models.PaymentNotice; @@ -25,10 +26,25 @@ public class PaymentNoticesServiceImpl implements PaymentNoticesService { @Override public List getPaymentNotices(String taxCode, LocalDate dueDate, Integer limit, Integer page) { try { - return this.paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page).parallelStream() + return getPositions(taxCode, dueDate, limit, page).parallelStream() .filter(item -> keepAca || !item.getIupd().contains("ACA")) .map(PaymentNoticeMapper::manNotice) .toList(); + } catch (PaymentNoticeException e) { + throw e; + } catch (Exception e) { + throw buildPaymentNoticeException(AppErrorCodeEnum.PPL_800, e); + } + } + + private List getPositions( + String taxCode, + LocalDate dueDate, + Integer limit, + Integer page + ) { + try { + return this.paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(taxCode, dueDate, limit, page); } catch (Exception e) { throw buildPaymentNoticeException(AppErrorCodeEnum.PPL_700, e); } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index a407133..5c1e028 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -50,8 +50,9 @@ quarkus.datasource.db-kind=postgresql %prod.quarkus.datasource.username=${GPD_DB_USERNAME} %prod.quarkus.datasource.password=${GPD_DB_PASSWORD} %prod.quarkus.datasource.jdbc.url=${GPD_DB_URL} -%test.quarkus.hibernate-orm.database.generation=drop-and-create -%test.quarkus.hibernate-orm.database.generation.create-schemas=true +%test.quarkus.datasource.db-kind=h2 +%test.quarkus.datasource.username=admin +%test.quarkus.datasource.jdbc.url=jdbc:h2:mem:apd ################ ## CUSTOM ## diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java index c04ad50..e5a4f68 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/resources/PaymentNoticesTest.java @@ -78,28 +78,28 @@ void getPaymentNoticesOnValidTaxCodeAndDateShouldReturnData() throws JsonProcess verify(paymentNoticesService).getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0); } -// @Test -// void getPaymentNoticesOnInValidTaxCodeShouldReturnBadRequest() throws JsonProcessingException { -// String responseString = -// given() -// .header("x-tax-code", INVALID_FISCAL_CODE) -// .when().get("/payment-notices/v1") -// .then() -// .statusCode(400) -// .contentType("application/json") -// .extract() -// .asString(); -// -// -// assertNotNull(responseString); -// ErrorResponse response = objectMapper.readValue(responseString, ErrorResponse.class); -// assertNotNull(response); -// assertEquals(AppErrorCodeEnum.PPL_601.getErrorCode(), response.getInstance()); -// assertEquals(BAD_REQUEST.getStatusCode(), response.getStatus()); -// assertEquals(BAD_REQUEST.getReasonPhrase(), response.getTitle()); -// assertNotNull(response.getDetail()); -// assertNotNull(response.getTitle()); -// } + @Test + void getPaymentNoticesOnInValidTaxCodeShouldReturnBadRequest() throws JsonProcessingException { + String responseString = + given() + .header("x-tax-code", INVALID_FISCAL_CODE) + .when().get("/payment-notices/v1") + .then() + .statusCode(400) + .contentType("application/json") + .extract() + .asString(); + + + assertNotNull(responseString); + ErrorResponse response = objectMapper.readValue(responseString, ErrorResponse.class); + assertNotNull(response); + assertEquals(AppErrorCodeEnum.PPL_601.getErrorCode(), response.getInstance()); + assertEquals(BAD_REQUEST.getStatusCode(), response.getStatus()); + assertEquals(BAD_REQUEST.getReasonPhrase(), response.getTitle()); + assertNotNull(response.getDetail()); + assertNotNull(response.getTitle()); + } @Test void getPaymentNoticesOnServiceErrorShouldReturnIntServerError() throws JsonProcessingException { diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java index 11a64a9..f27a9b1 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/service/impl/PaymentNoticesServiceImplTest.java @@ -2,7 +2,6 @@ import io.quarkus.test.InjectMock; import io.quarkus.test.junit.QuarkusTest; -import io.smallrye.mutiny.CompositeException; import it.gov.pagopa.gpd.payments.pull.entity.PaymentOption; import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; import it.gov.pagopa.gpd.payments.pull.exception.PaymentNoticeException; @@ -63,12 +62,10 @@ void getPaymentNoticesShouldReturnExceptionOnRepositoryError() { when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(FISCAL_CODE, DUE_DATE, 50, 0)) .thenThrow(RuntimeException.class); - CompositeException paymentNoticeException = - assertThrows(CompositeException.class, () -> + PaymentNoticeException e = assertThrows(PaymentNoticeException.class, () -> paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); - List causes = paymentNoticeException.getCauses(); - assertEquals(AppErrorCodeEnum.PPL_800, ((PaymentNoticeException) causes.get(causes.size() - 1)).getErrorCode()); + assertEquals(AppErrorCodeEnum.PPL_700, e.getErrorCode()); } @Test @@ -78,12 +75,10 @@ void getPaymentNoticesShouldReturnExceptionOnMappingError() { when(paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate(FISCAL_CODE, DUE_DATE, 50, 0)) .thenReturn(Collections.singletonList(paymentPosition)); - CompositeException paymentNoticeException = - assertThrows(CompositeException.class, () -> + PaymentNoticeException e = assertThrows(PaymentNoticeException.class, () -> paymentNoticesService.getPaymentNotices(FISCAL_CODE, DUE_DATE, 50, 0)); - List causes = paymentNoticeException.getCauses(); - assertEquals(AppErrorCodeEnum.PPL_800, ((PaymentNoticeException) causes.get(causes.size() - 1)).getErrorCode()); + assertEquals(AppErrorCodeEnum.PPL_800, e.getErrorCode()); } private PaymentPosition createPaymentPosition(String prefix, Boolean isPartialPayment) { From 392db59625a1e372ec12b80c3d9aefa4681edab4 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 21 Oct 2024 11:55:12 +0200 Subject: [PATCH 49/53] fix repository tests --- pom.xml | 1 + .../repository/PaymentPositionRepository.java | 4 +- .../PaymentPositionRepositoryTest.java | 50 +++++++++++++++++-- 3 files changed, 49 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 279653c..5c99335 100644 --- a/pom.xml +++ b/pom.xml @@ -79,6 +79,7 @@ io.quarkus quarkus-jdbc-h2 + test diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java index a77dfbb..ca9b6a0 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepository.java @@ -11,10 +11,10 @@ @ApplicationScoped public class PaymentPositionRepository implements PanacheRepository { - private static final String GET_VALID_POSITIONS_BY_TAXCODE_BASE = + public static final String GET_VALID_POSITIONS_BY_TAXCODE_BASE = "from PaymentPosition AS ppos Where ppos.fiscalCode = ?1 " + "AND ppos.status IN ('VALID', 'PARTIALLY_PAID') AND ppos.pull = true"; - private static final String GET_VALID_POSITIONS_BY_TAXCODE_AND_DUE_DATE = + public static final String GET_VALID_POSITIONS_BY_TAXCODE_AND_DUE_DATE = "from PaymentPosition AS ppos Where ppos.fiscalCode = ?1 " + "AND ppos.status IN ('VALID', 'PARTIALLY_PAID') AND ppos.pull = true " + "AND EXISTS (from ppos.paymentOption AS po WHERE po.dueDate >= ?2)"; diff --git a/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java b/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java index 72c7f1d..8a0e80f 100644 --- a/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java +++ b/src/test/java/it/gov/pagopa/gpd/payments/pull/repository/PaymentPositionRepositoryTest.java @@ -1,28 +1,70 @@ package it.gov.pagopa.gpd.payments.pull.repository; +import io.quarkus.hibernate.orm.panache.PanacheQuery; import io.quarkus.test.junit.QuarkusTest; -import jakarta.inject.Inject; +import io.quarkus.test.junit.mockito.InjectSpy; +import it.gov.pagopa.gpd.payments.pull.entity.PaymentPosition; +import it.gov.pagopa.gpd.payments.pull.models.enums.DebtPositionStatus; +import it.gov.pagopa.gpd.payments.pull.models.enums.Type; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import java.util.Collections; +import java.util.List; import static it.gov.pagopa.gpd.payments.pull.Constants.DUE_DATE; import static it.gov.pagopa.gpd.payments.pull.Constants.FISCAL_CODE; +import static it.gov.pagopa.gpd.payments.pull.repository.PaymentPositionRepository.GET_VALID_POSITIONS_BY_TAXCODE_AND_DUE_DATE; +import static it.gov.pagopa.gpd.payments.pull.repository.PaymentPositionRepository.GET_VALID_POSITIONS_BY_TAXCODE_BASE; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; @QuarkusTest class PaymentPositionRepositoryTest { - @Inject + @InjectSpy PaymentPositionRepository paymentPositionRepository; @Test void findNoticesOnRepositoryWithoutDueDate() { - assertDoesNotThrow(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( + PanacheQuery panacheQuery = Mockito.mock(PanacheQuery.class); + when(paymentPositionRepository.find(GET_VALID_POSITIONS_BY_TAXCODE_BASE, FISCAL_CODE)).thenReturn(panacheQuery); + when(panacheQuery.page(any())).thenReturn(panacheQuery); + when(panacheQuery.list()).thenReturn(Collections.singletonList( + PaymentPosition.builder() + .iupd("iupd") + .status(DebtPositionStatus.VALID) + .type(Type.F) + .build())); + + List result = assertDoesNotThrow(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( FISCAL_CODE, null, 50, 0)); + + assertNotNull(result); + assertEquals(1, result.size()); } + @Test void findNoticesOnRepositoryWithDueDate() { - assertDoesNotThrow(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( + PanacheQuery panacheQuery = Mockito.mock(PanacheQuery.class); + when(paymentPositionRepository.find(GET_VALID_POSITIONS_BY_TAXCODE_AND_DUE_DATE, FISCAL_CODE, DUE_DATE.atStartOfDay())) + .thenReturn(panacheQuery); + when(panacheQuery.page(any())).thenReturn(panacheQuery); + when(panacheQuery.list()).thenReturn(Collections.singletonList( + PaymentPosition.builder() + .iupd("iupd") + .status(DebtPositionStatus.VALID) + .type(Type.F) + .build())); + + List result = assertDoesNotThrow(() -> paymentPositionRepository.findPaymentPositionsByTaxCodeAndDueDate( FISCAL_CODE, DUE_DATE, 50, 0)); + + assertNotNull(result); + assertEquals(1, result.size()); } } \ No newline at end of file From 2cdfd3006d213cb37c68f5a205b99f89fcf69668 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 21 Oct 2024 12:04:14 +0200 Subject: [PATCH 50/53] remove option --- docker/run_docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/run_docker.sh b/docker/run_docker.sh index 6abe67d..6b32fb4 100644 --- a/docker/run_docker.sh +++ b/docker/run_docker.sh @@ -10,7 +10,7 @@ then echo "No environment specified: local is used." fi -pip3 install yq --break-system-packages +pip3 install yq if [ "$ENV" = "local" ]; then image="service-local:latest" From 1ea4d3a1ba7084707bcbba241d1016630ade4711 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 21 Oct 2024 12:11:38 +0200 Subject: [PATCH 51/53] remove unused code --- .../payments/pull/exception/AppErrorException.java | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/AppErrorException.java b/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/AppErrorException.java index b5c147d..3438641 100644 --- a/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/AppErrorException.java +++ b/src/main/java/it/gov/pagopa/gpd/payments/pull/exception/AppErrorException.java @@ -2,25 +2,13 @@ import lombok.Getter; -import java.time.LocalDate; - /** * Base exception for PDF Engine exceptions */ @Getter public class AppErrorException extends RuntimeException { - private String taxCode; - private LocalDate dueDate; - - public AppErrorException(Throwable error) { super(error); } - - public AppErrorException(Throwable cause, LocalDate dueDate, String taxCode) { - super(cause); - this.dueDate = dueDate; - this.taxCode = taxCode; - } } From be590122b79b9d3c10448ffec5cc1a9a28eea63a Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 21 Oct 2024 12:43:30 +0200 Subject: [PATCH 52/53] remove response from logs and fix tear down --- performance-test/src/payment_pull_service_test.js | 4 ++-- .../pagopa/gpd/payments/pull/resources/PaymentNotices.java | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/performance-test/src/payment_pull_service_test.js b/performance-test/src/payment_pull_service_test.js index b2af196..8d127f9 100644 --- a/performance-test/src/payment_pull_service_test.js +++ b/performance-test/src/payment_pull_service_test.js @@ -44,6 +44,6 @@ export default function () { export async function teardown(data) { // 4. teardown code - // let response = await deleteToGPD(`${gpdURIBasePath}/organizations/${organizationTaxCode}/debtpositions/${iupd}`); - // check(response, { 'Delete performance test debt position status is 200': () => response.status === 200 }); + let response = await deleteToGPD(`${gpdURIBasePath}/organizations/${organizationTaxCode}/debtpositions/${iupd}`); + check(response, { 'Delete performance test debt position status is 200': () => response.status === 200 }); } \ No newline at end of file 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 3d812f4..98ba4ad 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 @@ -121,7 +121,6 @@ public Response getPaymentNotices( try { List paymentNotices = this.paymentNoticeService.getPaymentNotices(taxCode, dueDate, limit, page); - MDC.put("response", mapToJSON(paymentNotices)); MDC.put("status", "OK"); logger.info("Successfully API Invocation getPaymentNotices"); return Response.ok().entity(paymentNotices).build(); From 54b23bb531d3469941d7b793d9653e4b0242b9c3 Mon Sep 17 00:00:00 2001 From: giomella Date: Mon, 28 Oct 2024 14:09:33 +0100 Subject: [PATCH 53/53] update dev db url to pg flex --- helm/values-dev.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml index 69c835a..fa08337 100644 --- a/helm/values-dev.yaml +++ b/helm/values-dev.yaml @@ -79,7 +79,7 @@ microservice-chart: OTEL_LOGS_EXPORTER: none OTEL_TRACES_SAMPLER: "always_on" JAVA_TOOL_OPTIONS: "-javaagent:/deployments/jmx_prometheus_javaagent-0.19.0.jar=12345:/deployments/config.yaml -javaagent:/deployments/opentelemetry-javaagent.jar -javaagent:/deployments/applicationinsights-agent.jar" - GPD_DB_URL: "jdbc:postgresql://pagopa-d-gpd-postgresql.postgres.database.azure.com:5432/apd?sslmode=require&tcpKeepAlive=true" + GPD_DB_URL: "jdbc:postgresql://pagopa-d-gpd-pgflex.postgres.database.azure.com:6432/apd?sslmode=require&prepareThreshold=0&tcpKeepAlive=true" envFieldRef: envSecret: APPLICATIONINSIGHTS_CONNECTION_STRING: 'ai-d-connection-string'