Skip to content

Commit

Permalink
[SELC-4155] refactor: mongo entity id as string (#169)
Browse files Browse the repository at this point in the history
* migrate ms

* migrate functions
  • Loading branch information
manuraf authored Feb 14, 2024
1 parent c487f8b commit f6573e5
Show file tree
Hide file tree
Showing 18 changed files with 142 additions and 200 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import io.quarkus.mongodb.panache.common.MongoEntity;
import it.pagopa.selfcare.onboarding.common.OnboardingStatus;
import it.pagopa.selfcare.onboarding.common.WorkflowType;
import org.bson.types.ObjectId;
import org.bson.codecs.pojo.annotations.BsonId;

import java.time.LocalDateTime;
import java.util.List;
Expand All @@ -13,9 +13,8 @@
@MongoEntity(collection="onboardings")
public class Onboarding {

private ObjectId id;

private String onboardingId;
@BsonId
private String id;
private String productId;
private List<String> testEnvProductIds;
private WorkflowType workflowType;
Expand All @@ -32,11 +31,11 @@ public class Onboarding {
private String userRequestUid;
private String workflowInstanceId;

public ObjectId getId() {
public String getId() {
return id;
}

public void setId(ObjectId id) {
public void setId(String id) {
this.id = id;
}

Expand Down Expand Up @@ -104,14 +103,6 @@ public void setStatus(OnboardingStatus status) {
this.status = status;
}

public String getOnboardingId() {
return onboardingId;
}

public void setOnboardingId(String onboardingId) {
this.onboardingId = onboardingId;
}

public String getUserRequestUid() {
return userRequestUid;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@

import io.quarkus.mongodb.panache.common.MongoEntity;
import it.pagopa.selfcare.onboarding.common.TokenType;
import org.bson.types.ObjectId;
import org.bson.codecs.pojo.annotations.BsonId;

import java.time.LocalDateTime;


@MongoEntity(collection="tokens")
public class Token {

private ObjectId id;
@BsonId
private String id;
private TokenType type;
private String onboardingId;
private String productId;
Expand All @@ -25,11 +26,11 @@ public class Token {
private LocalDateTime deletedAt;
private LocalDateTime activatedAt;

public ObjectId getId() {
public String getId() {
return id;
}

public void setId(ObjectId id) {
public void setId(String id) {
this.id = id;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package it.pagopa.selfcare.onboarding.repository;

import io.quarkus.mongodb.panache.PanacheMongoRepository;
import io.quarkus.mongodb.panache.PanacheMongoRepositoryBase;
import it.pagopa.selfcare.onboarding.entity.Onboarding;
import jakarta.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class OnboardingRepository implements PanacheMongoRepository<Onboarding> {
public class OnboardingRepository implements PanacheMongoRepositoryBase<Onboarding, String> {

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package it.pagopa.selfcare.onboarding.repository;

import io.quarkus.mongodb.panache.PanacheMongoRepository;
import io.quarkus.mongodb.panache.PanacheMongoRepositoryBase;
import it.pagopa.selfcare.onboarding.entity.Token;
import jakarta.enterprise.context.ApplicationScoped;

import java.util.Optional;

@ApplicationScoped
public class TokenRepository implements PanacheMongoRepository<Token> {
public class TokenRepository implements PanacheMongoRepositoryBase<Token, String> {

public static final String ONBOARDING_ID_FIELD = "onboardingId";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public String createInstitutionAndPersistInstitutionId(Onboarding onboarding) {

onboardingRepository
.update("institution.id", institutionResponse.getId())
.where("_id", onboarding.getOnboardingId());
.where("_id", onboarding.getId());

return institutionResponse.getId();
}
Expand Down Expand Up @@ -210,7 +210,7 @@ public void persistOnboarding(Onboarding onboarding) {
);
onboardingRequest.pricingPlan(onboarding.getPricingPlan());
onboardingRequest.productId(onboarding.getProductId());
onboardingRequest.setTokenId(onboarding.getOnboardingId());
onboardingRequest.setTokenId(onboarding.getId());

if(Objects.nonNull(onboarding.getBilling())) {
BillingRequest billingRequest = new BillingRequest();
Expand All @@ -221,7 +221,7 @@ public void persistOnboarding(Onboarding onboarding) {
}

//If contract exists we send the path of the contract
Optional<Token> optToken = tokenRepository.findByOnboardingId(onboarding.getOnboardingId());
Optional<Token> optToken = tokenRepository.findByOnboardingId(onboarding.getId());
optToken.ifPresent(token -> onboardingRequest.setContractPath(token.getContractSigned()));

institutionApi.onboardingInstitutionUsingPOST(onboarding.getInstitution().getId(), onboardingRequest);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ public File createContractPDF(String contractTemplatePath, Onboarding onboarding

// Define the filename and path for storage.
final String filename = CONTRACT_FILENAME_FUNC.apply(productName);
final String path = String.format("%s%s", azureStorageConfig.contractPath(), onboarding.getOnboardingId());
final String path = String.format("%s%s", azureStorageConfig.contractPath(), onboarding.getId());

File signedPath = signPdf(temporaryPdfFile, institution.getDescription(), productId);
azureBlobClient.uploadFile(path, filename, Files.readAllBytes(signedPath.toPath()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import it.pagopa.selfcare.product.service.ProductService;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import org.bson.types.ObjectId;
import org.eclipse.microprofile.rest.client.inject.RestClient;
import org.openapi.quarkus.user_registry_json.api.UserApi;
import org.openapi.quarkus.user_registry_json.model.CertifiableFieldResourceOfstring;
Expand Down Expand Up @@ -60,11 +59,7 @@ public class OnboardingService {
TokenRepository tokenRepository;

public Optional<Onboarding> getOnboarding(String onboardingId) {
return repository.findByIdOptional(new ObjectId(onboardingId))
.map(onboarding -> {
onboarding.setOnboardingId(onboarding.getId().toString());
return onboarding;
});
return repository.findByIdOptional(onboardingId);
}

public void createContract(Onboarding onboarding) {
Expand All @@ -89,12 +84,12 @@ public void createContract(Onboarding onboarding) {

public void loadContract(Onboarding onboarding) {
Product product = productService.getProductIsValid(onboarding.getProductId());
contractService.loadContractPDF(product.getContractTemplatePath(), onboarding.getId().toHexString(), product.getTitle());
contractService.loadContractPDF(product.getContractTemplatePath(), onboarding.getId(), product.getTitle());
}
public void saveTokenWithContract(Onboarding onboarding) {

// Skip if token already exists
Optional<Token> optToken = tokenRepository.findByOnboardingId(onboarding.getOnboardingId());
Optional<Token> optToken = tokenRepository.findByOnboardingId(onboarding.getId());
if(optToken.isPresent()) {
log.debug("Token has already exists for onboarding {}", onboarding.getId());
return;
Expand All @@ -103,7 +98,7 @@ public void saveTokenWithContract(Onboarding onboarding) {
Product product = productService.getProductIsValid(onboarding.getProductId());

// Load PDF contract and create digest
File contract = contractService.retrieveContractNotSigned(onboarding.getOnboardingId(), product.getTitle());
File contract = contractService.retrieveContractNotSigned(onboarding.getId(), product.getTitle());
DSSDocument document = new FileDocument(contract);
String digest = document.getDigest(DigestAlgorithm.SHA256);

Expand All @@ -116,7 +111,8 @@ private void saveToken(Onboarding onboarding, Product product, String digest) {

// Persist token entity
Token token = new Token();
token.setOnboardingId(onboarding.getOnboardingId());
token.setId(onboarding.getId());
token.setOnboardingId(onboarding.getId());
token.setContractTemplate(product.getContractTemplatePath());
token.setContractVersion(product.getContractTemplateVersion());
token.setContractFilename(CONTRACT_FILENAME_FUNC.apply(product.getTitle()));
Expand Down Expand Up @@ -144,7 +140,7 @@ public void sendMailRegistrationWithContract(Onboarding onboarding) {

SendMailInput sendMailInput = builderWithProductAndUserRequest(onboarding);

notificationService.sendMailRegistrationWithContract(onboarding.getOnboardingId(),
notificationService.sendMailRegistrationWithContract(onboarding.getId(),
onboarding.getInstitution().getDigitalAddress(),
sendMailInput.userRequestName, sendMailInput.userRequestSurname,
sendMailInput.product.getTitle());
Expand All @@ -154,7 +150,7 @@ public void sendMailRegistrationWithContractWhenApprove(Onboarding onboarding) {

SendMailInput sendMailInput = builderWithProductAndUserRequest(onboarding);

notificationService.sendMailRegistrationWithContract(onboarding.getOnboardingId(),
notificationService.sendMailRegistrationWithContract(onboarding.getId(),
onboarding.getInstitution().getDigitalAddress(),
onboarding.getInstitution().getDescription(), "",
sendMailInput.product.getTitle());
Expand All @@ -167,7 +163,7 @@ public void sendMailRegistrationApprove(Onboarding onboarding) {
notificationService.sendMailRegistrationApprove(onboarding.getInstitution().getDescription(),
sendMailInput.userRequestName, sendMailInput.userRequestSurname,
sendMailInput.product.getTitle(),
onboarding.getOnboardingId());
onboarding.getId());

}

Expand All @@ -178,7 +174,7 @@ public void sendMailOnboardingApprove(Onboarding onboarding) {
notificationService.sendMailOnboardingApprove(onboarding.getInstitution().getDescription(),
sendMailInput.userRequestName, sendMailInput.userRequestSurname,
sendMailInput.product.getTitle(),
onboarding.getOnboardingId());
onboarding.getId());
}

public String getValidManagerId(List<User> users) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ void onboardingsOrchestrator_throwExceptionIfOnboardingNotPresent() {
@Test
void onboardingsOrchestratorContractRegistration() {
Onboarding onboarding = new Onboarding();
onboarding.setOnboardingId("onboardingId");
onboarding.setId("onboardingId");
onboarding.setStatus(OnboardingStatus.REQUEST);
onboarding.setWorkflowType(WorkflowType.CONTRACT_REGISTRATION);

Expand All @@ -130,13 +130,13 @@ void onboardingsOrchestratorContractRegistration() {
assertEquals(SEND_MAIL_REGISTRATION_WITH_CONTRACT_ACTIVITY, captorActivity.getAllValues().get(2));

Mockito.verify(service, times(1))
.updateOnboardingStatus(onboarding.getOnboardingId(), OnboardingStatus.PENDING);
.updateOnboardingStatus(onboarding.getId(), OnboardingStatus.PENDING);
}

@Test
void onboardingsOrchestratorForApprove() {
Onboarding onboarding = new Onboarding();
onboarding.setOnboardingId("onboardingId");
onboarding.setId("onboardingId");
onboarding.setStatus(OnboardingStatus.REQUEST);
onboarding.setWorkflowType(WorkflowType.FOR_APPROVE);

Expand All @@ -151,13 +151,13 @@ void onboardingsOrchestratorForApprove() {
assertEquals(SEND_MAIL_ONBOARDING_APPROVE_ACTIVITY, captorActivity.getAllValues().get(0));

Mockito.verify(service, times(1))
.updateOnboardingStatus(onboarding.getOnboardingId(), OnboardingStatus.TOBEVALIDATED);
.updateOnboardingStatus(onboarding.getId(), OnboardingStatus.TOBEVALIDATED);
}

@Test
void onboardingsOrchestratorForApproveWhenToBeValidated() {
Onboarding onboarding = new Onboarding();
onboarding.setOnboardingId("onboardingId");
onboarding.setId("onboardingId");
onboarding.setStatus(OnboardingStatus.TOBEVALIDATED);
onboarding.setWorkflowType(WorkflowType.FOR_APPROVE);

Expand All @@ -174,13 +174,13 @@ void onboardingsOrchestratorForApproveWhenToBeValidated() {
assertEquals(SEND_MAIL_REGISTRATION_WITH_CONTRACT_WHEN_APPROVE_ACTIVITY, captorActivity.getAllValues().get(2));

Mockito.verify(service, times(1))
.updateOnboardingStatus(onboarding.getOnboardingId(), OnboardingStatus.PENDING);
.updateOnboardingStatus(onboarding.getId(), OnboardingStatus.PENDING);
}

@Test
void onboardingsOrchestratorConfirmation() {
Onboarding onboarding = new Onboarding();
onboarding.setOnboardingId("onboardingId");
onboarding.setId("onboardingId");
onboarding.setStatus(OnboardingStatus.PENDING);
onboarding.setWorkflowType(WorkflowType.CONFIRMATION);
onboarding.setInstitution(new Institution());
Expand All @@ -198,13 +198,13 @@ void onboardingsOrchestratorConfirmation() {
assertEquals(SEND_MAIL_COMPLETION_ACTIVITY, captorActivity.getAllValues().get(2));

Mockito.verify(service, times(1))
.updateOnboardingStatus(onboarding.getOnboardingId(), OnboardingStatus.COMPLETED);
.updateOnboardingStatus(onboarding.getId(), OnboardingStatus.COMPLETED);
}

@Test
void onboardingsOrchestratorImport() {
Onboarding onboarding = new Onboarding();
onboarding.setOnboardingId("onboardingId");
onboarding.setId("onboardingId");
onboarding.setStatus(OnboardingStatus.PENDING);
onboarding.setWorkflowType(WorkflowType.IMPORT);
onboarding.setInstitution(new Institution());
Expand All @@ -220,13 +220,13 @@ void onboardingsOrchestratorImport() {
assertEquals(CREATE_ONBOARDING_ACTIVITY, captorActivity.getAllValues().get(1));

Mockito.verify(service, times(1))
.updateOnboardingStatus(onboarding.getOnboardingId(), OnboardingStatus.COMPLETED);
.updateOnboardingStatus(onboarding.getId(), OnboardingStatus.COMPLETED);
}

@Test
void onboardingsOrchestratorRegistrationRequestApprove() {
Onboarding onboarding = new Onboarding();
onboarding.setOnboardingId("onboardingId");
onboarding.setId("onboardingId");
onboarding.setStatus(OnboardingStatus.REQUEST);
onboarding.setWorkflowType(WorkflowType.FOR_APPROVE_PT);

Expand All @@ -242,15 +242,15 @@ void onboardingsOrchestratorRegistrationRequestApprove() {
assertEquals(SEND_MAIL_REGISTRATION_APPROVE_ACTIVITY, captorActivity.getAllValues().get(1));

Mockito.verify(service, times(1))
.updateOnboardingStatus(onboarding.getOnboardingId(), OnboardingStatus.TOBEVALIDATED);
.updateOnboardingStatus(onboarding.getId(), OnboardingStatus.TOBEVALIDATED);
}



@Test
void onboardingsOrchestratorForApprovePtWhenToBeValidated() {
Onboarding onboarding = new Onboarding();
onboarding.setOnboardingId("onboardingId");
onboarding.setId("onboardingId");
onboarding.setInstitution(new Institution());
onboarding.setStatus(OnboardingStatus.TOBEVALIDATED);
onboarding.setWorkflowType(WorkflowType.FOR_APPROVE_PT);
Expand All @@ -267,13 +267,13 @@ void onboardingsOrchestratorForApprovePtWhenToBeValidated() {
assertEquals(SEND_MAIL_COMPLETION_ACTIVITY, captorActivity.getAllValues().get(2));

Mockito.verify(service, times(1))
.updateOnboardingStatus(onboarding.getOnboardingId(), OnboardingStatus.COMPLETED);
.updateOnboardingStatus(onboarding.getId(), OnboardingStatus.COMPLETED);
}

TaskOrchestrationContext mockTaskOrchestrationContext(Onboarding onboarding) {
TaskOrchestrationContext orchestrationContext = mock(TaskOrchestrationContext.class);
when(orchestrationContext.getInput(String.class)).thenReturn(onboarding.getOnboardingId());
when(service.getOnboarding(onboarding.getOnboardingId())).thenReturn(Optional.of(onboarding));
when(orchestrationContext.getInput(String.class)).thenReturn(onboarding.getId());
when(service.getOnboarding(onboarding.getId())).thenReturn(Optional.of(onboarding));

Task task = mock(Task.class);
when(orchestrationContext.callActivity(any(),any(),any(),any())).thenReturn(task);
Expand Down Expand Up @@ -368,7 +368,7 @@ void sendMailRegistrationWithContractWhenApprove() {
@Test
void onboardingCompletionOrchestrator() {
Onboarding onboarding = new Onboarding();
onboarding.setOnboardingId("onboardingId");
onboarding.setId("onboardingId");
onboarding.setStatus(OnboardingStatus.PENDING);
onboarding.setWorkflowType(WorkflowType.CONTRACT_REGISTRATION);
onboarding.setInstitution(new Institution());
Expand All @@ -386,7 +386,7 @@ void onboardingCompletionOrchestrator() {
assertEquals(SEND_MAIL_COMPLETION_ACTIVITY, captorActivity.getAllValues().get(2));

Mockito.verify(service, times(1))
.updateOnboardingStatus(onboarding.getOnboardingId(), OnboardingStatus.COMPLETED);
.updateOnboardingStatus(onboarding.getId(), OnboardingStatus.COMPLETED);
}


Expand All @@ -395,7 +395,7 @@ void onboardingCompletionOrchestrator() {
@Test
void onboardingRejectedOrchestrator() {
Onboarding onboarding = new Onboarding();
onboarding.setOnboardingId("onboardingId");
onboarding.setId("onboardingId");
onboarding.setStatus(OnboardingStatus.REJECTED);
onboarding.setWorkflowType(WorkflowType.CONTRACT_REGISTRATION);
onboarding.setInstitution(new Institution());
Expand Down
Loading

0 comments on commit f6573e5

Please sign in to comment.