44import io .swagger .v3 .oas .annotations .security .SecurityRequirement ;
55import io .swagger .v3 .oas .annotations .tags .Tag ;
66import jakarta .security .auth .message .AuthException ;
7- import kattsyn .dev .rentplace .dtos .*;
7+ import jakarta .servlet .http .HttpServletRequest ;
8+ import kattsyn .dev .rentplace .dtos .requests .CodeRequest ;
9+ import kattsyn .dev .rentplace .dtos .requests .JwtRequest ;
10+ import kattsyn .dev .rentplace .dtos .requests .RefreshJwtRequest ;
11+ import kattsyn .dev .rentplace .dtos .requests .RegisterRequest ;
12+ import kattsyn .dev .rentplace .dtos .responses .CodeResponse ;
13+ import kattsyn .dev .rentplace .dtos .responses .JwtResponse ;
14+ import kattsyn .dev .rentplace .dtos .users .UserDTO ;
815import kattsyn .dev .rentplace .services .AuthService ;
9- import kattsyn .dev .rentplace .services .VerificationCodeService ;
1016import lombok .RequiredArgsConstructor ;
1117import org .springframework .http .ResponseEntity ;
1218import org .springframework .web .bind .annotation .*;
1824public class AuthController {
1925
2026 private final AuthService authService ;
21- private final VerificationCodeService verificationCodeService ;
2227
2328 @ PostMapping ("/code-request" )
2429 @ Operation (
2530 summary = "Запросить код по почте" ,
2631 description = "Запрос на получение кода авторизации по почте"
2732 )
2833 public ResponseEntity <CodeResponse > requestCode (@ RequestBody CodeRequest codeRequest ) {
29- return ResponseEntity .ok (verificationCodeService . generateAndSendCode (codeRequest .getEmail ()));
34+ return ResponseEntity .ok (authService . getCodeResponse (codeRequest .getEmail ()));
3035 }
3136
3237 @ Operation (
3338 summary = "Запрос на авторизацию" ,
3439 description = "Получает email и код с почты. Возвращает JWT токены"
3540 )
3641 @ PostMapping ("/login" )
37- public ResponseEntity <JwtResponse > login (@ RequestBody JwtRequest authRequest /*,
42+ public ResponseEntity <JwtResponse > login (HttpServletRequest request , @ RequestBody JwtRequest authRequest /*,
3843 HttpServletResponse response*/ ) throws AuthException {
39- JwtResponse tokens = authService .login (authRequest );
44+
45+
46+ JwtResponse tokens = authService .login (authRequest , request );
4047
4148 /*
4249 ResponseCookie refreshCookie = ResponseCookie.from("refreshToken", tokens.getRefreshToken())
@@ -67,14 +74,26 @@ public ResponseEntity<JwtResponse> login(@RequestBody JwtRequest authRequest/*,
6774 .body (tokens );
6875 }
6976
77+ @ Operation (
78+ summary = "Запрос на авторизацию в админ-панель" ,
79+ description = "Получает email и код с почты. Возвращает JWT токены. Пускает только администраторов."
80+ )
81+ @ PostMapping ("/admin/login" )
82+ public ResponseEntity <JwtResponse > adminLogin (@ RequestBody JwtRequest authRequest , HttpServletRequest httpServletRequest /*,
83+ HttpServletResponse response*/ ) throws AuthException {
84+ JwtResponse tokens = authService .adminLogin (authRequest , httpServletRequest );
85+ return ResponseEntity .ok ()
86+ .body (tokens );
87+ }
88+
7089 @ Operation (
7190 summary = "Запрос на регистрацию" ,
7291 description = "Получает email и код с почты, а также имя и фамилию пользователя. Возвращает JWT токены"
7392 )
7493 @ PostMapping ("/register" )
75- public ResponseEntity <JwtResponse > register (@ RequestBody RegisterRequest registerRequest /*,
94+ public ResponseEntity <JwtResponse > register (@ RequestBody RegisterRequest registerRequest , HttpServletRequest httpServletRequest /*,
7695 HttpServletResponse response*/ ) throws AuthException {
77- JwtResponse tokens = authService .register (registerRequest );
96+ JwtResponse tokens = authService .register (registerRequest , httpServletRequest );
7897
7998 return ResponseEntity .ok ()
8099 .body (tokens );
@@ -92,14 +111,13 @@ public ResponseEntity<Void> checkCode(@RequestBody JwtRequest authRequest/*,
92111 }
93112
94113
95-
96114 @ Operation (
97115 summary = "Запрос на обновление AccessToken'а" ,
98116 description = "Получает RefreshToken, возвращает новый AccessToken"
99117 )
100118 @ PostMapping ("/token" )
101- public ResponseEntity <JwtResponse > getNewAccessToken (@ RequestBody RefreshJwtRequest request ) {
102- final JwtResponse token = authService .getAccessToken (request .getRefreshToken ());
119+ public ResponseEntity <JwtResponse > getNewAccessToken (@ RequestBody RefreshJwtRequest request , HttpServletRequest httpServletRequest ) throws AuthException {
120+ final JwtResponse token = authService .getAccessToken (request .getRefreshToken (), httpServletRequest );
103121 return ResponseEntity .ok (token );
104122 }
105123
@@ -108,8 +126,8 @@ public ResponseEntity<JwtResponse> getNewAccessToken(@RequestBody RefreshJwtRequ
108126 description = "Принимает еще не истекший RefreshToken и возвращает новый, продленный."
109127 )
110128 @ PostMapping ("/refresh" )
111- public ResponseEntity <JwtResponse > refresh (/*@CookieValue(name = "refreshToken") String refreshToken, HttpServletResponse response*/ @ RequestBody RefreshJwtRequest request ) throws AuthException {
112- JwtResponse jwtResponse = authService .refresh (request .getRefreshToken ());
129+ public ResponseEntity <JwtResponse > refresh (/*@CookieValue(name = "refreshToken") String refreshToken, HttpServletResponse response*/ @ RequestBody RefreshJwtRequest refreshJwtRequest , HttpServletRequest request ) throws AuthException {
130+ JwtResponse jwtResponse = authService .refresh (refreshJwtRequest .getRefreshToken (), request );
113131
114132 /*
115133 Cookie refreshCookie = new Cookie("refreshToken", jwtResponse.getRefreshToken());
0 commit comments