NCP-3 add UserContent entity #5

Merged
backdev merged 29 commits from NCP-3 into dev 2025-12-05 17:58:17 +08:00
3 changed files with 30 additions and 4 deletions
Showing only changes of commit e6d7fa7aae - Show all commits
@@ -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()
));
}
} }