diff --git a/apps/onboarding-functions/pom.xml b/apps/onboarding-functions/pom.xml
index 2bad72c43..ccffb9988 100644
--- a/apps/onboarding-functions/pom.xml
+++ b/apps/onboarding-functions/pom.xml
@@ -22,7 +22,7 @@
true
3.1.2
1.5.5.Final
- 0.6.1
+ 0.6.2
diff --git a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/workflow/WorkflowExecutorConfirmation.java b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/workflow/WorkflowExecutorConfirmation.java
index d37a802f7..09347feef 100644
--- a/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/workflow/WorkflowExecutorConfirmation.java
+++ b/apps/onboarding-functions/src/main/java/it/pagopa/selfcare/onboarding/workflow/WorkflowExecutorConfirmation.java
@@ -11,12 +11,18 @@
import java.util.Optional;
import static it.pagopa.selfcare.onboarding.entity.OnboardingWorkflowType.INSTITUTION;
+import static it.pagopa.selfcare.onboarding.functions.utils.ActivityName.*;
+import static it.pagopa.selfcare.onboarding.utils.Utils.getOnboardingWorkflowString;
-public record WorkflowExecutorConfirmation(ObjectMapper objectMapper, TaskOptions optionsRetry) implements WorkflowExecutor {
+public record WorkflowExecutorConfirmation(ObjectMapper objectMapper,
+ TaskOptions optionsRetry) implements WorkflowExecutor {
@Override
public Optional executeRequestState(TaskOrchestrationContext ctx, OnboardingWorkflow onboardingWorkflow) {
- return Optional.empty();
+ String onboardingWorkflowString = getOnboardingWorkflowString(objectMapper, onboardingWorkflow);
+ ctx.callActivity(BUILD_CONTRACT_ACTIVITY_NAME, onboardingWorkflowString, optionsRetry, String.class).await();
+ ctx.callActivity(SAVE_TOKEN_WITH_CONTRACT_ACTIVITY_NAME, onboardingWorkflowString, optionsRetry, String.class).await();
+ return Optional.of(OnboardingStatus.PENDING);
}
@Override
diff --git a/apps/onboarding-ms/pom.xml b/apps/onboarding-ms/pom.xml
index cf7afd881..2583a590b 100644
--- a/apps/onboarding-ms/pom.xml
+++ b/apps/onboarding-ms/pom.xml
@@ -24,7 +24,7 @@
true
3.1.2
2.4.1
- 0.6.1
+ 0.6.2
diff --git a/apps/onboarding-ms/src/main/docs/openapi.json b/apps/onboarding-ms/src/main/docs/openapi.json
index 1387421d4..eb0b0527c 100644
--- a/apps/onboarding-ms/src/main/docs/openapi.json
+++ b/apps/onboarding-ms/src/main/docs/openapi.json
@@ -502,24 +502,9 @@
"operationId" : "onboardingCompletion",
"requestBody" : {
"content" : {
- "multipart/form-data" : {
+ "application/json" : {
"schema" : {
- "required" : [ "contract" ],
- "type" : "object",
- "properties" : {
- "onboardingRequest" : {
- "$ref" : "#/components/schemas/OnboardingDefaultRequest"
- },
- "contract" : {
- "format" : "binary",
- "type" : "string"
- }
- }
- },
- "encoding" : {
- "onboardingRequest" : {
- "contentType" : "application/json"
- }
+ "$ref" : "#/components/schemas/OnboardingDefaultRequest"
}
}
}
@@ -695,24 +680,9 @@
"operationId" : "onboardingPaCompletion",
"requestBody" : {
"content" : {
- "multipart/form-data" : {
+ "application/json" : {
"schema" : {
- "required" : [ "contract" ],
- "type" : "object",
- "properties" : {
- "onboardingRequest" : {
- "$ref" : "#/components/schemas/OnboardingPaRequest"
- },
- "contract" : {
- "format" : "binary",
- "type" : "string"
- }
- }
- },
- "encoding" : {
- "onboardingRequest" : {
- "contentType" : "application/json"
- }
+ "$ref" : "#/components/schemas/OnboardingPaRequest"
}
}
}
@@ -862,24 +832,9 @@
"operationId" : "onboardingPspCompletion",
"requestBody" : {
"content" : {
- "multipart/form-data" : {
+ "application/json" : {
"schema" : {
- "required" : [ "contract" ],
- "type" : "object",
- "properties" : {
- "onboardingRequest" : {
- "$ref" : "#/components/schemas/OnboardingPspRequest"
- },
- "contract" : {
- "format" : "binary",
- "type" : "string"
- }
- }
- },
- "encoding" : {
- "onboardingRequest" : {
- "contentType" : "application/json"
- }
+ "$ref" : "#/components/schemas/OnboardingPspRequest"
}
}
}
@@ -1979,6 +1934,9 @@
"legalRegisterName" : {
"type" : "string"
},
+ "longTermPayments" : {
+ "type" : "boolean"
+ },
"manager" : {
"type" : "boolean"
},
@@ -2746,6 +2704,9 @@
"legalRegisterName" : {
"type" : "string"
},
+ "longTermPayments" : {
+ "type" : "boolean"
+ },
"abiCode" : {
"type" : "string"
},
diff --git a/apps/onboarding-ms/src/main/docs/openapi.yaml b/apps/onboarding-ms/src/main/docs/openapi.yaml
index 03d83ad04..7abdadd95 100644
--- a/apps/onboarding-ms/src/main/docs/openapi.yaml
+++ b/apps/onboarding-ms/src/main/docs/openapi.yaml
@@ -367,20 +367,9 @@ paths:
operationId: onboardingCompletion
requestBody:
content:
- multipart/form-data:
+ application/json:
schema:
- required:
- - contract
- type: object
- properties:
- onboardingRequest:
- $ref: "#/components/schemas/OnboardingDefaultRequest"
- contract:
- format: binary
- type: string
- encoding:
- onboardingRequest:
- contentType: application/json
+ $ref: "#/components/schemas/OnboardingDefaultRequest"
responses:
"200":
description: OK
@@ -511,20 +500,9 @@ paths:
operationId: onboardingPaCompletion
requestBody:
content:
- multipart/form-data:
+ application/json:
schema:
- required:
- - contract
- type: object
- properties:
- onboardingRequest:
- $ref: "#/components/schemas/OnboardingPaRequest"
- contract:
- format: binary
- type: string
- encoding:
- onboardingRequest:
- contentType: application/json
+ $ref: "#/components/schemas/OnboardingPaRequest"
responses:
"200":
description: OK
@@ -631,20 +609,9 @@ paths:
operationId: onboardingPspCompletion
requestBody:
content:
- multipart/form-data:
+ application/json:
schema:
- required:
- - contract
- type: object
- properties:
- onboardingRequest:
- $ref: "#/components/schemas/OnboardingPspRequest"
- contract:
- format: binary
- type: string
- encoding:
- onboardingRequest:
- contentType: application/json
+ $ref: "#/components/schemas/OnboardingPspRequest"
responses:
"200":
description: OK
@@ -1438,6 +1405,8 @@ components:
type: string
legalRegisterName:
type: string
+ longTermPayments:
+ type: boolean
manager:
type: boolean
managerAuthorized:
@@ -2027,6 +1996,8 @@ components:
type: string
legalRegisterName:
type: string
+ longTermPayments:
+ type: boolean
abiCode:
type: string
vatNumberGroup:
diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/OnboardingController.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/OnboardingController.java
index 7fed09fb1..9817b6dbe 100644
--- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/OnboardingController.java
+++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/controller/OnboardingController.java
@@ -33,7 +33,6 @@
import org.eclipse.microprofile.openapi.annotations.Operation;
import org.eclipse.microprofile.openapi.annotations.extensions.Extension;
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
-import org.jboss.resteasy.reactive.PartType;
import org.jboss.resteasy.reactive.RestForm;
import org.jboss.resteasy.reactive.server.core.ResteasyReactiveRequestContext;
@@ -172,21 +171,12 @@ public Uni onboardingPsp(@Valid OnboardingPspRequest onboard
@POST
@Tag(name = "Onboarding Controller")
@Tag(name = "internal-v1")
- @Consumes(MediaType.MULTIPART_FORM_DATA)
+ @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
- public Uni onboardingCompletion(
- @NotNull @RestForm("contract") File file,
- @NotNull @FormParam("onboardingRequest") @PartType(MediaType.APPLICATION_JSON) OnboardingDefaultRequest onboardingRequest,
- @Context ResteasyReactiveRequestContext ctx,
- @Context SecurityContext securityContext) {
-
- return readUserIdFromToken(securityContext)
- .onItem()
- .transformToUni(
- userId -> onboardingService.onboardingCompletion(
- fillUserId(onboardingMapper.toEntity(onboardingRequest), userId),
- onboardingRequest.getUsers(),
- retrieveContractFromFormData(ctx.getFormData(), file)));
+ public Uni onboardingCompletion(@Valid OnboardingDefaultRequest onboardingRequest, @Context SecurityContext ctx) {
+ return readUserIdFromToken(ctx)
+ .onItem().transformToUni(userId -> onboardingService
+ .onboardingCompletion(fillUserId(onboardingMapper.toEntity(onboardingRequest), userId), onboardingRequest.getUsers()));
}
@Operation(
@@ -197,21 +187,12 @@ public Uni onboardingCompletion(
@Path("/pa/completion")
@Tag(name = "Onboarding Controller")
@Tag(name = "internal-v1")
- @Consumes(MediaType.MULTIPART_FORM_DATA)
+ @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
- public Uni onboardingPaCompletion(
- @NotNull @RestForm("contract") File file,
- @NotNull @FormParam("onboardingRequest") @PartType(MediaType.APPLICATION_JSON) OnboardingPaRequest onboardingRequest,
- @Context ResteasyReactiveRequestContext ctx,
- @Context SecurityContext securityContext) {
-
- return readUserIdFromToken(securityContext)
- .onItem()
- .transformToUni(
- userId -> onboardingService.onboardingCompletion(
- fillUserId(onboardingMapper.toEntity(onboardingRequest), userId),
- onboardingRequest.getUsers(),
- retrieveContractFromFormData(ctx.getFormData(), file)));
+ public Uni onboardingPaCompletion(@Valid OnboardingPaRequest onboardingRequest, @Context SecurityContext ctx) {
+ return readUserIdFromToken(ctx)
+ .onItem().transformToUni(userId -> onboardingService
+ .onboardingCompletion(fillUserId(onboardingMapper.toEntity(onboardingRequest), userId), onboardingRequest.getUsers()));
}
@Operation(
@@ -250,21 +231,12 @@ public Uni onboardingPspImport(@Valid OnboardingImportPspReq
@Path("/psp/completion")
@Tag(name = "Onboarding Controller")
@Tag(name = "internal-v1")
- @Consumes(MediaType.MULTIPART_FORM_DATA)
+ @Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
- public Uni onboardingPspCompletion(
- @NotNull @RestForm("contract") File file,
- @NotNull @FormParam("onboardingRequest") @PartType(MediaType.APPLICATION_JSON) OnboardingPspRequest onboardingRequest,
- @Context ResteasyReactiveRequestContext ctx,
- @Context SecurityContext securityContext) {
-
- return readUserIdFromToken(securityContext)
- .onItem()
- .transformToUni(
- userId -> onboardingService.onboardingCompletion(
- fillUserId(onboardingMapper.toEntity(onboardingRequest), userId),
- onboardingRequest.getUsers(),
- retrieveContractFromFormData(ctx.getFormData(), file)));
+ public Uni onboardingPspCompletion(@Valid OnboardingPspRequest onboardingRequest, @Context SecurityContext ctx) {
+ return readUserIdFromToken(ctx)
+ .onItem().transformToUni(userId -> onboardingService
+ .onboardingCompletion(fillUserId(onboardingMapper.toEntity(onboardingRequest), userId), onboardingRequest.getUsers()));
}
@Operation(
@@ -280,7 +252,7 @@ public Uni onboardingPspCompletion(
public Uni onboardingPgCompletion(@Valid OnboardingPgRequest onboardingRequest, @Context SecurityContext ctx) {
return readUserIdFromToken(ctx)
.onItem().transformToUni(userId -> onboardingService
- .onboardingCompletion(fillUserId(onboardingMapper.toEntity(onboardingRequest), userId), onboardingRequest.getUsers(), null));
+ .onboardingPgCompletion(fillUserId(onboardingMapper.toEntity(onboardingRequest), userId), onboardingRequest.getUsers()));
}
@Operation(
diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/BusinessData.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/BusinessData.java
index 25f6add6b..2e3d16a8f 100644
--- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/BusinessData.java
+++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/BusinessData.java
@@ -9,5 +9,6 @@ public class BusinessData {
private String businessRegisterNumber;
private String legalRegisterNumber;
private String legalRegisterName;
+ private boolean longTermPayments;
}
\ No newline at end of file
diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerPT.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerPT.java
index 918790ac4..d0d6a4603 100644
--- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerPT.java
+++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerPT.java
@@ -20,6 +20,7 @@ public Uni customValidation(Product product) {
onboarding.getInstitution().getTaxCode(),
onboarding.getProductId()), DEFAULT_ERROR.getCode());
}
- return Uni.createFrom().item(onboarding);
+
+ return super.customValidation(product);
}
}
diff --git a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerSELC.java b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerSELC.java
index fada31e9e..b2878474e 100644
--- a/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerSELC.java
+++ b/apps/onboarding-ms/src/main/java/it/pagopa/selfcare/onboarding/entity/registry/RegistryManagerSELC.java
@@ -1,7 +1,10 @@
package it.pagopa.selfcare.onboarding.entity.registry;
import io.smallrye.mutiny.Uni;
+import it.pagopa.selfcare.onboarding.common.Origin;
+import it.pagopa.selfcare.onboarding.common.WorkflowType;
import it.pagopa.selfcare.onboarding.entity.Onboarding;
+import it.pagopa.selfcare.onboarding.exception.InvalidRequestException;
import it.pagopa.selfcare.product.entity.Product;
public class RegistryManagerSELC extends BaseRegistryManager