Commit f98e827c authored by devteria's avatar devteria

update

parent 5e94d20f
......@@ -25,7 +25,10 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
......
......@@ -4,6 +4,7 @@ import com.devteria.identityservice.dto.request.UserCreationRequest;
import com.devteria.identityservice.dto.request.UserUpdateRequest;
import com.devteria.identityservice.entity.User;
import com.devteria.identityservice.service.UserService;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -16,7 +17,7 @@ public class UserController {
private UserService userService;
@PostMapping
User createUser(@RequestBody UserCreationRequest request){
User createUser(@RequestBody @Valid UserCreationRequest request){
return userService.createUser(request);
}
......
package com.devteria.identityservice.dto.request;
import jakarta.validation.constraints.Size;
import java.time.LocalDate;
public class UserCreationRequest {
@Size(min = 3,message = "Username must be at least 3 characters")
private String username;
@Size(min = 8, message = "Password must be at least 8 characters")
private String password;
private String firstName;
private String lastName;
private LocalDate dob;
public String getUsername() {
......@@ -25,14 +31,14 @@ public class UserCreationRequest {
this.password = password;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getFirstName() {
return firstName;
}
public String getLastName() {
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;
@Repository
public interface UserRepository extends JpaRepository<User, String> {
boolean existsByUsername(String username);
}
......@@ -17,6 +17,9 @@ public class UserService {
public User createUser(UserCreationRequest request){
User user = new User();
if (userRepository.existsByUsername(request.getUsername()))
throw new RuntimeException("User existed.");
user.setUsername(request.getUsername());
user.setPassword(request.getPassword());
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