Skip to content

Commit

Permalink
[SELC-5850] Adding more field to institution for update api (#565)
Browse files Browse the repository at this point in the history
andrea-putzu authored Oct 24, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 78718d9 commit b35e072
Showing 3 changed files with 66 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -15,7 +15,7 @@
@EqualsAndHashCode(callSuper = true)
@Data
@FieldNameConstants(asEnum = true)
@MongoEntity(collection="onboardings")
@MongoEntity(collection = "onboardings")
public class Onboarding extends ReactivePanacheMongoEntityBase {

@BsonId
@@ -35,6 +35,8 @@ public class Onboarding extends ReactivePanacheMongoEntityBase {
private LocalDateTime activatedAt;
private LocalDateTime updatedAt;
private LocalDateTime expiringDate;
private LocalDateTime deletedAt;

private OnboardingStatus status;
private String userRequestUid;
private AdditionalInformations additionalInformations;
Original file line number Diff line number Diff line change
@@ -33,6 +33,7 @@ private QueryUtils() {
static class FieldNames {
private FieldNames() {
}

public static final String STATUS = "status";
public static final String FROM = "from";
public static final String TO = "to";
@@ -41,7 +42,7 @@ private FieldNames() {
public static final String INSTITUTION_ID = "institution.id";
public static final String INSTITUTION_ORIGIN = "institution.origin";
public static final String INSTITUTION_ORIGIN_ID = "institution.originId";
public static final String INSTITUTION_SUBUNIT_CODE = "institution.subunitCode";
public static final String INSTITUTION_SUBUNIT_CODE = "institution.subunitCode";
}

public static Document buildQuery(Map<String, String> parameters) {
@@ -127,23 +128,44 @@ public static Map<String, Object> createMapForOnboardingReject(String reasonForR

public static Map<String, Object> createMapForOnboardingUpdate(Onboarding onboarding) {
Map<String, Object> queryParameterMap = new HashMap<>();
// Dates
Optional.ofNullable(onboarding.getActivatedAt()).ifPresent(value -> queryParameterMap.put("activatedAt", value));
Optional.ofNullable(onboarding.getCreatedAt()).ifPresent(value -> queryParameterMap.put("createdAt", value));
Optional.ofNullable(onboarding.getDeletedAt()).ifPresent(value -> queryParameterMap.put("deletedAt", value));
// Root elements
Optional.ofNullable(onboarding.getStatus()).ifPresent(value -> queryParameterMap.put(STATUS, value.name()));
// Billing
Optional.ofNullable(onboarding.getBilling())
.ifPresent(billing -> {
Optional.ofNullable(billing.getRecipientCode()).ifPresent(value -> queryParameterMap.put("billing.recipientCode", value));
Optional.ofNullable(billing.getVatNumber()).ifPresent(value -> queryParameterMap.put("billing.vatNumber", value));
Optional.ofNullable(billing.getTaxCodeInvoicing()).ifPresent(value -> queryParameterMap.put("billing.taxCodeInvoicing()", value));
});
// Institution
Optional.ofNullable(onboarding.getInstitution())
.ifPresent(institution -> {
Optional.ofNullable(institution.getAddress()).ifPresent(value -> queryParameterMap.put("institution.address", value));
Optional.ofNullable(institution.getDescription()).ifPresent(value -> queryParameterMap.put("institution.description", value));
Optional.ofNullable(institution.getDigitalAddress()).ifPresent(value -> queryParameterMap.put("institution.digitalAddress", value));
Optional.ofNullable(institution.getCity()).ifPresent(value -> queryParameterMap.put("institution.city", value));
Optional.ofNullable(institution.getCountry()).ifPresent(value -> queryParameterMap.put("institution.country", value));
Optional.ofNullable(institution.getCounty()).ifPresent(value -> queryParameterMap.put("institution.county", value));
Optional.ofNullable(institution.getZipCode()).ifPresent(value -> queryParameterMap.put("institution.zipCode", value));
Optional.ofNullable(institution.getIstatCode()).ifPresent(value -> queryParameterMap.put("institution.istatCode", value));
Optional.ofNullable(institution.getRea()).ifPresent(value -> queryParameterMap.put("institution.rea", value));
Optional.ofNullable(institution.getShareCapital()).ifPresent(value -> queryParameterMap.put("institution.shareCapital", value));
Optional.ofNullable(institution.getBusinessRegisterPlace()).ifPresent(value -> queryParameterMap.put("institution.businessRegisterPlace", value));
Optional.ofNullable(institution.getSupportEmail()).ifPresent(value -> queryParameterMap.put("institution.supportEmail", value));
Optional.ofNullable(institution.getParentDescription()).ifPresent(value -> queryParameterMap.put("institution.parentDescription", value));
});
queryParameterMap.put("updatedAt", LocalDateTime.now());
return queryParameterMap;
}

public static Document buildSortDocument(String field, SortEnum order) {
if(SortEnum.ASC == order) {
if (SortEnum.ASC == order) {
return bsonToDocument(Sorts.ascending(field));
}else{
} else {
return bsonToDocument(Sorts.descending(field));
}
}
Original file line number Diff line number Diff line change
@@ -3,12 +3,16 @@
import io.quarkus.test.junit.QuarkusTest;
import it.pagopa.selfcare.onboarding.common.OnboardingStatus;
import it.pagopa.selfcare.onboarding.entity.Billing;
import it.pagopa.selfcare.onboarding.entity.Institution;
import it.pagopa.selfcare.onboarding.entity.Onboarding;
import org.junit.jupiter.api.Test;
import org.wildfly.common.Assert;

import java.time.Duration;
import java.time.LocalDateTime;
import java.time.temporal.TemporalAmount;
import java.util.Map;
import java.util.Optional;

@QuarkusTest
class QueryUtilsTest {
@@ -18,18 +22,50 @@ void testOnboardingUpdateMap_recipientCode() {
Billing billing = new Billing();
billing.setRecipientCode("recipientCode");

Onboarding onboarding = new Onboarding();
Institution institution = new Institution();
institution.setAddress("address");
institution.setDescription("description");
institution.setDigitalAddress("digitalAddress");
institution.setCity("city");
institution.setCountry("country");
institution.setCounty("county");
institution.setIstatCode("istatCode");
institution.setZipCode("zipCode");
institution.setRea("rea");
institution.setShareCapital("shareCapital");
institution.setBusinessRegisterPlace("businessRegisterPlace");
institution.setSupportEmail("supportEmail");
institution.setParentDescription("parentDescription");

Onboarding onboarding = new Onboarding();
onboarding.setStatus(OnboardingStatus.COMPLETED);
onboarding.setBilling(billing);
onboarding.setInstitution(institution);
onboarding.setCreatedAt(LocalDateTime.now());
onboarding.setDeletedAt(LocalDateTime.now().plus(Duration.ofDays(1)));
Map<String, Object> onboardingMap = QueryUtils.createMapForOnboardingUpdate(onboarding);

Assert.assertNotNull(onboardingMap);
Assert.assertNotNull(onboardingMap.get("billing.recipientCode"));
Assert.assertTrue(onboardingMap.get("billing.recipientCode").equals("recipientCode"));
Assert.assertNotNull(onboardingMap.get("status"));
Assert.assertTrue(onboardingMap.get("status").equals(OnboardingStatus.COMPLETED.name()));
Assert.assertNotNull(onboardingMap.get("createdAt"));
Assert.assertTrue(onboardingMap.get("createdAt").equals(onboarding.getCreatedAt()));
Assert.assertNotNull(onboardingMap.get("deletedAt"));
Assert.assertTrue(onboardingMap.get("deletedAt").equals(onboarding.getDeletedAt()));

Assert.assertTrue(onboardingMap.get("institution.address").equals("address"));
Assert.assertTrue(onboardingMap.get("institution.description").equals("description"));
Assert.assertTrue(onboardingMap.get("institution.digitalAddress").equals("digitalAddress"));
Assert.assertTrue(onboardingMap.get("institution.city").equals("city"));
Assert.assertTrue(onboardingMap.get("institution.country").equals("country"));
Assert.assertTrue(onboardingMap.get("institution.county").equals("county"));
Assert.assertTrue(onboardingMap.get("institution.zipCode").equals("zipCode"));
Assert.assertTrue(onboardingMap.get("institution.istatCode").equals("istatCode"));
Assert.assertTrue(onboardingMap.get("institution.rea").equals("rea"));
Assert.assertTrue(onboardingMap.get("institution.shareCapital").equals("shareCapital"));
Assert.assertTrue(onboardingMap.get("institution.businessRegisterPlace").equals("businessRegisterPlace"));
Assert.assertTrue(onboardingMap.get("institution.supportEmail").equals("supportEmail"));
Assert.assertTrue(onboardingMap.get("institution.parentDescription").equals("parentDescription"));
}
}

0 comments on commit b35e072

Please sign in to comment.