Skip to content

Commit

Permalink
[SELC - 3793] feat: added new AdditionalInformations object to Instit…
Browse files Browse the repository at this point in the history
…utionUpdate (#315)
  • Loading branch information
gianmarcoplutino authored Jan 18, 2024
1 parent 49dbe3a commit 2cddc59
Show file tree
Hide file tree
Showing 12 changed files with 168 additions and 6 deletions.
47 changes: 47 additions & 0 deletions app/src/main/resources/swagger/api-docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -3327,6 +3327,49 @@
},
"components" : {
"schemas" : {
"AdditionalInformations" : {
"title" : "AdditionalInformations",
"type" : "object",
"properties" : {
"agentOfPublicService" : {
"type" : "boolean"
},
"agentOfPublicServiceNote" : {
"type" : "boolean",
"description" : "agentOfPublicService Note",
"example" : false
},
"belongRegulatedMarket" : {
"type" : "boolean",
"description" : "The institution belongs to a regulated market",
"example" : false
},
"establishedByRegulatoryProvision" : {
"type" : "boolean",
"description" : "The institution is a company established by a regulatory provision",
"example" : false
},
"establishedByRegulatoryProvisionNote" : {
"type" : "string",
"description" : "establishedByRegulatoryProvision Note"
},
"ipa" : {
"type" : "boolean"
},
"ipaCode" : {
"type" : "string",
"description" : "IPA code"
},
"otherNote" : {
"type" : "string",
"description" : "Other note"
},
"regulatedMarketNote" : {
"type" : "string",
"description" : "regulatedMarket Note"
}
}
},
"Attribute" : {
"title" : "Attribute",
"type" : "object",
Expand Down Expand Up @@ -3769,6 +3812,10 @@
"required" : [ "address", "fiscalCode", "id", "institutionType", "mailAddress", "name", "recipientCode", "vatNumber", "zipCode" ],
"type" : "object",
"properties" : {
"additionalInformations" : {
"description" : "Institution's additional informations",
"$ref" : "#/components/schemas/AdditionalInformations"
},
"address" : {
"type" : "string",
"description" : "Institution's physical address"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package it.pagopa.selfcare.dashboard.connector.model.institution;

import lombok.Data;

@Data
public class AdditionalInformations {

private boolean belongRegulatedMarket;
private String regulatedMarketNote;
private boolean isIpa;
private String ipaCode;
private boolean establishedByRegulatoryProvision;
private String establishedByRegulatoryProvisionNote;
private boolean isAgentOfPublicService;
private String agentOfPublicServiceNote;
private String otherNote;

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class InstitutionInfo {
private String aooParentCode;
private String parentDescription;
private String rootParentId;
private AdditionalInformations additionalInformations;

@Override
public boolean equals(Object o) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ class PartyConnectorImpl implements PartyConnector {
institutionInfo.setPaymentServiceProvider(institution.getPaymentServiceProvider());
institutionInfo.setDataProtectionOfficer(institution.getDataProtectionOfficer());
institutionInfo.setBilling(institution.getBilling());
if(institutionUpdate.getAdditionalInformations() != null) {
institutionInfo.setAdditionalInformations(institutionUpdate.getAdditionalInformations());
}
return institutionInfo;
};
protected static final Function<RelationshipInfo, UserInfo> RELATIONSHIP_INFO_TO_USER_INFO_FUNCTION = relationshipInfo -> {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package it.pagopa.selfcare.dashboard.connector.rest.model;

import it.pagopa.selfcare.commons.base.utils.InstitutionType;
import it.pagopa.selfcare.dashboard.connector.model.institution.AdditionalInformations;
import it.pagopa.selfcare.dashboard.connector.model.institution.DataProtectionOfficer;
import it.pagopa.selfcare.dashboard.connector.model.institution.PaymentServiceProvider;
import lombok.Data;
Expand All @@ -16,5 +17,6 @@ public class InstitutionUpdate {
private String taxCode;
private PaymentServiceProvider paymentServiceProvider;
private DataProtectionOfficer dataProtectionOfficer;
private AdditionalInformations additionalInformations;

}
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ void getOnBoardedInstitution() {
InstitutionInfo institutionInfo = partyConnector.getOnBoardedInstitution(institutionId);
// then
assertNotNull(institutionInfo);
checkNotNullFields(institutionInfo, "paymentServiceProvider", "dataProtectionOfficer","city","country","county");
checkNotNullFields(institutionInfo, "paymentServiceProvider", "dataProtectionOfficer","city","country","county","additionalInformations");
assertEquals(onboardingData.getDescription(), institutionInfo.getDescription());
assertEquals(onboardingData.getDigitalAddress(), institutionInfo.getDigitalAddress());
assertEquals(onboardingData.getExternalId(), institutionInfo.getExternalId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,17 @@
"address": "via del campo",
"zipCode": "string",
"taxCode": "string",
"additionalInformations" : {
"belongRegulatedMarket" : true,
"regulatedMarketNote" : "string",
"isIpa" : true,
"ipaCode" : "string",
"establishedByRegulatoryProvision" : true,
"establishedByRegulatoryProvisionNote" : "string",
"isAgentOfPublicService" : true,
"agentOfPublicServiceNote" : "string",
"otherNote" : "string"
},
"paymentServiceProvider": {
"abiCode": "string",
"businessRegisterNumber": "string",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,17 @@
"address": "via del campo",
"zipCode": "20100",
"taxCode": "string",
"additionalInformations" : {
"belongRegulatedMarket" : true,
"regulatedMarketNote" : "string",
"isIpa" : true,
"ipaCode" : "string",
"establishedByRegulatoryProvision" : true,
"establishedByRegulatoryProvisionNote" : "string",
"isAgentOfPublicService" : true,
"agentOfPublicServiceNote" : "string",
"otherNote" : "string"
},
"paymentServiceProvider": {
"abiCode": "string",
"businessRegisterNumber": "string",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,17 @@
"address": "via del campo",
"zipCode": "string",
"taxCode": "string",
"additionalInformations" : {
"belongRegulatedMarket" : true,
"regulatedMarketNote" : "string",
"isIpa" : true,
"ipaCode" : "string",
"establishedByRegulatoryProvision" : true,
"establishedByRegulatoryProvisionNote" : "string",
"isAgentOfPublicService" : true,
"agentOfPublicServiceNote" : "string",
"otherNote" : "string"
},
"paymentServiceProvider": {
"abiCode": "string",
"businessRegisterNumber": "string",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package it.pagopa.selfcare.dashboard.web.model.mapper;

import it.pagopa.selfcare.dashboard.connector.model.institution.DataProtectionOfficer;
import it.pagopa.selfcare.dashboard.connector.model.institution.InstitutionInfo;
import it.pagopa.selfcare.dashboard.connector.model.institution.PaymentServiceProvider;
import it.pagopa.selfcare.dashboard.connector.model.institution.RelationshipState;
import it.pagopa.selfcare.dashboard.connector.model.institution.*;
import it.pagopa.selfcare.dashboard.connector.model.user.CertifiedField;
import it.pagopa.selfcare.dashboard.connector.model.user.User;
import it.pagopa.selfcare.dashboard.connector.model.user.WorkContact;
Expand Down Expand Up @@ -65,6 +62,7 @@ public static OnboardingRequestResource.InstitutionInfo toResource(InstitutionIn
});
resource.setPspData(toResource(model.getPaymentServiceProvider()));
resource.setDpoData(toResource(model.getDataProtectionOfficer()));
resource.setAdditionalInformations(toResource(model.getAdditionalInformations()));
return resource;
}).orElse(null);
}
Expand Down Expand Up @@ -95,6 +93,23 @@ public static OnboardingRequestResource.InstitutionInfo.DpoData toResource(DataP
}).orElse(null);
}

public static OnboardingRequestResource.InstitutionInfo.AdditionalInformations toResource(AdditionalInformations model) {
return Optional.ofNullable(model)
.map(additionaInformations -> {
final OnboardingRequestResource.InstitutionInfo.AdditionalInformations resource = new OnboardingRequestResource.InstitutionInfo.AdditionalInformations();
resource.setIpa(additionaInformations.isIpa());
resource.setIpaCode(additionaInformations.getIpaCode());
resource.setOtherNote(additionaInformations.getOtherNote());
resource.setBelongRegulatedMarket(additionaInformations.isBelongRegulatedMarket());
resource.setRegulatedMarketNote(additionaInformations.getRegulatedMarketNote());
resource.setAgentOfPublicService(additionaInformations.isAgentOfPublicService());
resource.setAgentOfPublicServiceNote(additionaInformations.isAgentOfPublicService());
resource.setEstablishedByRegulatoryProvision(additionaInformations.isEstablishedByRegulatoryProvision());
resource.setEstablishedByRegulatoryProvisionNote(additionaInformations.getEstablishedByRegulatoryProvisionNote());
return resource;
}).orElse(null);
}


public static OnboardingRequestResource.UserInfo toResource(User model, String institutionId) {
return Optional.ofNullable(model)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,39 @@ public static class InstitutionInfo {
@ApiModelProperty(value = "${swagger.dashboard.institutions.model.dpoData}")
private DpoData dpoData;

@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations}")
private AdditionalInformations additionalInformations;

@Data
public static class AdditionalInformations{
@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations.belongRegulatedMarket}")
private boolean belongRegulatedMarket;

@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations.regulatedMarketNote}")
private String regulatedMarketNote;

@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations.isIpa}")
private boolean isIpa;

@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations.ipaCode}")
private String ipaCode;

@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations.establishedByRegulatoryProvision}")
private boolean establishedByRegulatoryProvision;

@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations.establishedByRegulatoryProvisionNote}")
private String establishedByRegulatoryProvisionNote;

@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations.isAgentOfPublicService}")
private boolean isAgentOfPublicService;

@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations.agentOfPublicServiceNote}")
private boolean agentOfPublicServiceNote;

@ApiModelProperty(value = "${swagger.dashboard.institutions.model.additionalInformations.otherNote}")
private String otherNote;
}

@Data
public static class PspData {

Expand Down
12 changes: 11 additions & 1 deletion web/src/main/resources/swagger/swagger_en.properties
Original file line number Diff line number Diff line change
Expand Up @@ -174,4 +174,14 @@ swagger.dashboard.support.model.email=User's email
swagger.dashboard.support.model.productId=Product's identifier
swagger.dashboard.delegation.model.institutionToName=Partner's name
swagger.dashboard.institutions.partners=Retrieve institution's delegations
swagger.dashboard.institutions.delegations=Retrieve list of delegation using to
swagger.dashboard.institutions.delegations=Retrieve list of delegation using to
swagger.dashboard.institutions.model.additionalInformations.belongRegulatedMarket=The institution belongs to a regulated market
swagger.dashboard.institutions.model.additionalInformations.regulatedMarketNote=regulatedMarket Note
swagger.dashboard.institutions.model.additionalInformations.isIpa=The institution is registered on IPA
swagger.dashboard.institutions.model.additionalInformations.ipaCode=IPA code
swagger.dashboard.institutions.model.additionalInformations.establishedByRegulatoryProvision=The institution is a company established by a regulatory provision
swagger.dashboard.institutions.model.additionalInformations.establishedByRegulatoryProvisionNote=establishedByRegulatoryProvision Note
swagger.dashboard.institutions.model.additionalInformations.isAgentOfPublicService=The institution is an agent of a public service
swagger.dashboard.institutions.model.additionalInformations.agentOfPublicServiceNote=agentOfPublicService Note
swagger.dashboard.institutions.model.additionalInformations.otherNote=Other note
swagger.dashboard.institutions.model.additionalInformations=Institution's additional informations

0 comments on commit 2cddc59

Please sign in to comment.