diff --git a/pom.xml b/pom.xml
index 004320d..afe601a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -157,10 +157,15 @@
com.fasterxml.jackson.datatype
- jackson-datatype-joda
- 2.13.1
+ jackson-datatype-jdk8
-
+
+ com.googlecode.libphonenumber
+ libphonenumber
+ 8.13.36
+
+
+
diff --git a/src/main/java/zw/qantra/tm/configs/JacksonConfig.java b/src/main/java/zw/qantra/tm/configs/JacksonConfig.java
index 10af2b6..f146914 100644
--- a/src/main/java/zw/qantra/tm/configs/JacksonConfig.java
+++ b/src/main/java/zw/qantra/tm/configs/JacksonConfig.java
@@ -1,6 +1,7 @@
package zw.qantra.tm.configs;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import com.fasterxml.jackson.datatype.joda.JodaModule;
import org.springframework.context.annotation.Bean;
@@ -16,6 +17,7 @@ public class JacksonConfig {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new JavaTimeModule());
objectMapper.registerModule(new JodaModule());
+ objectMapper.registerModule(new Jdk8Module());
return objectMapper;
}
diff --git a/src/main/java/zw/qantra/tm/domain/controllers/OnboardingController.java b/src/main/java/zw/qantra/tm/domain/controllers/OnboardingController.java
index 79acee7..009ab66 100644
--- a/src/main/java/zw/qantra/tm/domain/controllers/OnboardingController.java
+++ b/src/main/java/zw/qantra/tm/domain/controllers/OnboardingController.java
@@ -1,26 +1,25 @@
package zw.qantra.tm.domain.controllers;
-import io.nflow.engine.service.WorkflowInstanceInclude;
+import io.nflow.engine.internal.dao.WorkflowInstanceDao;
import io.nflow.engine.service.WorkflowInstanceService;
+import io.nflow.engine.workflow.instance.QueryWorkflowInstances;
import io.nflow.engine.workflow.instance.WorkflowInstance;
import io.nflow.engine.workflow.instance.WorkflowInstanceAction;
import io.nflow.engine.workflow.instance.WorkflowInstanceFactory;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.joda.time.DateTime;
+import org.joda.time.Instant;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
-import zw.qantra.tm.domain.dtos.AuthResponse;
-import zw.qantra.tm.domain.dtos.LoginRequest;
-import zw.qantra.tm.domain.dtos.RegisterRequest;
-import zw.qantra.tm.domain.dtos.VerifyRequest;
+import zw.qantra.tm.domain.dtos.*;
+import zw.qantra.tm.domain.services.OtpService;
import zw.qantra.tm.domain.services.UserService;
import zw.qantra.tm.domain.workflows.RegistrationWorkflow;
import zw.qantra.tm.domain.workflows.WorkflowUtils;
import zw.qantra.tm.utils.Utils;
-import java.util.EnumSet;
-import java.util.HashMap;
+import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
@@ -34,20 +33,46 @@ public class OnboardingController {
private final WorkflowInstanceService workflowInstanceService;
private final WorkflowInstanceFactory workflowInstanceFactory;
private final WorkflowUtils workflowUtils;
+ private final OtpService otpService;
+
+ @PostMapping("/check/{username}")
+ public ResponseEntity check(@PathVariable String username) {
+ QueryWorkflowInstances query = new QueryWorkflowInstances.Builder()
+ .setExternalId(username)
+ .setIncludeCurrentStateVariables(true)
+ .setIncludeActions(true)
+ .build();
+ List workflowInstanceList =
+ new ArrayList<>(workflowInstanceService.listWorkflowInstances(query));
+ if(!workflowInstanceList.isEmpty()){
+ WorkflowInstance instance = workflowInstanceList.get(0);
+ WorkflowInstanceAction action = instance.actions.get(0);
+ WorkflowStatusDto statusDto = new WorkflowStatusDto();
+ statusDto.setWorkflowId(instance.id);
+ statusDto.setState(instance.state);
+ statusDto.setStateText(instance.stateText);
+ statusDto.setStatus(instance.status.toString());
+ statusDto.setStage(action.state);
+ return ResponseEntity.ok(statusDto);
+ }
+
+ return ResponseEntity.notFound().build();
+ }
@PostMapping("/register")
public ResponseEntity