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 -