NCP-3 add UserContent entity #5
@@ -9,9 +9,12 @@ import ru.soune.no_copy.dto.LoginRequest;
|
|||||||
import ru.soune.no_copy.dto.LoginResponse;
|
import ru.soune.no_copy.dto.LoginResponse;
|
||||||
import ru.soune.no_copy.dto.RegisterRequest;
|
import ru.soune.no_copy.dto.RegisterRequest;
|
||||||
import ru.soune.no_copy.entity.AuthToken;
|
import ru.soune.no_copy.entity.AuthToken;
|
||||||
|
import ru.soune.no_copy.exception.TokenNotFoundException;
|
||||||
|
import ru.soune.no_copy.repository.AuthTokenRepository;
|
||||||
import ru.soune.no_copy.service.AuthService;
|
import ru.soune.no_copy.service.AuthService;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/api/auth")
|
@RequestMapping("/api/auth")
|
||||||
@@ -20,6 +23,8 @@ public class AuthController {
|
|||||||
|
|
||||||
private final AuthService authService;
|
private final AuthService authService;
|
||||||
|
|
||||||
|
private final AuthTokenRepository authTokenRepository;
|
||||||
|
|
||||||
@PostMapping("/register")
|
@PostMapping("/register")
|
||||||
public ResponseEntity<AuthResponse> register(@Valid @RequestBody RegisterRequest registerRequest) {
|
public ResponseEntity<AuthResponse> register(@Valid @RequestBody RegisterRequest registerRequest) {
|
||||||
AuthToken authToken = authService.register(registerRequest);
|
AuthToken authToken = authService.register(registerRequest);
|
||||||
@@ -40,6 +45,12 @@ public class AuthController {
|
|||||||
public ResponseEntity<?> logout(@RequestHeader("Authorization") String tokenHeader) {
|
public ResponseEntity<?> logout(@RequestHeader("Authorization") String tokenHeader) {
|
||||||
String token = tokenHeader.replace("Bearer ", "");
|
String token = tokenHeader.replace("Bearer ", "");
|
||||||
|
|
||||||
|
Optional<AuthToken> opToken = authTokenRepository.findByToken(token);
|
||||||
|
|
||||||
|
if (opToken.isEmpty()) {
|
||||||
|
throw new TokenNotFoundException("Token not found");
|
||||||
|
}
|
||||||
|
|
||||||
authService.logout(token);
|
authService.logout(token);
|
||||||
|
|
||||||
return ResponseEntity.ok(Map.of("success", true));
|
return ResponseEntity.ok(Map.of("success", true));
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package ru.soune.no_copy.exception;
|
||||||
|
|
||||||
|
public class TokenNotFoundException extends RuntimeException {
|
||||||
|
public TokenNotFoundException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -8,10 +8,7 @@ import org.springframework.web.bind.MethodArgumentNotValidException;
|
|||||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
import org.springframework.web.bind.annotation.ResponseStatus;
|
||||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
import ru.soune.no_copy.exception.ContentNotFoundException;
|
import ru.soune.no_copy.exception.*;
|
||||||
import ru.soune.no_copy.exception.NotValidationPasswordException;
|
|
||||||
import ru.soune.no_copy.exception.UserAlreadyExistsException;
|
|
||||||
import ru.soune.no_copy.exception.UserNotFoundException;
|
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -75,4 +72,15 @@ public class GlobalExceptionHandler {
|
|||||||
"message" ,ex.getMessage()
|
"message" ,ex.getMessage()
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ExceptionHandler(TokenNotFoundException.class)
|
||||||
|
@ResponseStatus(HttpStatus.NOT_FOUND)
|
||||||
|
public ResponseEntity<?> handleNotFoundTokenException(TokenNotFoundException ex) {
|
||||||
|
return ResponseEntity.
|
||||||
|
badRequest()
|
||||||
|
.body(Map.of(
|
||||||
|
"success", false,
|
||||||
|
"message" ,ex.getMessage()
|
||||||
|
));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user