Skip to content

Commit

Permalink
[SELC-5434] : added check for CSV files
Browse files Browse the repository at this point in the history
  • Loading branch information
eugenbegiqi committed Sep 4, 2024
1 parent 90dd51e commit fcbb702
Show file tree
Hide file tree
Showing 9 changed files with 128 additions and 66 deletions.
17 changes: 0 additions & 17 deletions apps/onboarding-ms/src/main/docs/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -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" ],
Expand Down
11 changes: 0 additions & 11 deletions apps/onboarding-ms/src/main/docs/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

import java.io.File;

//@Authenticated
@Authenticated
@Path("/v1/aggregates")
@Tag(name = "Aggregates Controller")
@AllArgsConstructor
Expand All @@ -33,11 +33,6 @@ public Uni<VerifyAggregateResponse> 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,29 +3,29 @@
import java.util.ArrayList;
import java.util.List;

public class AggregatesCsvResponse {
private List<Csv> csvAggregateList;
private List<Csv> validAggregates = new ArrayList<>();
public class AggregatesCsvResponse <T extends Csv>{
private List<T> csvAggregateList;
private List<T> validAggregates = new ArrayList<>();
private List<RowError> rowErrorList;

public AggregatesCsvResponse(List<Csv> csvAggregateList, List<RowError> rowErrorList) {
public AggregatesCsvResponse(List<T> csvAggregateList, List<RowError> rowErrorList) {
this.csvAggregateList = csvAggregateList;
this.rowErrorList = rowErrorList;
}

public List<Csv> getCsvAggregateList() {
public List<T> getCsvAggregateList() {
return csvAggregateList;
}

public void setCsvAggregateList(List<Csv> Csv) {
public void setCsvAggregateList(List<T> Csv) {
this.csvAggregateList = csvAggregateList;
}

public List<Csv> getValidAggregates() {
public List<T> getValidAggregates() {
return validAggregates;
}

public void setValidAggregates(List<Csv> Csv) {
public void setValidAggregates(List<T> Csv) {
this.validAggregates = validAggregates;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
public class CsvAggregateAppIo implements Csv {

@CsvBindByPosition(position = 0)
private String aggregateName;
private String description;

@CsvBindByPosition(position = 1)
private String pec;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
public class CsvAggregateSend implements Csv {

@CsvBindByPosition(position = 0)
private String aggregateName;
private String description;

@CsvBindByPosition(position = 1)
private String pec;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public class AggregatesServiceDefault implements AggregatesService{

private static final Logger LOG = Logger.getLogger(AggregatesServiceDefault.class);


@Inject
OnboardingMapper onboardingMapper;

Expand All @@ -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<VerifyAggregateResponse> validateAppIoAggregatesCsv(File file){
AggregatesCsvResponse aggregatesCsvResponse = readItemsFromCsv(file, CsvAggregateAppIo.class);
Expand Down Expand Up @@ -92,15 +109,14 @@ public Uni<VerifyAggregateResponse> validateSendAggregatesCsv(File file) {
public Uni<VerifyAggregateResponse> validatePagoPaAggregatesCsv(File file) {
AggregatesCsvResponse aggregatesCsvResponse = readItemsFromCsv(file, CsvAggregatePagoPa.class);
List<Csv> csvAggregates = aggregatesCsvResponse.getCsvAggregateList();
Uni<VerifyAggregateResponse> varr = Multi.createFrom().iterable(csvAggregates)
return Multi.createFrom().iterable(csvAggregates)
.onItem().transformToUniAndMerge(csvAggregate -> checkCsvAggregatePagoPaAndFillAggregateOrErrorList(csvAggregate, aggregatesCsvResponse))
.collect().asList()
.onItem().transform(list -> onboardingMapper.toVerifyAggregateResponse(aggregatesCsvResponse))
.onItem().invoke(() -> LOG.infof("CSV file validated end: %s valid row and %s invalid row",
aggregatesCsvResponse.getValidAggregates().size(),
aggregatesCsvResponse.getRowErrorList().size()));

return varr;
}

private Uni<Void> checkCsvAggregateAppIoAndFillAggregateOrErrorList(Csv csv, AggregatesCsvResponse aggregatesCsvResponse) {
Expand Down Expand Up @@ -201,43 +217,122 @@ private boolean checkIfNotFound(Throwable throwable) {

private Uni<Void> 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<Void> 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<Void> 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();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit fcbb702

Please sign in to comment.