package servlets; import java.io.IOException; import java.util.List; import org.apache.commons.compress.utils.IOUtils; import org.apache.tomcat.util.codec.binary.Base64; import org.apache.tomcat.util.http.fileupload.servlet.ServletFileUpload; import com.fasterxml.jackson.databind.ObjectMapper; import dao.DAOUsuarioRepository; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.MultipartConfig; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.Part; import model.ModelLogin; @MultipartConfig @WebServlet( urlPatterns = {"/ServletUsuarioController"}) public class ServletUsuarioController extends ServletGenericUtil { private static final long serialVersionUID = 1L; private DAOUsuarioRepository daoUsuarioRepository = new DAOUsuarioRepository(); public ServletUsuarioController() { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String acao = request.getParameter("acao"); if (acao != null && !acao.isEmpty() && acao.equalsIgnoreCase("deletar")) { String idUser = request.getParameter("id"); daoUsuarioRepository.deletarUser(idUser); List modelLogins = daoUsuarioRepository.consultaUsuarioList(super.getUserLogado(request)); request.setAttribute("modelLogins", modelLogins); request.setAttribute("msg", "Excluido com sucesso!"); request.getRequestDispatcher("principal/usuario.jsp").forward(request, response); } else if (acao != null && !acao.isEmpty() && acao.equalsIgnoreCase("deletarajax")) { String idUser = request.getParameter("id"); daoUsuarioRepository.deletarUser(idUser); response.getWriter().write("Excluido com sucesso!"); } else if (acao != null && !acao.isEmpty() && acao.equalsIgnoreCase("buscarUserAjax")) { String nomeBusca = request.getParameter("nomeBusca"); List dadosJsonUser = daoUsuarioRepository.consultaUsuarioList(nomeBusca, super.getUserLogado(request)); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(dadosJsonUser); response.getWriter().write(json); } else if (acao != null && !acao.isEmpty() && acao.equalsIgnoreCase("buscarEditar")) { String id = request.getParameter("id"); ModelLogin modelLogin = daoUsuarioRepository.consultaUsuarioID(id, super.getUserLogado(request)); List modelLogins = daoUsuarioRepository.consultaUsuarioList(super.getUserLogado(request)); request.setAttribute("modelLogins", modelLogins); request.setAttribute("msg", "Usuário em edição"); request.setAttribute("modolLogin", modelLogin); request.getRequestDispatcher("principal/usuario.jsp").forward(request, response); } else if (acao != null && !acao.isEmpty() && acao.equalsIgnoreCase("listarUser")) { List modelLogins = daoUsuarioRepository.consultaUsuarioList(super.getUserLogado(request)); request.setAttribute("msg", "Usuários carregados"); request.setAttribute("modelLogins", modelLogins); request.getRequestDispatcher("principal/usuario.jsp").forward(request, response); } else { List modelLogins = daoUsuarioRepository.consultaUsuarioList(super.getUserLogado(request)); request.setAttribute("modelLogins", modelLogins); request.getRequestDispatcher("principal/usuario.jsp").forward(request, response); } }catch (Exception e) { e.printStackTrace(); RequestDispatcher redirecionar = request.getRequestDispatcher("erro.jsp"); request.setAttribute("msg", e.getMessage()); redirecionar.forward(request, response); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String msg = "Operação realizada com sucesso!"; String id = request.getParameter("id"); String nome = request.getParameter("nome"); String email = request.getParameter("email"); String login = request.getParameter("login"); String senha = request.getParameter("senha"); String perfil = request.getParameter("perfil"); String sexo = request.getParameter("sexo"); ModelLogin modelLogin = new ModelLogin(); modelLogin.setId(id != null && !id.isEmpty() ? Long.parseLong(id) : null); modelLogin.setNome(nome); modelLogin.setEmail(email); modelLogin.setLogin(login); modelLogin.setSenha(senha); modelLogin.setPerfil(perfil); modelLogin.setSexo(sexo); if (ServletFileUpload.isMultipartContent(request)) { Part part = request.getPart("fileFoto"); /* Pega foto da tela */ if (part.getSize() > 0) { byte[] foto = IOUtils.toByteArray(part.getInputStream()); /* Converte imagem para byte */ String imagemBase64 = "data:image/" + part.getContentType().split("\\/")[1] + ";base64," + Base64.encodeBase64String(foto); modelLogin.setFotouser(imagemBase64); modelLogin.setExtensaofotouser(part.getContentType().split("\\/")[1]); } } if (daoUsuarioRepository.validarLogin(modelLogin.getLogin()) && modelLogin.getId() == null) { msg = "Já existe usuário com o mesmo login, informe outro login;"; }else { if (modelLogin.isNovo()) { msg = "Gravado com sucesso!"; }else { msg= "Atualizado com sucesso!"; } modelLogin = daoUsuarioRepository.gravarUsuario(modelLogin, super.getUserLogado(request)); } List modelLogins = daoUsuarioRepository.consultaUsuarioList(super.getUserLogado(request)); request.setAttribute("modelLogins", modelLogins); request.setAttribute("msg", msg); request.setAttribute("modolLogin", modelLogin); request.getRequestDispatcher("principal/usuario.jsp").forward(request, response); } catch (Exception e) { e.printStackTrace(); RequestDispatcher redirecionar = request.getRequestDispatcher("erro.jsp"); request.setAttribute("msg", e.getMessage()); redirecionar.forward(request, response); } } }