From 3a14c0d6060b83bc8610b4843847a34a740e2777 Mon Sep 17 00:00:00 2001
From: JotaJota96 <jjap96@gmail.com>
Date: Mon, 14 Oct 2019 01:43:30 -0300
Subject: [PATCH] Correccion en Alta usuario. Agregada funcionalidad en servlet
 de Agregar video a lista

---
 .../AgregarVideoAListaReproduccion.java       | 75 +++++++------------
 .../src/java/com/uytube/AltaUsuario.java      |  3 +
 .../com/uytube/ConsultaListaReproducion.java  |  9 +--
 .../src/java/com/uytube/PeticionAjax.java     | 34 +++++++--
 UyTube_web/web/AltaUsuario.jsp                | 15 ++--
 UyTube_web/web/ConsultaUsuario.jsp            |  2 +-
 UyTube_web/web/ModificarUsuario.jsp           |  3 +-
 UyTube_web/web/js/alta-usuario.js             | 23 +++++-
 8 files changed, 91 insertions(+), 73 deletions(-)

diff --git a/UyTube_web/src/java/com/uytube/AgregarVideoAListaReproduccion.java b/UyTube_web/src/java/com/uytube/AgregarVideoAListaReproduccion.java
index 7552a56..98c8d82 100644
--- a/UyTube_web/src/java/com/uytube/AgregarVideoAListaReproduccion.java
+++ b/UyTube_web/src/java/com/uytube/AgregarVideoAListaReproduccion.java
@@ -5,8 +5,12 @@
  */
 package com.uytube;
 
+import Logica.DataType.DtUsuario;
+import Logica.Fabrica;
+import Logica.Interfaces.IUsuario;
 import java.io.IOException;
 import java.io.PrintWriter;
+import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
@@ -17,60 +21,33 @@ import javax.servlet.http.HttpServletResponse;
  * @author administrador
  */
 public class AgregarVideoAListaReproduccion extends HttpServlet {
+    // Ejemplo: localhost:8084/uytube/lista-agregar-video?idvideo=13&idlista=10
 
-    /**
-     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
-     * methods.
-     *
-     * @param request servlet request
-     * @param response servlet response
-     * @throws ServletException if a servlet-specific error occurs
-     * @throws IOException if an I/O error occurs
-     */
-    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
-            throws ServletException, IOException {
-        response.setContentType("text/html;charset=UTF-8");
-        try (PrintWriter out = response.getWriter()) {
-            /* TODO output your page here. You may use following sample code. */
-            out.println("<!DOCTYPE html>");
-            out.println("<html>");
-            out.println("<head>");
-            out.println("<title>Servlet AgregarVideoAListaReproduccion</title>");            
-            out.println("</head>");
-            out.println("<body>");
-            out.println("<h1>Servlet AgregarVideoAListaReproduccion at " + request.getContextPath() + "</h1>");
-            out.println("</body>");
-            out.println("</html>");
-        }
-    }
-
-    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
-    /**
-     * Handles the HTTP <code>GET</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 doGet(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
-        processRequest(request, response);
-    }
+        try {
+            IUsuario sys = Fabrica.getInstancia().getIUsuario();
+            String pIDVideo = request.getParameter("idvideo");
+            String pIDLista = request.getParameter("idlista");
+            int IDVideo = Integer.valueOf(pIDVideo);
+            int IDLista = Integer.valueOf(pIDLista);
 
-    /**
-     * 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);
+            DtUsuario usuActual = sys.obtenerUsuarioActual();
+            sys.seleccionarUsuario(sys.obtenerPropietarioDeVideo(IDVideo).getNickname());
+            sys.seleccionarVideo(IDVideo);
+            sys.agregarVideoAListaDeReproduccion(IDLista);
+
+            response.sendRedirect("lista-consultar?id="+IDLista);
+        } catch (Exception e) {
+            System.out.println("---- Exception ----");
+            System.out.println(e.getMessage());
+            System.out.println("-------------------");
+            RequestDispatcher rd; //objeto para despachar
+            request.setAttribute("mensajeError", e.getMessage());
+            rd = request.getRequestDispatcher("/404.jsp");
+            rd.forward(request, response);
+        }
     }
 
     /**
diff --git a/UyTube_web/src/java/com/uytube/AltaUsuario.java b/UyTube_web/src/java/com/uytube/AltaUsuario.java
index 90452a0..92c6bcb 100644
--- a/UyTube_web/src/java/com/uytube/AltaUsuario.java
+++ b/UyTube_web/src/java/com/uytube/AltaUsuario.java
@@ -104,6 +104,9 @@ public class AltaUsuario extends HttpServlet {
 
             DtCanal CanUsu = new DtCanal(0, pCanal, pDescripcion, Priv);
             sys.altaUsuarioCanal(Usu, CanUsu);
+            DtUsuario nuevoUsuario = sys.obtenerUsuarioActual();
+            
+            request.getSession().setAttribute("usuario", nuevoUsuario);
             response.sendRedirect("/uytube/usuario-consultar?id=" + Usu.getNickname());
 
         } catch (Exception e) {
diff --git a/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java b/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java
index 1ce8a3b..50e2dbe 100644
--- a/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java
+++ b/UyTube_web/src/java/com/uytube/ConsultaListaReproducion.java
@@ -39,18 +39,15 @@ public class ConsultaListaReproducion extends HttpServlet {
         try {
             IUsuario sys = Fabrica.getInstancia().getIUsuario();
             boolean sesionIniciada = sys.sesionIniciada();
-            String usuario = request.getParameter("idUsu");
-            String lista = request.getParameter("idList");
+            String lista = request.getParameter("id");
+            int idLista = Integer.parseInt(lista);
+            String usuario = sys.obtenerPropietarioDeListaDeReproduccion(idLista).getNickname();
             
             sys.seleccionarUsuario(usuario);
-            int idLista = Integer.parseInt(lista);
-            sys.seleccionarListaDeReproduccion(idLista);
             
             DtListaDeReproduccion listas = sys.seleccionarListaDeReproduccion(idLista);
-            
             ArrayList <DtVideo> videos = sys.listarVideosDeListaDeReproduccion();
             
-            
             boolean usuarioPropietario = false;
             if (sesionIniciada) {
                 usuarioPropietario = sys.obtenerUsuarioActual().getNickname().equals(usuario);
diff --git a/UyTube_web/src/java/com/uytube/PeticionAjax.java b/UyTube_web/src/java/com/uytube/PeticionAjax.java
index 8ad1683..11c8f37 100644
--- a/UyTube_web/src/java/com/uytube/PeticionAjax.java
+++ b/UyTube_web/src/java/com/uytube/PeticionAjax.java
@@ -5,8 +5,11 @@
  */
 package com.uytube;
 
+import Logica.Fabrica;
+import Logica.Interfaces.IUsuario;
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.util.Arrays;
 import javax.servlet.RequestDispatcher;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServlet;
@@ -37,16 +40,35 @@ public class PeticionAjax extends HttpServlet {
          Aca debe recibir un parametor de nombre accion el cual define cual es la funcion
          que se debe ejecutar
              */
+            IUsuario sys = Fabrica.getInstancia().getIUsuario();
+            
+            // datos recibidos
             String accion = request.getParameter("accion"); // obtiene lo enviado por AJAX
-            String txtUsuario = request.getParameter("nombre"); // obtiene lo enviado por AJAX
+            String dato = request.getParameter("dato"); // obtiene lo enviado por AJAX
+            
+            System.out.println("-- Peticion AJAX --");
+            System.out.println("accion: " + accion);
+            System.out.println("dato: " + dato);
+            
+            // prepara respuesta
             response.setContentType("text/plain");  //Set content type of the response so that jQuery knows what it can expect.
             response.setCharacterEncoding("UTF-8"); //You want world domination, huh?
-            String respuesta;
-            if (txtUsuario.equals("pedro")) {
-                respuesta = "Pedro ya existe";
-            } else {
-                respuesta = "El usuario está disponible";
+            String respuesta = "";
+            
+            
+            switch (accion){
+                case "validarNickname":
+                    if (sys.existeNickname(dato)){
+                        respuesta = "Este nickname no está disponible";
+                    }
+                    break;
+                case "validarEmail":
+                    if (sys.existeEmail(dato)){
+                        respuesta = "Este email no está disponible";
+                    }
+                    break;
             }
+            System.out.println("Respuesta: " + respuesta);
             response.getWriter().write(respuesta);
         } catch (Exception e) {
             System.out.println("---- Exception ----");
diff --git a/UyTube_web/web/AltaUsuario.jsp b/UyTube_web/web/AltaUsuario.jsp
index fe70bdb..c1ccaa8 100644
--- a/UyTube_web/web/AltaUsuario.jsp
+++ b/UyTube_web/web/AltaUsuario.jsp
@@ -10,7 +10,6 @@
     <%
         boolean sesionIniciada = (boolean) (request.getSession().getAttribute("usuario") != null);
     %>
-
     <script>
         var check = function () {
             if (document.getElementById('input_Contrasenia').value ==document.getElementById('input_Repetir_contraseña').value) {
@@ -90,7 +89,10 @@
                                     <section class="d-flex  flex-lg-row flex-wrap justify-content-lg-between">					
                                         <form class="form-signin" action="/uytube/usuario-agregar" method="post">
                                             <h1 class="h3 mb-3 font-weight-normal" id="Texto_ingrese">Ingrese sus datos</h1><br>
-                                            <input class="form-control" type="text" name="nickname" placeholder="Nickname" id="input_Nickname" required><span id="msjNickname"></span> <br>
+                                            <input class="form-control" type="text" name="nickname" placeholder="Nickname" id="input_Nickname" required>
+                                            <span id="msjNickname"></span>
+                                            <br>
+                                            
                                             <div class="row">
                                                 <div class="col-md-6 mb-3">
                                                     <input type="text" class="form-control" name="nombre" id="input_Nombre" placeholder="Nombre" required>
@@ -100,9 +102,9 @@
                                                 </div>
                                             </div>
 
-                                            <div class="mb-3">
-                                                <input type="email" class="form-control" name="email" id="email" placeholder="Email" required>
-                                            </div>
+                                            <input class="form-control" type="email" name="email" placeholder="Email" id="email" required>
+                                            <span id="msjEmail"></span>
+                                            <br>
 
                                             <input class="form-control" name="fechaNa" type="date" id="input_fecha" name="trip-start"><br>
                                             <input class="form-control" type="password" name="password" placeholder="Contraseña" id="input_Contrasenia" onkeyup="check()" required><br>
@@ -132,7 +134,8 @@
                                             <label id="label_email">Imagen de perfil</label>
 
                                             <div class="form-group">
-                                                <input accept=".PNG,.JPG,.jpg,.png" name="imagen" id="input_Imagen_Perfil" type="file" class="file" multiple=false data-preview-file-type="any"><br>
+                                                <input disabled="true" accept=".PNG,.JPG,.jpg,.png" name="imagen" id="input_Imagen_Perfil" type="file" class="file" multiple=false data-preview-file-type="any"><br>
+                                                <span id='message'>(Funcionalidad no disponible)</span><br>
                                                 <small class="text-muted">Opcional*</small>
                                             </div>
 
diff --git a/UyTube_web/web/ConsultaUsuario.jsp b/UyTube_web/web/ConsultaUsuario.jsp
index c114ffb..8d333d8 100644
--- a/UyTube_web/web/ConsultaUsuario.jsp
+++ b/UyTube_web/web/ConsultaUsuario.jsp
@@ -296,7 +296,7 @@
                                                     for (DtListaDeReproduccion l : listasRep) {
                                                 %>
                                                 <li class="list-group-item d-flex justify-content-between align-items-center">
-                                                    <a href="lista-consultar?idUsu=<%= usuario.getNickname() %>&idList=<%= l.getId() %>">
+                                                    <a href="lista-consultar?id=<%= l.getId() %>">
                                                         <%= l.getNombre()%>
                                                     </a>
                                                 </li>
diff --git a/UyTube_web/web/ModificarUsuario.jsp b/UyTube_web/web/ModificarUsuario.jsp
index 5be555f..b2d63b9 100644
--- a/UyTube_web/web/ModificarUsuario.jsp
+++ b/UyTube_web/web/ModificarUsuario.jsp
@@ -168,7 +168,8 @@
                                             <br>   
                                             <label id="label_email">Imagen de perfil</label>	
                                             <div class="form-group">
-                                                <input value="<%= usuario.getImagen()%>" name="imagen" id="input_Imagen_Perfil" type="file" class="file" multiple=false data-preview-file-type="any"><br>
+                                                <input disabled="true" name="imagen" id="input_Imagen_Perfil" type="file" class="file" multiple=false data-preview-file-type="any"><br>
+                                                <span id='message'>(Funcionalidad no disponible)</span><br>
                                             </div>
 
 
diff --git a/UyTube_web/web/js/alta-usuario.js b/UyTube_web/web/js/alta-usuario.js
index ea0df8c..2da3d75 100644
--- a/UyTube_web/web/js/alta-usuario.js
+++ b/UyTube_web/web/js/alta-usuario.js
@@ -3,18 +3,33 @@
 $("#input_Nickname").keyup(function(){
     //Obtiene el valor ingresaro
     var valorIngresado = $("#input_Nickname").val();
+    $("#input_Nombre_canal").val($("#input_Nickname").val());
+    
     //Realiza la consulta utilizando AJAX al servidor
     $.get("/uytube/consultar",
         {
-          nombre: valorIngresado,
-          accion: validarNombre 
+          dato: valorIngresado,
+          accion: "validarNickname" 
         }, function(respuesta, status){
         //alert("Data: " + respuesta + "\nStatus: " + status);
         $("#msjNickname").text(respuesta);
     });
-    
 }); 
 
 
-
+//Lee lo que se escribe en el campo usuario
+$("#email").keyup(function(){
+    //Obtiene el valor ingresaro
+    var valorIngresado = $("#email").val();
+    
+    //Realiza la consulta utilizando AJAX al servidor
+    $.get("/uytube/consultar",
+        {
+          dato: valorIngresado,
+          accion: "validarEmail" 
+        }, function(respuesta, status){
+        //alert("Data: " + respuesta + "\nStatus: " + status);
+        $("#msjEmail").text(respuesta);
+    });
+}); 
 
-- 
GitLab