From c537de7fe6a2045d5f3ff76430a2807c3a68b1b9 Mon Sep 17 00:00:00 2001 From: backdev-1 Date: Fri, 5 Jun 2026 22:29:55 +0700 Subject: [PATCH] add internal feign key --- .../adminpanel/handler/AdminUserHandler.java | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/main/java/ru/soune/nocopy/adminpanel/handler/AdminUserHandler.java b/src/main/java/ru/soune/nocopy/adminpanel/handler/AdminUserHandler.java index 2b6c5a7..9fda54c 100644 --- a/src/main/java/ru/soune/nocopy/adminpanel/handler/AdminUserHandler.java +++ b/src/main/java/ru/soune/nocopy/adminpanel/handler/AdminUserHandler.java @@ -33,6 +33,8 @@ public class AdminUserHandler implements RequestHandler { private final AdminUserService adminUserService; + private final JwtUtil jwtUtil; + private final AdminSectionPermissionService permissionService; private final HttpServletRequest httpServletRequest; @@ -45,6 +47,7 @@ public class AdminUserHandler implements RequestHandler { String action = adminRequest.getAction(); return switch (action) { + case "login" -> handleLogin(request, adminRequest); case "create" -> handleCreate(request, adminRequest); case "get_all" -> handleGetAll(request, adminRequest); case "get_by_id" -> handleGetById(request, adminRequest); @@ -58,6 +61,54 @@ public class AdminUserHandler implements RequestHandler { }; } + private BaseResponse handleLogin(BaseRequest request, AdminUserRequest adminRequest) { + String email = adminRequest.getEmail(); + String password = adminRequest.getPassword(); + + boolean authenticated = adminUserService.authenticate(email, password); + + if (!authenticated) { + return BaseResponse.builder() + .msgId(request.getMsgId()) + .messageCode(MessageCode.INVALID_CREDENTIALS.getCode()) + .messageDesc(MessageCode.INVALID_CREDENTIALS.getDescription()) + .build(); + } + + try { + AdminUser admin = adminUserService.findByEmail(email); + + if (!admin.getIsActive()) { + return BaseResponse.builder() + .msgId(request.getMsgId()) + .messageCode(MessageCode.ADMIN_INACTIVE.getCode()) + .messageDesc(MessageCode.ADMIN_INACTIVE.getDescription()) + .build(); + } + + String token = jwtUtil.generateToken(admin.getEmail(), admin.getId()); + + LoginResponse loginResponse = LoginResponse.builder() + .success(true) + .token(token) + .admin(convertToResponse(admin)) + .build(); + + return BaseResponse.builder() + .msgId(request.getMsgId()) + .messageCode(MessageCode.SUCCESS.getCode()) + .messageDesc(MessageCode.SUCCESS.getDescription()) + .messageBody(loginResponse) + .build(); + } catch (AdminUserNotFoundException e) { + return BaseResponse.builder() + .msgId(request.getMsgId()) + .messageCode(MessageCode.ADMIN_NOT_FOUND.getCode()) + .messageDesc(MessageCode.ADMIN_NOT_FOUND.getDescription()) + .build(); + } + } + private BaseResponse handleCreate(BaseRequest request, AdminUserRequest adminRequest) { try { Long currentUserId = (Long) httpServletRequest.getAttribute("userId");