47 lines
1.7 KiB
Java
47 lines
1.7 KiB
Java
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<ProfileGetDto> 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");
|
|
}
|
|
}
|