Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package AppUemWS; import AppUemWS.dados.*; import AppUemWS.persistencia.ControladorDePersistencia; import com.google.gson.Gson; import java.sql.SQLException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import javax.ws.rs.core.Context; import javax.ws.rs.core.UriInfo; import javax.ws.rs.Produces; import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PUT; import javax.ws.rs.PathParam; import javax.ws.rs.core.MediaType; /** * REST Web Service * * @author Gabriel H. Tasso Schiavon */ @Path("reserva") public class AppReservaUemWS { @Context private UriInfo context; private ControladorDePersistencia con; /** * Creates a new instance of AppUemWS */ public AppReservaUemWS() { } private int verificarPrioridadeLogin(String email, String senha) { //login.setPermissao(-1); int permissao = -1; ArrayList<Login> listaLogin; try { con = new ControladorDePersistencia(); listaLogin = con.carregaLoginAtivo(); for (Login l1 : listaLogin) { if (l1.getEmail().equals(email)) { return l1.getPermissao(); } } } catch (SQLException ex) { System.out.println(ex); } return permissao; } private Login verificarLogin(String email, String senha) { //login.setPermissao(-1); Login login = new Login(-1, email, senha, -1); ArrayList<Login> listaLogin; try { con = new ControladorDePersistencia(); listaLogin = con.carregaLoginAtivo(); for (Login l1 : listaLogin) { if (l1.getEmail().equals(login.getEmail())) { if (l1.getSenha().equals(login.getSenha())) { l1.setSenha(""); return l1; } } } } catch (SQLException ex) { } login.setSenha(""); return login; } private boolean emailUsado(Usuario usuario) { try { ArrayList<Login> listaLogin; con = new ControladorDePersistencia(); listaLogin = con.carregaLoginAtivo(); if (listaLogin.stream() .anyMatch((lg) -> (usuario.getEmail().toUpperCase().equals(lg.getEmail().toUpperCase())))) { return true; } } catch (SQLException ex) { } return false; } private Login buscarLogin(Login login) { ArrayList<Login> listaLogin; try { con = new ControladorDePersistencia(); listaLogin = con.carregaLoginAtivo(); for (Login l1 : listaLogin) { if (l1.getEmail().equals(login.getEmail())) { if (l1.getSenha().equals(login.getSenha())) { login.clonar(l1); return login; } } } } catch (SQLException ex) { } return login; } private boolean emailUsadoPorOutroUsuario(Usuario usuario) { try { ArrayList<Login> listaLogin; con = new ControladorDePersistencia(); listaLogin = con.carregaLoginAtivo(); if (listaLogin.stream() .filter((lg) -> (usuario.getEmail().toUpperCase().equals(lg.getEmail().toUpperCase()))) .anyMatch((lg) -> (usuario.getId() != lg.getId()))) { return true; } } catch (SQLException ex) { } return false; } private Login buscarSenha(String email) { ArrayList<Login> listaLogin; Login login = new Login(); try { con = new ControladorDePersistencia(); listaLogin = con.carregaLoginAtivo(); for (Login l1 : listaLogin) { if (l1.getEmail().equals(email)) { login.clonar(l1); return login; } } } catch (SQLException ex) { } return login; } private Reserva getReserva(int id) { Reserva r = new Reserva(); try { ControladorDePersistencia controlador = new ControladorDePersistencia(); ArrayList<Reserva> listaR = controlador.carregaReserva(); for (Reserva r1 : listaR) { if (r1.getId() == id) { return r1; } } } catch (SQLException ex) { } return r; } private Usuario getUsuario(int id) { Usuario user = new Usuario(); try { ControladorDePersistencia controlador = new ControladorDePersistencia(); ArrayList<Usuario> lstU = controlador.carregaUsuarioAtivo(); for (Usuario u : lstU) { if (u.getId() == id) { return u; } } } catch (SQLException ex) { ex.printStackTrace(); } return user; } private int verificarSemanaAnterior(Reserva reserva) { int usou = 0; try { ControladorDePersistencia controlador = new ControladorDePersistencia(); for (Reserva r : controlador.carregaReserva()) { if (r.getIdusuario() == reserva.getIdusuario()) { if (r.getPeriodo() == reserva.getPeriodo()) { DateFormat dt = new SimpleDateFormat("dd/MM/yyyy"); dt.setLenient(false); java.util.Date dataReserva = dt.parse(reserva.getDatareserva()); java.util.Date semanaAnterior; semanaAnterior = new java.util.Date(); semanaAnterior.setDate(dataReserva.getDate() - 7); String sa = dt.format(semanaAnterior); if (sa.equals(r.getDatareserva())) { if (r.getStatus() == 2) { return 1; } } } } } } catch (SQLException | ParseException ex) { ex.printStackTrace(); } return usou; } private int getValorPrioridade(Reserva reserva) { int valor = 20; if (reserva.getStatus() == -1) { return 0; } if (reserva.getTipoaula() == 1) { // pratica valor = 20; if (getUsuario(reserva.getIdusuario()).getProblema_locomocao() == 0) { valor -= 5; } if (verificarSemanaAnterior(reserva) == 1) { valor -= 1; } } if (reserva.getTipoaula() == 21) { // teorica valor = 10; if (verificarSemanaAnterior(reserva) == 1) { valor -= 1; } } if (reserva.getTipoaula() == 3) { // mestrado return 90; } if (reserva.getTipoaula() == 4) { // especializacao return 80; } if (reserva.getTipoaula() == 5) { // defesa return 100; } if (reserva.getTipoaula() == 6) { // minicurso return 70; } return valor; } private void atualizaListaReserva() { try { ControladorDePersistencia controlador = new ControladorDePersistencia(); ArrayList<Reserva> lstR = controlador.carregaReserva(); Reserva reserva = lstR.get(lstR.size() - 1); boolean indice_existe = false; controlador = new ControladorDePersistencia(); ArrayList<IndiceReserva> lstIndice = controlador.carregaIndiceReservaAtivo(); IndiceReserva indiceR = new IndiceReserva(); for (IndiceReserva ir : lstIndice) { if (ir.getIddepartamento() == reserva.getIddepartamento()) { if (ir.getData().equals(reserva.getDatareserva())) { if (ir.getPeriodo() == reserva.getPeriodo()) { if (ir.getClassificacaosala() == reserva.getTiposala()) { indice_existe = true; indiceR.clonar(ir); } } } } } if (indice_existe) { // calcular if (indiceR.getIdprimeiro() == -1) { // indice exixte mas sem elemento na lista indiceR.setIdprimeiro(reserva.getId()); controlador = new ControladorDePersistencia(); controlador.alteraIndiceReserva(indiceR); } else { Reserva r1 = getReserva(indiceR.getIdprimeiro()); if (r1.getStatus() == 2) { java.util.Date atual = new java.util.Date(); Calendar cal = Calendar.getInstance(); cal.setTime(atual); int day = cal.get(Calendar.DAY_OF_WEEK); java.util.Date prox; prox = new java.util.Date(); prox.setDate(atual.getDate() + 14 - day); DateFormat dt = new SimpleDateFormat("dd/MM/yyyy"); dt.setLenient(false); java.util.Date date = dt.parse(r1.getDatareserva()); if (date.getTime() > prox.getTime()) { return; } } if (getValorPrioridade(reserva) > getValorPrioridade(r1)) { reserva.setProximoid(r1.getId()); indiceR.setIdprimeiro(reserva.getId()); controlador = new ControladorDePersistencia(); controlador.alteraIndiceReserva(indiceR); controlador = new ControladorDePersistencia(); controlador.alteraReserva(reserva); } else { if (r1.getProximoid() == -1) { r1.setProximoid(reserva.getId()); controlador = new ControladorDePersistencia(); controlador.alteraReserva(r1); } else { while (true) { Reserva r2 = getReserva(r1.getProximoid()); if (getValorPrioridade(reserva) > getValorPrioridade(r2)) { r1.setProximoid(reserva.getId()); controlador = new ControladorDePersistencia(); controlador.alteraReserva(r1); reserva.setProximoid(r2.getId()); controlador = new ControladorDePersistencia(); controlador.alteraReserva(reserva); return; } else { if (r2.getProximoid() == -1) { r2.setProximoid(reserva.getId()); controlador = new ControladorDePersistencia(); controlador.alteraReserva(r2); return; } else { r1.clonarReserva(r2); } } } } } } } else { indiceR.setId(-1); indiceR.setIddepartamento(reserva.getIddepartamento()); indiceR.setData(reserva.getDatareserva()); indiceR.setPeriodo(reserva.getPeriodo()); indiceR.setClassificacaosala(reserva.getTiposala()); indiceR.setIdprimeiro(reserva.getId()); indiceR.setStatus(1); controlador = new ControladorDePersistencia(); controlador.cadastraIndiceReserva(indiceR); } } catch (Exception ex) { ex.printStackTrace(); } } private void atualizaSala() { try { ControladorDePersistencia controlador = new ControladorDePersistencia(); ArrayList<Reserva> lstR = controlador.carregaReserva(); Reserva r1 = lstR.get(lstR.size() - 1); ArrayList<Sala> lstS = controlador.carregaSalaAtivo(); java.util.Date atual = new java.util.Date(); Calendar cal = Calendar.getInstance(); cal.setTime(atual); int day = cal.get(Calendar.DAY_OF_WEEK); java.util.Date prox; prox = new java.util.Date(); prox.setDate(atual.getDate() + 14 - day); DateFormat dt = new SimpleDateFormat("dd/MM/yyyy"); dt.setLenient(false); java.util.Date date = dt.parse(r1.getDatareserva()); if (date.getTime() > prox.getTime()) { return; } ArrayList<Sala> lstSalaDepartamento = new ArrayList<>(); lstS.stream().filter((s) -> (s.getId_departamento() == r1.getIddepartamento())).forEachOrdered((s) -> { lstSalaDepartamento.add(s); }); for (Sala sala : lstSalaDepartamento) { int usado = 0; for (Reserva r : lstR) { if (r.getDatareserva().equals(r1.getDatareserva())) { if (r.getIdsala() == sala.getId()) { usado = 1; } } } if (usado == 0) { r1.setIdsala(sala.getId()); controlador = new ControladorDePersistencia(); controlador.alteraReserva(r1); controlador = new ControladorDePersistencia(); controlador.alteraStatusReserva(r1.getId(), 2); return; } } } catch (SQLException | ParseException ex) { ex.printStackTrace(); } } private IndiceReserva buscarIndiceReserva(ArrayList<IndiceReserva> lstI, String data, int periodo, int tipoSala, int iddepartamento) { IndiceReserva indiceReserva = new IndiceReserva(); indiceReserva.setId(-1); lstI.stream().filter((ir) -> (ir.getData().equals(data))).filter((ir) -> (ir.getPeriodo() == periodo)) .filter((ir) -> (ir.getClassificacaosala() == tipoSala)) .filter((ir) -> (ir.getIddepartamento() == iddepartamento)).forEachOrdered((ir) -> { indiceReserva.clonar(ir); }); return indiceReserva; } private void resolveConflito() { ArrayList<IndiceReserva> lstI; ArrayList<Reserva> lstR; // lista de todas as reservas ArrayList<Sala> lstS; // lista de todas as salas ArrayList<Integer> lstP; // indice do professor que j solicitou uma reserva nesse dia e horario; try { ControladorDePersistencia controlador = new ControladorDePersistencia(); lstI = controlador.carregaIndiceReservaAtivo(); controlador = new ControladorDePersistencia(); lstR = controlador.carregaReserva(); controlador = new ControladorDePersistencia(); lstS = controlador.carregaSalaAtivo(); java.util.Date atual; atual = new java.util.Date(); Calendar cal = Calendar.getInstance(); cal.setTime(atual); //System.out.println(cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DAY_OF_MONTH)+"-"+cal.get(Calendar.DAY_OF_WEEK)); int diaAtual = cal.get(Calendar.DAY_OF_WEEK); int iddepartamento = 1; // verificar para cada departamento, cada um pode ter regra diferente ArrayList<Sala> lstProj = new ArrayList<>(); ArrayList<Sala> lstLab = new ArrayList<>(); lstS.stream().filter((s) -> (s.getId_departamento() == iddepartamento)).forEachOrdered((s) -> { if (s.getClassificacao() == 1) { lstLab.add(s); } else { lstProj.add(s); } }); int qtLab = lstLab.size(); int qtProj = lstProj.size(); for (int dia = 2; dia < 7; dia++) { java.util.Date dataConflito = new java.util.Date(); dataConflito.setDate(atual.getDate() + 14 - diaAtual + dia); String dt = new SimpleDateFormat("dd/MM/yyyy").format(dataConflito); //System.out.println(dt); for (int periodo = 1; periodo < 7; periodo++) { lstP = new ArrayList<>(); for (int tipoSala = 1; tipoSala < 3; tipoSala++) { IndiceReserva ir = buscarIndiceReserva(lstI, dt, periodo, tipoSala, iddepartamento); int idprox = ir.getIdprimeiro(); if (ir.getId() != -1) { //System.out.println(periodo+"-"+tipoSala); if (tipoSala == 1) { if (qtLab > 0) { for (Sala s : lstLab) { while (idprox != -1) { Reserva res = getReserva(idprox); boolean profJaReservou = false; if (lstP.size() > 0) { for (int p : lstP) { if (p == res.getIdusuario()) { profJaReservou = true; } } } if (profJaReservou) { idprox = res.getProximoid(); } else { res.setIdsala(s.getId()); controlador = new ControladorDePersistencia(); controlador.alteraReserva(res); controlador = new ControladorDePersistencia(); controlador.alteraStatusReserva(res.getId(), 2); idprox = res.getProximoid(); break; } } } while (idprox != -1) { Reserva res = getReserva(idprox); controlador = new ControladorDePersistencia(); controlador.alteraStatusReserva(res.getId(), -2); idprox = res.getProximoid(); } } } else { if (qtProj > 0) { for (Sala s : lstProj) { while (idprox != -1) { Reserva res = getReserva(idprox); boolean profJaReservou = false; if (lstP.size() > 0) { for (int p : lstP) { if (p == res.getIdusuario()) { profJaReservou = true; } } } if (profJaReservou) { idprox = res.getProximoid(); } else { res.setIdsala(s.getId()); controlador = new ControladorDePersistencia(); controlador.alteraReserva(res); controlador = new ControladorDePersistencia(); controlador.alteraStatusReserva(res.getId(), 2); idprox = res.getProximoid(); break; } } } while (idprox != -1) { Reserva res = getReserva(idprox); controlador = new ControladorDePersistencia(); controlador.alteraStatusReserva(res.getId(), -2); idprox = res.getProximoid(); } } } } } } } } catch (SQLException ex) { ex.printStackTrace(); } } private boolean pertenceDocente(String listaDisc, String idDisciplina) { return !listaDisc.contains(idDisciplina); } /** * Retrieves representation of an instance of AppUemWS.AppReservaUemWS * @return an instance of java.lang.String */ @GET @Produces(MediaType.APPLICATION_JSON) public String getJson() { return "Teste de Retorno"; } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/solicitarDataAtual") public String solicitarDataAtual() { Gson g = new Gson(); DateFormat dtIso = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); return g.toJson(dtIso.format(calendar.getTime())); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/login/confirmarLogin/{email}/{senha}") public String confirmarLogin(@PathParam("email") String email, @PathParam("senha") String senha) { Gson g = new Gson(); return g.toJson(verificarLogin(email, senha)); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/departamento/carregarDepartamento") public String carregarDepartamento() { Gson g = new Gson(); ArrayList<Departamento> listDepartamento = new ArrayList<>(); try { con = new ControladorDePersistencia(); listDepartamento = con.carregaDepartamentoAtivo(); } catch (SQLException ex) { } return g.toJson(listDepartamento); } @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/departamento/cadastrarDepartamento") public String cadastrarDepartamento(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Departamento departamento = g.fromJson(encapsular.getCampo2(), Departamento.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.cadastraDepartamento(departamento); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (Exception ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/departamento/alterarDepartamento") public String alterarDepartamento(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Departamento departamento = g.fromJson(encapsular.getCampo2(), Departamento.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.alteraDepartamento(departamento); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/departamento/removeDepartamento") public String removeDepartamento(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Departamento departamento = g.fromJson(encapsular.getCampo2(), Departamento.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.removeDepartamento(departamento.getId()); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/usuario/carregarUsuarioPorId/{id}") public String carregarUsuarioPorId(@PathParam("id") String id) { Gson g = new Gson(); int idUsuario = Integer.parseInt(id); Usuario usuario = null; ArrayList<Usuario> listaUsuario = new ArrayList<>(); try { con = new ControladorDePersistencia(); listaUsuario = con.carregaUsuarioAtivo(); } catch (SQLException ex) { ex.printStackTrace(); } for (Usuario u : listaUsuario) { if (u.getId() == idUsuario) { usuario = u; break; } } return g.toJson(usuario); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/usuario/carregarUsuario") public String carregarUsuario() { Gson g = new Gson(); ArrayList<Usuario> listaUsuario = new ArrayList<>(); try { con = new ControladorDePersistencia(); listaUsuario = con.carregaUsuarioAtivo(); } catch (SQLException ex) { } for (Usuario user : listaUsuario) { user.setSenha(""); } return g.toJson(listaUsuario); } @POST @Consumes(MediaType.APPLICATION_JSON) @Path("/usuario/cadastrarUsuario") public String cadastrarUsuario(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Usuario usuario = g.fromJson(encapsular.getCampo2(), Usuario.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if ((permissao == 4) || (permissao > usuario.getPermissao())) { try { if (emailUsado(usuario)) { resultado = -2; } else { con = new ControladorDePersistencia(); Boolean ok = con.cadastraUsuario(usuario); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } } catch (Exception ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/usuario/alterarUsuario") public String alterarUsuario(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Usuario usuario = g.fromJson(encapsular.getCampo2(), Usuario.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao login.clonar(buscarLogin(login)); if ((permissao == 4) || (permissao > usuario.getPermissao()) || login.getId() == usuario.getId()) { try { if (emailUsadoPorOutroUsuario(usuario)) { resultado = -2; } else { con = new ControladorDePersistencia(); Boolean ok = con.alteraUsuario(usuario); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/usuario/removeUsuario") public String removeUsuario(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Usuario usuario = g.fromJson(encapsular.getCampo2(), Usuario.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if ((permissao == 4) || (permissao > usuario.getPermissao())) { try { con = new ControladorDePersistencia(); Boolean ok = con.removeUsuario(usuario.getId()); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/usuario/alterarSenha") public String alterarSenha(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); String senha = encapsular.getCampo2(); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao != -1) { try { login.setSenha(senha); con = new ControladorDePersistencia(); Boolean ok = con.alteraSenha(login); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/usuario/recuperarSenha/{email}") public String recuperarSenha(@PathParam("email") String email) { Gson g = new Gson(); Login login = this.buscarSenha(email); int resultado = -1; // -1 = sem permissao if (login.getId() != -1) { //enviaEmail(login); resultado = 1; } return g.toJson(resultado); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/sala/carregarSala") public String carregarSala() { Gson g = new Gson(); ArrayList<Sala> listaSala = new ArrayList<>(); try { con = new ControladorDePersistencia(); listaSala = con.carregaSalaAtivo(); } catch (SQLException ex) { } return g.toJson(listaSala); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/sala/carregarSalaPorDepartamento/{idDepartamento}") public String carregarSalaPorDepartamento(@PathParam("idDepartamento") String idDepartamento) { Gson g = new Gson(); ArrayList<Sala> listaSala = new ArrayList<>(); try { con = new ControladorDePersistencia(); listaSala = con.carregaSalaAtivoPorDepartamento(idDepartamento); } catch (SQLException ex) { } return g.toJson(listaSala); } @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/sala/cadastrarSala") public String cadastrarSala(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Sala sala = g.fromJson(encapsular.getCampo2(), Sala.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.cadastraSala(sala); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (Exception ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/sala/alterarSala") public String alterarSala(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Sala sala = g.fromJson(encapsular.getCampo2(), Sala.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.alteraSala(sala); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/sala/removeSala") public String removeSala(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Sala sala = g.fromJson(encapsular.getCampo2(), Sala.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.removeSala(sala.getId()); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/curso/carregarCurso") public String carregarCurso() { Gson g = new Gson(); ArrayList<Curso> listaCurso = new ArrayList<>(); try { con = new ControladorDePersistencia(); listaCurso = con.carregaCursoAtivo(); } catch (SQLException ex) { } return g.toJson(listaCurso); } @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/curso/cadastrarCurso") public String cadastrarCurso(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Curso curso = g.fromJson(encapsular.getCampo2(), Curso.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.cadastraCurso(curso); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (Exception ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/curso/alterarCurso") public String alterarCurso(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Curso curso = g.fromJson(encapsular.getCampo2(), Curso.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.alteraCurso(curso); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/curso/removerCurso") public String removeCurso(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Curso curso = g.fromJson(encapsular.getCampo2(), Curso.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.removeCurso(curso.getId()); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/disciplina/carregarDisciplinasPorId/{idDisciplinas}") public String carregarDisciplina(@PathParam("idDisciplinas") String idDisciplinas) { Gson g = new Gson(); String[] idDisc = idDisciplinas.split("-"); ArrayList<Disciplina> listaDisciplina = new ArrayList<>(); try { for (String idDisc1 : idDisc) { con = new ControladorDePersistencia(); listaDisciplina.add(con.carregaDisciplinaAtivoPorId(idDisc1)); } } catch (SQLException ex) { } return g.toJson(listaDisciplina); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/disciplina/carregarDisciplina") public String carregarDisciplina() { Gson g = new Gson(); ArrayList<Disciplina> listaDisciplina = new ArrayList<>(); try { con = new ControladorDePersistencia(); listaDisciplina = con.carregaDisciplinaAtivo(); } catch (SQLException ex) { } return g.toJson(listaDisciplina); } @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/disciplina/cadastrarDisciplina") public String cadastrarDisciplina(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Disciplina disciplina = g.fromJson(encapsular.getCampo2(), Disciplina.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.cadastraDisciplina(disciplina); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (Exception ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/disciplina/alterarDisciplina") public String alterarDisciplina(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Disciplina disciplina = g.fromJson(encapsular.getCampo2(), Disciplina.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.alteraDisciplina(disciplina); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/disciplina/removeDisciplina") public String removeDisciplina(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Disciplina disciplina = g.fromJson(encapsular.getCampo2(), Disciplina.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.removeDisciplina(disciplina.getId()); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/reserva/carregarReservaPorUsuario/{strIdUsuario}") public String carregarReservaPorUsuario(@PathParam("strIdUsuario") String strIdUsuario) { Gson g = new Gson(); int idUsuario = Integer.parseInt(strIdUsuario); ArrayList<ReservaUsuario> listaReserva = new ArrayList<>(); try { con = new ControladorDePersistencia(); listaReserva = con.carregaReservaPorIdUsuario(idUsuario); } catch (SQLException ex) { } return g.toJson(listaReserva); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/reserva/carregarReservaPorDia/{dia}/{idDpto}") public String carregarReservaPorDia(@PathParam("dia") String dia, @PathParam("idDpto") String id) throws ParseException { Gson g = new Gson(); DateFormat dtIso = new SimpleDateFormat("yyyy-MM-dd"); DateFormat dt = new SimpleDateFormat("dd/MM/yyyy"); int idDepartamento = Integer.valueOf(id); String dia1 = dt.format(dtIso.parse(dia)); ArrayList<Reserva> listaReserva = new ArrayList<>(); try { con = new ControladorDePersistencia(); listaReserva = con.carregaReservaPorDia(dia1, idDepartamento); } catch (SQLException ex) { ex.printStackTrace(); } return g.toJson(listaReserva); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/reserva/carregarReserva") public String carregarReserva() { Gson g = new Gson(); ArrayList<Reserva> listaReserva = new ArrayList<>(); try { con = new ControladorDePersistencia(); listaReserva = con.carregaReserva(); } catch (SQLException ex) { } return g.toJson(listaReserva); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("usuario/removeDisciplinaDocente") public String removeDisciplinaDocente(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Usuario usuario = g.fromJson(encapsular.getCampo2(), Usuario.class); Disciplina disciplina = g.fromJson(encapsular.getCampo3(), Disciplina.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { if (!pertenceDocente(usuario.getId_disciplinas(), Integer.toString(disciplina.getId()))) { return g.toJson(2); // disciplina no relacionado ao docente } con = new ControladorDePersistencia(); Boolean ok = con.removeDisciplinaUsuario(usuario, Integer.toString(disciplina.getId())); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("usuario/insereDisciplinaDocente") public String insereDisciplinaDocente(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Usuario usuario = g.fromJson(encapsular.getCampo2(), Usuario.class); Disciplina disciplina = g.fromJson(encapsular.getCampo3(), Disciplina.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { if (disciplina.getId_departamento() != usuario.getId_departamento()) { return g.toJson(2); // disciplina no relacionado ao departamento do usuario } con = new ControladorDePersistencia(); Boolean ok = con.insereDisciplinaUsuario(usuario, disciplina.getId()); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/reserva/solicitarReserva") public String solicitarReserva(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Reserva reserva = g.fromJson(encapsular.getCampo2(), Reserva.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao >= 1) { try { con = new ControladorDePersistencia(); //reserva.setProximoid(this.getProxReserva(reserva)); Boolean ok = con.cadastraReserva(reserva); if (ok) { //atualizaIndiceReserva(); atualizaListaReserva(); atualizaSala(); resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (Exception ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/reserva/alterarReserva") public String alterarReserva(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Reserva reserva = g.fromJson(encapsular.getCampo2(), Reserva.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.alteraReserva(reserva); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/reserva/removeReserva") public String removeReserva(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Reserva reserva = g.fromJson(encapsular.getCampo2(), Reserva.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao >= 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.removeReserva(reserva.getId()); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/reserva/alteraStatusReserva") public String alteraStatusReserva(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); Reserva reserva = g.fromJson(encapsular.getCampo2(), Reserva.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.alteraStatusReserva(reserva.getId(), reserva.getStatus()); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/anoLetivo/carregarAnoLetivoISO8601") public String carregarAnoLetivoISO8601() throws ParseException { Gson g = new Gson(); DateFormat dtIso = new SimpleDateFormat("yyyy-MM-dd"); DateFormat dt = new SimpleDateFormat("dd/MM/yyyy"); ArrayList<AnoLetivo> lstAnoL = new ArrayList<>(); try { con = new ControladorDePersistencia(); lstAnoL = con.carregaAnoLetivoAtivo(); } catch (SQLException ex) { ex.printStackTrace(); } for (AnoLetivo anoLetivo : lstAnoL) { try { anoLetivo.setIniciop(dtIso.format(dt.parse(anoLetivo.getIniciop()))); anoLetivo.setInicios(dtIso.format(dt.parse(anoLetivo.getInicios()))); anoLetivo.setFimp(dtIso.format(dt.parse(anoLetivo.getFimp()))); anoLetivo.setFims(dtIso.format(dt.parse(anoLetivo.getFims()))); } catch (ParseException ex) { ex.printStackTrace(); } } return g.toJson(lstAnoL); } @GET @Produces(MediaType.APPLICATION_JSON) @Path("/anoLetivo/carregarAnoLetivo") public String carregarAnoLetivo() { Gson g = new Gson(); ArrayList<AnoLetivo> lstAnoL = new ArrayList<>(); try { con = new ControladorDePersistencia(); lstAnoL = con.carregaAnoLetivoAtivo(); } catch (SQLException ex) { ex.printStackTrace(); } return g.toJson(lstAnoL); } @POST @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/anoLetivo/cadastrarAnoLetivo") public String cadastrarAnoLetivo(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); AnoLetivo anoLetivo = g.fromJson(encapsular.getCampo2(), AnoLetivo.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.cadastraAnoLetivo(anoLetivo); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (Exception ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/anoLetivo/alterarAnoLetivo") public String alterarAnoLetivo(String encap) throws ParseException { Gson g = new Gson(); DateFormat dtIso = new SimpleDateFormat("yyyy-MM-dd"); DateFormat dt = new SimpleDateFormat("dd/MM/yyyy"); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); AnoLetivo anoLetivo = g.fromJson(encapsular.getCampo2(), AnoLetivo.class); anoLetivo.setIniciop(dt.format(dtIso.parse(anoLetivo.getIniciop()))); anoLetivo.setInicios(dt.format(dtIso.parse(anoLetivo.getInicios()))); anoLetivo.setFimp(dt.format(dtIso.parse(anoLetivo.getFimp()))); anoLetivo.setFims(dt.format(dtIso.parse(anoLetivo.getFims()))); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.alteraAnoLetivo(anoLetivo); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } @PUT @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Path("/anoLetivo/removeAnoLetivo") public String removeAnoLetivo(String encap) { Gson g = new Gson(); Encapsular encapsular = g.fromJson(encap, Encapsular.class); Login login = g.fromJson(encapsular.getCampo1(), Login.class); AnoLetivo anoLetivo = g.fromJson(encapsular.getCampo2(), AnoLetivo.class); int permissao = this.verificarPrioridadeLogin(login.getEmail(), login.getSenha()); int resultado = -1; // -1 = sem permissao if (permissao > 1) { try { con = new ControladorDePersistencia(); Boolean ok = con.removeAnoLetivo(anoLetivo.getId()); if (ok) { resultado = 1; // sucesso } else { resultado = 0; // falha } } catch (SQLException ex) { resultado = 0; // falha } } return g.toJson(resultado); } }