airline.service.AirlineService.java Source code

Java tutorial

Introduction

Here is the source code for airline.service.AirlineService.java

Source

/*
 * 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 airline.service;

import airline.model.Asiento;
import airline.model.Avion;
import airline.model.Ciudad;
import airline.model.Jsonable;
import airline.model.Reservacion;
import airline.model.Tiquete;
import airline.model.Usuario;
import airline.model.Viaje;
import airline.model.Vuelo;
import airline.model.model;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.google.gson.typeadapters.RuntimeTypeAdapterFactory;
import java.io.IOException;
import java.io.PrintWriter;
import static java.lang.System.console;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.*;

@WebServlet(name = "AirlineService", urlPatterns = { "/AirlineService" })

public class AirlineService extends HttpServlet {

    model model;

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset-UTF-8");
        try (PrintWriter out = response.getWriter()) {
            response.setContentType("text/xml");
            RuntimeTypeAdapterFactory<Jsonable> rta = RuntimeTypeAdapterFactory.of(Jsonable.class, "_class")
                    .registerSubtype(Ciudad.class, "Ciudad").registerSubtype(Vuelo.class, "Vuelo")
                    .registerSubtype(Avion.class, "Avion").registerSubtype(Reservacion.class, "Reservacion")
                    .registerSubtype(Tiquete.class, "Tiquete").registerSubtype(Asiento.class, "Asiento")
                    .registerSubtype(Usuario.class, "Usuario").registerSubtype(Viaje.class, "Viaje");
            Gson gson = new GsonBuilder().registerTypeAdapterFactory(rta).setDateFormat("yyyy-MM-dd").create();
            String json;
            String accion = request.getParameter("action");
            System.out.println(accion);
            List<Ciudad> ciudades;
            List<Vuelo> vuelos;
            List<Avion> aviones;
            List<Viaje> viajes;
            List<Viaje> viajes2;
            List<Reservacion> reservaciones;
            List<Tiquete> tiquetes;
            List<Usuario> usuarios;
            List<Asiento> asientosIda;
            List<Asiento> asientosVuelta;
            Usuario usuario;
            Viaje v;
            Ciudad c1;
            Vuelo vu;
            Avion a;
            Reservacion r1;
            Asiento a1;
            switch (accion) {
            case "ciudadListAll":
                ciudades = model.selectAllCities();
                json = gson.toJson(ciudades);
                out.write(json);
                break;
            case "vueloListPromo":
                vuelos = model.selectAllFlightsPromo();
                json = gson.toJson(vuelos);
                out.write(json);
                break;
            case "viajeListSearch":
                String origen = request.getParameter("origen");
                String destino = request.getParameter("destino");
                String diaIda = request.getParameter("diaIda");
                String fechaIda = request.getParameter("fechaIda");
                viajes = model.searchTravels(origen, destino, diaIda, fechaIda);
                json = gson.toJson(viajes);
                out.write(json);
                break;
            case "viajeListSearchByDestiny":
                String origen_vuelo = request.getParameter("origen");
                String destino_vuelo = request.getParameter("destino");
                String diaVuelta = request.getParameter("diaVuelta");
                String fechaVuelta = request.getParameter("fechaVuelta");
                viajes = model.searchTravels(destino_vuelo, origen_vuelo, diaVuelta, fechaVuelta);
                json = gson.toJson(viajes);
                out.write(json);
                break;
            case "selectFacturaUltimos12":
                reservaciones = model.selectFacturaUltimos12();
                json = gson.toJson(reservaciones);
                out.write(json);
                break;
            case "selectReCurrentYear":
                reservaciones = model.selectReCurrentYear();
                json = gson.toJson(reservaciones);
                out.write(json);
                break;
            case "selectReservacionByUser":
                String Nusuario = request.getParameter("usuario");
                reservaciones = model.selectReservacionByUser(Nusuario);
                json = gson.toJson(reservaciones);
                out.write(json);
                break;
            case "selectClientsByPlane":
                String plane1 = request.getParameter("avion");
                tiquetes = model.selectClientsByPlane(plane1);
                json = gson.toJson(tiquetes);
                out.write(json);
                break;
            case "selectTiquetes":
                String reserv1 = request.getParameter("reservacionNumero");
                tiquetes = model.selectTiquete(reserv1);
                json = gson.toJson(tiquetes);
                out.write(json);
                break;
            case "viajesListAll":
                viajes = model.selectAllTravels();
                json = gson.toJson(viajes);
                out.write(json);
                break;
            case "avionesListAll":
                aviones = model.selectAllPlanes();
                json = gson.toJson(aviones);
                out.write(json);
                break;
            case "vuelosListAll":
                vuelos = model.selectAllFlights();
                json = gson.toJson(vuelos);
                out.write(json);
                break;
            case "usuariosListAll":
                usuarios = model.selectAllUsers();
                json = gson.toJson(usuarios);
                out.write(json);
                break;
            case "asientosIda":
                String jsonViaje1 = request.getParameter("viajeIda");
                Viaje viajeIda = gson.fromJson(jsonViaje1, Viaje.class);
                asientosIda = model.selectSitsByTrip(viajeIda);
                json = gson.toJson(asientosIda);
                out.write(json);
                break;
            case "asientosVuelta":
                String jsonViaje2 = request.getParameter("viajeVuelta");
                Viaje viajeVuelta = gson.fromJson(jsonViaje2, Viaje.class);
                asientosVuelta = model.selectSitsByTrip(viajeVuelta);
                json = gson.toJson(asientosVuelta);
                out.write(json);
                break;
            case "avionAdd":
                String jsonAvion = request.getParameter("avion");
                Avion avion = gson.fromJson(jsonAvion, Avion.class);
                int avionNumber = model.insertAvion(avion);
                json = gson.toJson(avionNumber);
                out.write(json);
                break;
            case "reservacionAdd1":
                String jsonReservacion = request.getParameter("reservacion");
                Reservacion reservacion = gson.fromJson(jsonReservacion, Reservacion.class);
                int reservacionNumber = model.insertReservacionOneWay(reservacion);
                json = gson.toJson(reservacion);
                out.write(json);
                break;
            case "reservacionAdd2":
                String jsonReservacion2 = request.getParameter("reservacion2");
                Reservacion reservacion2 = gson.fromJson(jsonReservacion2, Reservacion.class);
                int reservacionNumber2 = model.insertReservacionTwoWays(reservacion2);
                json = gson.toJson(reservacionNumber2);
                out.write(json);
                break;
            case "ciudadAdd":
                String jsonCiudad = request.getParameter("ciudad");
                Ciudad ciudad = gson.fromJson(jsonCiudad, Ciudad.class);
                int ciudadNumber = model.insertCiudad(ciudad);
                json = gson.toJson(ciudadNumber);
                out.write(json);
                break;
            case "viajeAdd":
                String jsonViaje = request.getParameter("viaje");
                Viaje viaje = gson.fromJson(jsonViaje, Viaje.class);
                int viajeNumber = model.ViajeAdd(viaje);
                json = gson.toJson(viajeNumber);
                out.write(json);
                break;
            case "tiqueteAdd":
                String tiquete = request.getParameter("tiquete");
                Tiquete tiquete1 = gson.fromJson(tiquete, Tiquete.class);
                int tiqueteNumber = model.insertIntoTiquete(tiquete1);
                json = gson.toJson(tiqueteNumber);
                out.write(json);
                break;
            case "vueloAdd":
                String jsonVuelo = request.getParameter("vuelo");
                Vuelo vuelo = gson.fromJson(jsonVuelo, Vuelo.class);
                int vueloNumber = model.VueloAdd(vuelo);
                json = gson.toJson(vueloNumber);
                out.write(json);
                break;
            case "usuarioAdd":
                String jsonUsuario = request.getParameter("usuario");
                Usuario user = gson.fromJson(jsonUsuario, Usuario.class);
                model.insertUsuario(user);
                int UsuarioNumber = 1;
                json = gson.toJson(UsuarioNumber);
                out.write(json);
                break;
            case "usuarioExiste":
                String nombreUsuario = request.getParameter("nombreUsuario");
                boolean exist = model.usuarioExiste(nombreUsuario);
                json = gson.toJson(exist);
                out.write(json);
                break;
            case "userLogin":
                Usuario user1;
                user1 = new Usuario(request.getParameter("usuario"), request.getParameter("contrasena"), "", "", "",
                        new Date(), "", 0, 0, 0);
                user1 = model.userLogin(user1);
                if (user1.getTipo() != 0) {
                    request.getSession().setAttribute("usuario", user1);
                    switch (user1.getTipo()) {
                    case 1: // user
                        usuario = model.userLogin(user1);
                        request.getSession().setAttribute("usuario", usuario);
                        request.getRequestDispatcher("/index.jsp").forward(request, response);
                        break;
                    case 2: // manager
                        request.getRequestDispatcher("/viajes.jsp").forward(request, response);
                        break;
                    }
                } else {
                    request.setAttribute("error", "Usuario/Clave incorrecto");
                    request.getRequestDispatcher("/login.jsp").forward(request, response);
                }
                break;
            case "userLogout":
                request.getSession().removeAttribute("usuario");
                request.getSession().invalidate();
                request.getRequestDispatcher("/index.jsp").forward(request, response);
                break;
            case "getViaje":
                int numero = Integer.parseInt(request.getParameter("numeroV"));
                v = model.selectTravel(numero);
                json = gson.toJson(v);
                out.write(json);
                break;
            case "getCiudad":
                String codigoC = request.getParameter("codigoC");
                c1 = model.selectCity(codigoC);
                json = gson.toJson(c1);
                out.write(json);
                break;
            case "getAvion":
                String placaA = request.getParameter("placaA");
                a = model.selectPlane(placaA);
                json = gson.toJson(a);
                out.write(json);
                break;
            case "getVuelo":
                int numeroVu = Integer.parseInt(request.getParameter("numeroVu"));
                vu = model.selectFlight(numeroVu);
                json = gson.toJson(vu);
                out.write(json);
                break;
            case "ciudadDelete":
                String codigo = request.getParameter("codigo");
                int n1 = model.deleteCiudad(codigo);
                json = gson.toJson(n1);
                out.write(json);
                break;
            case "viajeDelete":
                String numero_viaje = request.getParameter("numero_viaje");
                int n2 = model.deleteViaje(numero_viaje);
                json = gson.toJson(n2);
                out.write(json);
                break;
            case "vueloDelete":
                String numero_vuelo = request.getParameter("numero_vuelo");
                int n3 = model.deleteVuelo(numero_vuelo);
                json = gson.toJson(n3);
                out.write(json);
                break;
            case "avionDelete":
                String placa = request.getParameter("placa");
                int n4 = model.deleteAvion(placa);
                json = gson.toJson(n4);
                out.write(json);
                break;
            case "ciudadUpdate":
                String jsonCiudad2 = request.getParameter("ciudad");
                Ciudad ciudad2 = gson.fromJson(jsonCiudad2, Ciudad.class);
                int ciudadNumber2 = model.updateCiudad(ciudad2);
                json = gson.toJson(ciudadNumber2);
                out.write(json);
                break;
            case "avionUpdate":
                String jsonAvion2 = request.getParameter("avion");
                Avion avion2 = gson.fromJson(jsonAvion2, Avion.class);
                int avionNumber2 = model.updateAvion(avion2);
                json = gson.toJson(avionNumber2);
                out.write(json);
                break;
            case "vueloUpdate":
                String jsonVuelo2 = request.getParameter("vuelo");
                Vuelo vuelo2 = gson.fromJson(jsonVuelo2, Vuelo.class);
                int vueloNumber2 = model.VueloUpdate(vuelo2);
                json = gson.toJson(vueloNumber2);
                out.write(json);
                break;
            case "asientoUpdate":
                String asiento1 = request.getParameter("asiento");
                Asiento asiento2 = gson.fromJson(asiento1, Asiento.class);
                int asiento3 = model.updateAsientoOcupado(asiento2);
                a1 = model.selectSitByNumber(asiento2.getNumero());
                json = gson.toJson(a1);
                out.write(json);
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    }

    @Override
    public void init() throws ServletException {
        super.init();
        this.model = new model();
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}