package ru.charm.back.controller; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import ru.charm.back.dto.LoginDto; import ru.charm.back.dto.ProfileGetDto; import ru.charm.back.dto.RegistrationDto; import ru.charm.back.mapper.RequestToLoginDtoMapper; import ru.charm.back.mapper.RequestToRegistrationDtoMapper; import ru.charm.back.service.ProfileService; import ru.charm.back.validator.RegistrationValidator; import ru.charm.back.validator.ValidationResult; import java.io.IOException; import java.util.Optional; @WebServlet("/login") @Slf4j public class LoginController extends HttpServlet { private final ProfileService service = ProfileService.getInstance(); private final RequestToLoginDtoMapper requestTologinDtoMapper = RequestToLoginDtoMapper.getInstance(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { LoginDto dto = requestTologinDtoMapper.map(req); Optional userDetailOpt = service.login(dto); if (userDetailOpt.isPresent()) { req.getSession().setAttribute("userDetails", userDetailOpt.get()); resp.sendRedirect(String.format("/profile?id=%s", userDetailOpt.get().getId())); return; } resp.sendRedirect("/login"); } }