diff --git a/pom.xml b/pom.xml
index 11ad67c..5c76030 100644
--- a/pom.xml
+++ b/pom.xml
@@ -99,13 +99,17 @@
20231013
- org.postgresql
- postgresql
- runtime
+ joda-time
+ joda-time
+ 2.12.5
- com.h2database
- h2
+ com.fasterxml.jackson.datatype
+ jackson-datatype-joda
+
+
+ org.postgresql
+ postgresql
runtime
@@ -143,7 +147,10 @@
nflow-rest-api-spring-web
10.0.1
-
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
diff --git a/src/main/java/zw/qantra/tm/configs/JacksonConfig.java b/src/main/java/zw/qantra/tm/configs/JacksonConfig.java
new file mode 100644
index 0000000..bca58ba
--- /dev/null
+++ b/src/main/java/zw/qantra/tm/configs/JacksonConfig.java
@@ -0,0 +1,21 @@
+package zw.qantra.tm.configs;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.datatype.joda.JodaModule;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+@Configuration
+public class JacksonConfig {
+
+ @Bean
+ @Primary
+ public ObjectMapper objectMapper() {
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.registerModule(new JavaTimeModule());
+ objectMapper.registerModule(new JodaModule());
+ return objectMapper;
+ }
+}
diff --git a/src/main/java/zw/qantra/tm/configs/SecurityConfig.java b/src/main/java/zw/qantra/tm/configs/SecurityConfig.java
index 7f460b0..a403342 100644
--- a/src/main/java/zw/qantra/tm/configs/SecurityConfig.java
+++ b/src/main/java/zw/qantra/tm/configs/SecurityConfig.java
@@ -29,9 +29,9 @@ public class SecurityConfig {
http
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(auth -> auth
- .requestMatchers("/explorer/**").permitAll()
- .requestMatchers("/nflow/**").permitAll()
- .requestMatchers("/auth/**").permitAll()
+ .requestMatchers("/explorer/**").permitAll()
+ .requestMatchers("/nflow/**").permitAll()
+ .requestMatchers("/auth/**").permitAll()
.requestMatchers("/public/**").permitAll()
.anyRequest().authenticated()
)
diff --git a/src/main/java/zw/qantra/tm/domain/controllers/AuthController.java b/src/main/java/zw/qantra/tm/domain/controllers/AuthController.java
index 238c02c..930c05c 100644
--- a/src/main/java/zw/qantra/tm/domain/controllers/AuthController.java
+++ b/src/main/java/zw/qantra/tm/domain/controllers/AuthController.java
@@ -1,5 +1,7 @@
package zw.qantra.tm.domain.controllers;
+import io.nflow.engine.service.WorkflowInstanceService;
+import io.nflow.engine.workflow.instance.WorkflowInstanceFactory;
import jakarta.validation.Valid;
import lombok.RequiredArgsConstructor;
import org.springframework.http.ResponseEntity;
@@ -8,6 +10,12 @@ 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.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.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutionException;
@RestController
@RequestMapping("/auth")
@@ -16,11 +24,26 @@ import zw.qantra.tm.domain.services.UserService;
public class AuthController {
private final UserService userService;
+ private final WorkflowInstanceService workflowService;
+ private final WorkflowInstanceFactory workflowInstanceFactory;
+ private final WorkflowUtils workflowUtils;
+
@PostMapping("/register")
- public ResponseEntity register(@Valid @RequestBody RegisterRequest request) {
- AuthResponse response = userService.register(request);
- return ResponseEntity.ok(response);
+ public ResponseEntity