Commit f98e827c authored by devteria's avatar devteria

update

parent 5e94d20f
...@@ -25,7 +25,10 @@ ...@@ -25,7 +25,10 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.mysql</groupId> <groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId> <artifactId>mysql-connector-j</artifactId>
......
...@@ -4,6 +4,7 @@ import com.devteria.identityservice.dto.request.UserCreationRequest; ...@@ -4,6 +4,7 @@ import com.devteria.identityservice.dto.request.UserCreationRequest;
import com.devteria.identityservice.dto.request.UserUpdateRequest; import com.devteria.identityservice.dto.request.UserUpdateRequest;
import com.devteria.identityservice.entity.User; import com.devteria.identityservice.entity.User;
import com.devteria.identityservice.service.UserService; import com.devteria.identityservice.service.UserService;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -16,7 +17,7 @@ public class UserController { ...@@ -16,7 +17,7 @@ public class UserController {
private UserService userService; private UserService userService;
@PostMapping @PostMapping
User createUser(@RequestBody UserCreationRequest request){ User createUser(@RequestBody @Valid UserCreationRequest request){
return userService.createUser(request); return userService.createUser(request);
} }
......
package com.devteria.identityservice.dto.request; package com.devteria.identityservice.dto.request;
import jakarta.validation.constraints.Size;
import java.time.LocalDate; import java.time.LocalDate;
public class UserCreationRequest { public class UserCreationRequest {
@Size(min = 3,message = "Username must be at least 3 characters")
private String username; private String username;
@Size(min = 8, message = "Password must be at least 8 characters")
private String password; private String password;
private String firstName; private String firstName;
private String lastName; private String lastName;
private LocalDate dob; private LocalDate dob;
public String getUsername() { public String getUsername() {
...@@ -25,14 +31,14 @@ public class UserCreationRequest { ...@@ -25,14 +31,14 @@ public class UserCreationRequest {
this.password = password; this.password = password;
} }
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) { public void setFirstName(String firstName) {
this.firstName = firstName; this.firstName = firstName;
} }
public String getFirstName() {
return firstName;
}
public String getLastName() { public String getLastName() {
return lastName; return lastName;
} }
......
package com.devteria.identityservice.exception;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(value = RuntimeException.class)
ResponseEntity<String> handlingRuntimeException(RuntimeException exception){
return ResponseEntity.badRequest().body(exception.getMessage());
}
@ExceptionHandler(value = MethodArgumentNotValidException.class)
ResponseEntity<String> handlingValidation(MethodArgumentNotValidException exception){
return ResponseEntity.badRequest().body(exception.getFieldError().getDefaultMessage());
}
}
...@@ -6,4 +6,5 @@ import org.springframework.stereotype.Repository; ...@@ -6,4 +6,5 @@ import org.springframework.stereotype.Repository;
@Repository @Repository
public interface UserRepository extends JpaRepository<User, String> { public interface UserRepository extends JpaRepository<User, String> {
boolean existsByUsername(String username);
} }
...@@ -17,6 +17,9 @@ public class UserService { ...@@ -17,6 +17,9 @@ public class UserService {
public User createUser(UserCreationRequest request){ public User createUser(UserCreationRequest request){
User user = new User(); User user = new User();
if (userRepository.existsByUsername(request.getUsername()))
throw new RuntimeException("User existed.");
user.setUsername(request.getUsername()); user.setUsername(request.getUsername());
user.setPassword(request.getPassword()); user.setPassword(request.getPassword());
user.setFirstName(request.getFirstName()); user.setFirstName(request.getFirstName());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment