diff --git a/pom.xml b/pom.xml
index d2022b37..2d93875f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -27,14 +27,12 @@
org.projectlombok
lombok
- 1.18.24
com.h2database
h2
- 1.4.200
@@ -103,6 +101,14 @@
org.springframework.boot
spring-boot-starter-web
+
+ jakarta.validation
+ jakarta.validation-api
+
+
+ org.hibernate.validator
+ hibernate-validator
+
diff --git a/src/main/java/net/gepafin/tendermanagement/dao/UserDao.java b/src/main/java/net/gepafin/tendermanagement/dao/UserDao.java
index af0e19f4..b2fd8190 100644
--- a/src/main/java/net/gepafin/tendermanagement/dao/UserDao.java
+++ b/src/main/java/net/gepafin/tendermanagement/dao/UserDao.java
@@ -1,14 +1,12 @@
package net.gepafin.tendermanagement.dao;
import net.gepafin.tendermanagement.config.Translator;
-import net.gepafin.tendermanagement.config.jwt.TokenProvider;
import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.entities.RoleEntity;
import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.model.request.LoginReq;
import net.gepafin.tendermanagement.model.request.UpdateUserReq;
import net.gepafin.tendermanagement.model.request.UserReq;
-import net.gepafin.tendermanagement.model.response.LoginResponse;
import net.gepafin.tendermanagement.model.response.RoleResponseBean;
import net.gepafin.tendermanagement.model.response.UserResponseBean;
import net.gepafin.tendermanagement.model.util.JWTToken;
diff --git a/src/main/java/net/gepafin/tendermanagement/entities/RegionEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/RegionEntity.java
index d9687dd1..386b9787 100644
--- a/src/main/java/net/gepafin/tendermanagement/entities/RegionEntity.java
+++ b/src/main/java/net/gepafin/tendermanagement/entities/RegionEntity.java
@@ -2,19 +2,15 @@ package net.gepafin.tendermanagement.entities;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
-import jakarta.persistence.GeneratedValue;
-import jakarta.persistence.GenerationType;
-import jakarta.persistence.Id;
import jakarta.persistence.Table;
import lombok.Getter;
import lombok.Setter;
-import net.gepafin.tendermanagement.entities.BaseEntity;
import java.math.BigDecimal;
@Entity
-@Table(name = "\"REGION\"")
+@Table(name = "REGION")
@Getter
@Setter
public class RegionEntity extends BaseEntity {
diff --git a/src/main/java/net/gepafin/tendermanagement/entities/RoleEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/RoleEntity.java
index 25693802..ff741702 100644
--- a/src/main/java/net/gepafin/tendermanagement/entities/RoleEntity.java
+++ b/src/main/java/net/gepafin/tendermanagement/entities/RoleEntity.java
@@ -6,7 +6,7 @@ import lombok.Getter;
import lombok.Setter;
@Entity
-@Table(name = "\"ROLE\"")
+@Table(name = "ROLE")
@Getter
@Setter
public class RoleEntity extends BaseEntity {
diff --git a/src/main/java/net/gepafin/tendermanagement/entities/UserEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/UserEntity.java
index 890fdc32..042fe962 100644
--- a/src/main/java/net/gepafin/tendermanagement/entities/UserEntity.java
+++ b/src/main/java/net/gepafin/tendermanagement/entities/UserEntity.java
@@ -8,7 +8,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
-import net.gepafin.tendermanagement.entities.BaseEntity;
import java.time.LocalDateTime;
diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/UserReq.java b/src/main/java/net/gepafin/tendermanagement/model/request/UserReq.java
index d7d7041b..97a59438 100644
--- a/src/main/java/net/gepafin/tendermanagement/model/request/UserReq.java
+++ b/src/main/java/net/gepafin/tendermanagement/model/request/UserReq.java
@@ -1,7 +1,5 @@
package net.gepafin.tendermanagement.model.request;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonValue;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
@@ -9,14 +7,12 @@ import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
-import java.time.LocalDateTime;
-
@Getter
@Setter
public class UserReq {
- @NotBlank(message = "{email.not.blank}")
- @Email(message = "{email.invalid}")
+ @NotBlank
+ @Email
private String email;
@NotEmpty
private String password;
@@ -28,7 +24,7 @@ public class UserReq {
private String lastName;
private String phoneNumber;
- @NotEmpty
+ @NotNull
private Long roleId;
private String organization;
diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/UserApi.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/UserApi.java
index beae1296..7c310b83 100644
--- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/UserApi.java
+++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/UserApi.java
@@ -23,7 +23,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Validated
-//@RequestMapping("/user")
public interface UserApi {
@Operation(summary = "Api to create user",
@@ -39,7 +38,7 @@ public interface UserApi {
produces = {"application/json"},
method = RequestMethod.POST)
default ResponseEntity> createUser(
- @Parameter(description = "User request object", required = true) @Valid @RequestBody UserReq userReq) {
+ @Parameter(description = "User request object", required = true) @Validated @RequestBody UserReq userReq) {
return new ResponseEntity>(HttpStatus.NOT_IMPLEMENTED);
}
diff --git a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/UserApiController.java b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/UserApiController.java
index caf3c61a..f44c2e87 100644
--- a/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/UserApiController.java
+++ b/src/main/java/net/gepafin/tendermanagement/web/rest/api/impl/UserApiController.java
@@ -32,8 +32,7 @@ public class UserApiController implements UserApi {
private UserService userService;
@Override
- public ResponseEntity> createUser(
- @Valid @RequestBody UserReq userReq) {
+ public ResponseEntity> createUser(@RequestBody UserReq userReq) {
log.info("Create User with - Request Body: {}", userReq);
UserResponseBean createdUser = userService.createUser(userReq);
return ResponseEntity.status(HttpStatus.CREATED)
diff --git a/src/main/resources/application-dev.properties b/src/main/resources/application-dev.properties
new file mode 100644
index 00000000..72135766
--- /dev/null
+++ b/src/main/resources/application-dev.properties
@@ -0,0 +1,8 @@
+# DataSource Configuration
+spring.datasource.url=jdbc:postgresql://dbstaging.memento.credit:20184/gepaDb
+spring.datasource.username=usergepa
+spring.datasource.password=vs1pAc9vu07mMcdx93j6WiBS
+spring.datasource.driver-class-name=org.postgresql.Driver
+
+# JPA Configuration
+spring.h2.console.enabled=true
\ No newline at end of file
diff --git a/src/main/resources/application-local.properties b/src/main/resources/application-local.properties
new file mode 100644
index 00000000..7ed5944b
--- /dev/null
+++ b/src/main/resources/application-local.properties
@@ -0,0 +1,8 @@
+# DataSource Configuration
+spring.datasource.url=jdbc:postgresql://localhost:5432/gepafin_local
+spring.datasource.username=postgres
+spring.datasource.password=root
+spring.datasource.driver-class-name=org.postgresql.Driver
+
+# JPA Configuration
+spring.jpa.show-sql=true
\ No newline at end of file
diff --git a/src/main/resources/application-testing.properties b/src/main/resources/application-testing.properties
new file mode 100644
index 00000000..ea3a5732
--- /dev/null
+++ b/src/main/resources/application-testing.properties
@@ -0,0 +1,7 @@
+# DataSource Configuration
+spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
+spring.datasource.username=sa
+spring.datasource.password=sa
+
+# JPA Configuration
+spring.h2.console.enabled=true
\ No newline at end of file
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 54a465f5..e9ceddde 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,29 +1,28 @@
spring.application.name=tendermanagement
-springdoc.api-docs.path=/v1/api-docs
-springdoc.swagger-ui.configUrl=/v1/api-docs
-springfox.documentation.swagger-ui.path=/v1/api-docs
-springdoc.swagger-ui.disable-swagger-default-url=true
-springdoc.swagger-ui.path=/swagger-ui.html
-# DataSource Configuration
-spring.datasource.url=jdbc:postgresql://localhost:5432/gepafin_local
-spring.datasource.username=postgres
-spring.datasource.password=root
-spring.datasource.driver-class-name=org.postgresql.Driver
+# Multipart Configuration
+spring.servlet.multipart.max-file-size=50MB
+spring.servlet.multipart.max-request-size=50MB
+
+spring.profiles.active=testing
+
# JPA Configuration
spring.jpa.properties.hibernate.default_schema=gepafin_schema
spring.jpa.hibernate.ddl-auto=none
+spring.jpa.show-sql=false
# Liquibase Configuration
spring.liquibase.change-log=classpath:db/changelog/db.changelog-master.xml
spring.liquibase.default-schema=gepafin_schema
-spring.liquibase.enabled=true
+spring.liquibase.enabled=true
+
+
+# Swagger Configuration
+springdoc.api-docs.path=/v1/api-docs
+
-# Debugging and SQL Output
-logging.level.org.springframework.boot.autoconfigure.liquibase=ERROR
-logging.level.liquibase=ERROR
# JWT configuration
# Ensure these values match your expectations
security.authentication.jwt.secret=my-secret-token-to-change-in-prod-environment-your-super-secure-randomly-generated-key
@@ -32,4 +31,3 @@ security.authentication.jwt.token-validity-in-seconds=86400
spring.main.allow-circular-references=true
-