diff --git a/apps/onboarding-ms/src/main/docs/openapi.json b/apps/onboarding-ms/src/main/docs/openapi.json index 69c49476e..b3ee8fdd9 100644 --- a/apps/onboarding-ms/src/main/docs/openapi.json +++ b/apps/onboarding-ms/src/main/docs/openapi.json @@ -25,23 +25,6 @@ "name" : "support" } ], "paths" : { - "/v1/aggregates/prova" : { - "get" : { - "tags" : [ "Aggregates Controller" ], - "responses" : { - "200" : { - "description" : "OK", - "content" : { - "text/plain" : { - "schema" : { - "type" : "string" - } - } - } - } - } - } - }, "/v1/aggregates/verification/appio" : { "post" : { "tags" : [ "Aggregates Controller" ], diff --git a/apps/onboarding-ms/src/main/docs/openapi.yaml b/apps/onboarding-ms/src/main/docs/openapi.yaml index 60251de43..6579b6008 100644 --- a/apps/onboarding-ms/src/main/docs/openapi.yaml +++ b/apps/onboarding-ms/src/main/docs/openapi.yaml @@ -16,17 +16,6 @@ tags: - name: internal-v1 - name: support paths: - /v1/aggregates/prova: - get: - tags: - - Aggregates Controller - responses: - "200": - description: OK - content: - text/plain: - schema: - type: string /v1/aggregates/verification/appio: post: tags: diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/AggregatesController.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/AggregatesController.java index 532185e00..64a40d059 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/AggregatesController.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/AggregatesController.java @@ -15,7 +15,7 @@ import java.io.File; -//@Authenticated +@Authenticated @Path("/v1/aggregates") @Tag(name = "Aggregates Controller") @AllArgsConstructor @@ -33,11 +33,6 @@ public Uni verifyAppIoAggregatesCsv(@NotNull @RestForm( return aggregatesService.validateAppIoAggregatesCsv(file); } - @Path("prova") - @GET - public String vv () { - return "ciao"; - } @Operation(summary = "Validate the data related to the aggregated entities present in a CSV file") @POST diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/AggregatesCsvResponse.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/AggregatesCsvResponse.java index c10b07cd8..2d5e6f574 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/AggregatesCsvResponse.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/AggregatesCsvResponse.java @@ -3,29 +3,29 @@ import java.util.ArrayList; import java.util.List; -public class AggregatesCsvResponse { - private List csvAggregateList; - private List validAggregates = new ArrayList<>(); +public class AggregatesCsvResponse { + private List csvAggregateList; + private List validAggregates = new ArrayList<>(); private List rowErrorList; - public AggregatesCsvResponse(List csvAggregateList, List rowErrorList) { + public AggregatesCsvResponse(List csvAggregateList, List rowErrorList) { this.csvAggregateList = csvAggregateList; this.rowErrorList = rowErrorList; } - public List getCsvAggregateList() { + public List getCsvAggregateList() { return csvAggregateList; } - public void setCsvAggregateList(List Csv) { + public void setCsvAggregateList(List Csv) { this.csvAggregateList = csvAggregateList; } - public List getValidAggregates() { + public List getValidAggregates() { return validAggregates; } - public void setValidAggregates(List Csv) { + public void setValidAggregates(List Csv) { this.validAggregates = validAggregates; } diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregateAppIo.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregateAppIo.java index 2681153ce..77f27e035 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregateAppIo.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregateAppIo.java @@ -7,7 +7,7 @@ public class CsvAggregateAppIo implements Csv { @CsvBindByPosition(position = 0) - private String aggregateName; + private String description; @CsvBindByPosition(position = 1) private String pec; diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregatePagoPa.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregatePagoPa.java index 436db2113..25c0e7ceb 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregatePagoPa.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregatePagoPa.java @@ -7,13 +7,13 @@ public class CsvAggregatePagoPa implements Csv { @CsvBindByPosition(position = 0) - private String aggregateName; + private String description; @CsvBindByPosition(position = 1) private String pec; @CsvBindByPosition(position = 2) - private String taxNumber; + private String taxCode; @CsvBindByPosition(position = 3) private String vatNumber; diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregateSend.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregateSend.java index 1eab9cded..fb859a316 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregateSend.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/model/CsvAggregateSend.java @@ -7,7 +7,7 @@ public class CsvAggregateSend implements Csv { @CsvBindByPosition(position = 0) - private String aggregateName; + private String description; @CsvBindByPosition(position = 1) private String pec; diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java index 6277428f6..2878d396c 100644 --- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java +++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/service/AggregatesServiceDefault.java @@ -37,6 +37,7 @@ public class AggregatesServiceDefault implements AggregatesService{ private static final Logger LOG = Logger.getLogger(AggregatesServiceDefault.class); + @Inject OnboardingMapper onboardingMapper; @@ -62,6 +63,22 @@ public class AggregatesServiceDefault implements AggregatesService{ public static final String ERROR_AOO_UO = "In caso di AOO/UO è necessario specificare la tipologia e il codice univoco IPA AOO/UO"; public static final String ERROR_VATNUMBER = "La partita IVA è obbligatoria"; + public static final String ERROR_ADDRESS = "Indirizzo è obbligatorio"; + public static final String ERROR_CITY = "La città è obbligatoria"; + public static final String ERROR_PROVINCE = "La provincia è obbligatoria"; + public static final String ERROR_PEC = "Indirizzo PEC è obbligatorio"; + public static final String ERROR_ADMIN_NAME = "Nome Amministratore Ente Aggregato è obbligatorio"; + public static final String ERROR_ADMIN_SURNAME = "Cognome Amministratore Ente Aggregato è obbligatorio"; + public static final String ERROR_ADMIN_EMAIL = "Email Amministratore Ente Aggregato è obbligatorio"; + public static final String ERROR_ADMIN_TAXCODE = "Codice Fiscale Amministratore Ente Aggregato è obbligatorio"; + public static final String ERROR_AGGREGATE_NAME_PT = "Ragine Sociale Partner Tecnologico è obbligatorio"; + public static final String ERROR_TAXCODE_PT = "Codice Fiscale Partner Tecnologico è obbligatorio"; + public static final String ERROR_IBAN = "IBAN è obbligatorio"; + public static final String ERROR_SERVICE = "Servizio è obbligatorio"; + public static final String ERROR_SYNC_ASYNC_MODE = "Modalità Sincrona/Asincrona è obbligatorio"; + private static final String ERROR_IPA_CODE = "Codice IPA è obbligatorio in caso di ente centrale"; + + @Override public Uni validateAppIoAggregatesCsv(File file){ AggregatesCsvResponse aggregatesCsvResponse = readItemsFromCsv(file, CsvAggregateAppIo.class); @@ -92,7 +109,7 @@ public Uni validateSendAggregatesCsv(File file) { public Uni validatePagoPaAggregatesCsv(File file) { AggregatesCsvResponse aggregatesCsvResponse = readItemsFromCsv(file, CsvAggregatePagoPa.class); List csvAggregates = aggregatesCsvResponse.getCsvAggregateList(); - Uni varr = Multi.createFrom().iterable(csvAggregates) + return Multi.createFrom().iterable(csvAggregates) .onItem().transformToUniAndMerge(csvAggregate -> checkCsvAggregatePagoPaAndFillAggregateOrErrorList(csvAggregate, aggregatesCsvResponse)) .collect().asList() .onItem().transform(list -> onboardingMapper.toVerifyAggregateResponse(aggregatesCsvResponse)) @@ -100,7 +117,6 @@ public Uni validatePagoPaAggregatesCsv(File file) { aggregatesCsvResponse.getValidAggregates().size(), aggregatesCsvResponse.getRowErrorList().size())); - return varr; } private Uni checkCsvAggregateAppIoAndFillAggregateOrErrorList(Csv csv, AggregatesCsvResponse aggregatesCsvResponse) { @@ -201,43 +217,122 @@ private boolean checkIfNotFound(Throwable throwable) { private Uni checkRequiredFieldsAppIo(Csv csv) { CsvAggregateAppIo csvAggregateAppIo = (CsvAggregateAppIo) csv; - if (StringUtils.isEmpty(csvAggregateAppIo.getTaxCode())) { - return Uni.createFrom().failure(new InvalidRequestException(ERROR_TAXCODE)); - } else if (StringUtils.isEmpty(csvAggregateAppIo.getDescription())) { + + if (StringUtils.isEmpty(csvAggregateAppIo.getDescription())){ return Uni.createFrom().failure(new InvalidRequestException(ERROR_DESCRIPTION)); - } else if (StringUtils.isEmpty(csvAggregateAppIo.getVatNumber())) { + } + else if (StringUtils.isEmpty(csvAggregateAppIo.getPec())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_PEC)); + } + else if (StringUtils.isEmpty(csvAggregateAppIo.getTaxCode())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_TAXCODE)); + } + else if (StringUtils.isEmpty(csvAggregateAppIo.getVatNumber())) { return Uni.createFrom().failure(new InvalidRequestException(ERROR_VATNUMBER)); - } else if ((StringUtils.isEmpty(csvAggregateAppIo.getSubunitType()) && StringUtils.isNotEmpty(csvAggregateAppIo.getSubunitCode())) + } + else if (StringUtils.isEmpty(csvAggregateAppIo.getAddress())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_ADDRESS)); + } + else if (StringUtils.isEmpty(csvAggregateAppIo.getCity())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_CITY)); + } + else if (StringUtils.isEmpty(csvAggregateAppIo.getProvince())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_PROVINCE)); + } + else if ((StringUtils.isEmpty(csvAggregateAppIo.getSubunitType()) && StringUtils.isNotEmpty(csvAggregateAppIo.getSubunitCode())) || (StringUtils.isNotEmpty(csvAggregateAppIo.getSubunitType()) && StringUtils.isEmpty(csvAggregateAppIo.getSubunitCode()))) { return Uni.createFrom().failure(new InvalidRequestException(ERROR_AOO_UO)); } + else if ((StringUtils.isEmpty(csvAggregateAppIo.getSubunitType()) && StringUtils.isEmpty(csvAggregateAppIo.getSubunitCode())) + && (StringUtils.isEmpty(csvAggregateAppIo.getIpaCode()))) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_IPA_CODE)); + } return Uni.createFrom().voidItem(); } private Uni checkRequiredFieldsSend(CsvAggregateSend csvAggregate) { - if (StringUtils.isEmpty("TODO")) { - return Uni.createFrom().failure(new InvalidRequestException(ERROR_TAXCODE)); - } else if (StringUtils.isEmpty("TODO")) { + + if (StringUtils.isEmpty(csvAggregate.getDescription())) { return Uni.createFrom().failure(new InvalidRequestException(ERROR_DESCRIPTION)); - } else if (StringUtils.isEmpty(csvAggregate.getVatNumber())) { + } + else if (StringUtils.isEmpty(csvAggregate.getPec())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_PEC)); + } + if (StringUtils.isEmpty(csvAggregate.getTaxCode())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_TAXCODE)); + } + else if (StringUtils.isEmpty(csvAggregate.getVatNumber())) { return Uni.createFrom().failure(new InvalidRequestException(ERROR_VATNUMBER)); - } else if ((StringUtils.isEmpty(csvAggregate.getSubunitType()) && StringUtils.isNotEmpty(csvAggregate.getSubunitCode())) + } + else if (StringUtils.isEmpty(csvAggregate.getAddress())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_ADDRESS)); + } + else if (StringUtils.isEmpty(csvAggregate.getCity())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_CITY)); + } + else if (StringUtils.isEmpty(csvAggregate.getProvince())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_PROVINCE)); + } + else if ((StringUtils.isEmpty(csvAggregate.getSubunitType()) && StringUtils.isNotEmpty(csvAggregate.getSubunitCode())) || (StringUtils.isNotEmpty(csvAggregate.getSubunitType()) && StringUtils.isEmpty(csvAggregate.getSubunitCode()))) { return Uni.createFrom().failure(new InvalidRequestException(ERROR_AOO_UO)); } + else if (StringUtils.isEmpty(csvAggregate.getAdminAggregateName())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_ADMIN_NAME)); + } + else if (StringUtils.isEmpty(csvAggregate.getAdminAggregateSurname())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_ADMIN_SURNAME)); + } + else if (StringUtils.isEmpty(csvAggregate.getAdminAggregateTaxCode())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_ADMIN_TAXCODE)); + } + else if (StringUtils.isEmpty(csvAggregate.getAdminAggregateEmail())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_ADMIN_EMAIL)); + } + else if ((StringUtils.isEmpty(csvAggregate.getSubunitType()) && StringUtils.isEmpty(csvAggregate.getSubunitCode())) + && (StringUtils.isEmpty(csvAggregate.getIpaCode()))) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_IPA_CODE)); + } return Uni.createFrom().voidItem(); } private Uni checkRequiredFieldsPagoPa(CsvAggregatePagoPa csvAggregate) { - if (StringUtils.isEmpty("TODO")) { - return Uni.createFrom().failure(new InvalidRequestException(ERROR_TAXCODE)); - } else if (StringUtils.isEmpty("TODO")) { + + if (StringUtils.isEmpty(csvAggregate.getDescription())) { return Uni.createFrom().failure(new InvalidRequestException(ERROR_DESCRIPTION)); - } else if (StringUtils.isEmpty(csvAggregate.getVatNumber())) { + } + else if (StringUtils.isEmpty(csvAggregate.getPec())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_PEC)); + } + if (StringUtils.isEmpty(csvAggregate.getTaxCode())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_TAXCODE)); + } + else if (StringUtils.isEmpty(csvAggregate.getVatNumber())) { return Uni.createFrom().failure(new InvalidRequestException(ERROR_VATNUMBER)); - } else if ((StringUtils.isEmpty("TODO") && StringUtils.isNotEmpty("TODO")) - || (StringUtils.isNotEmpty("TODO") && StringUtils.isEmpty("TODO"))) { - return Uni.createFrom().failure(new InvalidRequestException(ERROR_AOO_UO)); + } + else if (StringUtils.isEmpty(csvAggregate.getAddress())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_ADDRESS)); + } + else if (StringUtils.isEmpty(csvAggregate.getCity())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_CITY)); + } + else if (StringUtils.isEmpty(csvAggregate.getProvince())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_PROVINCE)); + } + else if (StringUtils.isEmpty(csvAggregate.getAggragateNamePT())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_AGGREGATE_NAME_PT)); + } + else if (StringUtils.isEmpty(csvAggregate.getTaxCodePT())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_TAXCODE_PT)); + } + else if (StringUtils.isEmpty(csvAggregate.getIban())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_IBAN)); + } + else if (StringUtils.isEmpty(csvAggregate.getService())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_SERVICE)); + } + else if (StringUtils.isEmpty(csvAggregate.getSyncAsyncMode())) { + return Uni.createFrom().failure(new InvalidRequestException(ERROR_SYNC_ASYNC_MODE)); } return Uni.createFrom().voidItem(); } diff --git a/apps/onboarding-ms/src/main/resources/application.properties b/apps/onboarding-ms/src/main/resources/application.properties index 2cb302902..330ce5a32 100644 --- a/apps/onboarding-ms/src/main/resources/application.properties +++ b/apps/onboarding-ms/src/main/resources/application.properties @@ -5,7 +5,7 @@ quarkus.http.port=8080 ## JWT quarkus.http.auth.proactive=false -mp.jwt.verify.publickey=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6Imp3dF9hMjo3YTo0NjozYjoyYTo2MDo1Njo0MDo4ODphMDo1ZDphNDpmODowMToxZTozZSJ9.eyJmYW1pbHlfbmFtZSI6IkJlZ2lxaSIsImZpc2NhbF9udW1iZXIiOiJCR1FHTkU4MFMxNEYyMDVDIiwibmFtZSI6IkV1Z2VuIiwic3BpZF9sZXZlbCI6Imh0dHBzOi8vd3d3LnNwaWQuZ292Lml0L1NwaWRMMiIsImZyb21fYWEiOmZhbHNlLCJ1aWQiOiJhOTA2NGE5Ni00ZmM0LTQ0YjctYjJmYS0yMDVjM2M0NWE2ZTYiLCJsZXZlbCI6IkwyIiwiaWF0IjoxNzI1MzU2OTI2LCJleHAiOjE3MjUzODkzMjYsImF1ZCI6ImFwaS5kZXYuc2VsZmNhcmUucGFnb3BhLml0IiwiaXNzIjoiU1BJRCIsImp0aSI6Il8wYWY1ZDlkZmFlYWU3MGRiOGE1YiJ9.AXOyDELnfEJh_H5S8dVJKGPU8kWsspDeK7bxKbobO4I-6gTSZfKkE0SBqasBaXVlX-PwqBsDlrIWr_lMlvW3KGpB5GI7oBZwrDHnPq0hrZblgmCSTvFkQO3MGgMP6TpYuX8Tsn910PEJwSN4T-ZiJQVYYfAjTDEWzmQvOxWU7qMYjasF2rjpZl94BSsvWvu4PuqNDu17oLax0JQgdYePSuHEdAjCTInmPiaGghGOMIRHKC0m2XtvFgqXNxsgfi75OnfmD0F0rimZdh5IuRQvhMqtrKQnTwlskaevP6n_fzJQ4YKh9d9lBDh_NHo85HA11Kjohnmm7MenY7liGfiLlQ +mp.jwt.verify.publickey=${JWT-PUBLIC-KEY} mp.jwt.verify.issuer=SPID #smallrye.jwt.verify.key-format=JWK_BASE64URL