diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c5f3f6b --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "java.configuration.updateBuildConfiguration": "interactive" +} \ No newline at end of file diff --git a/backend/pom.xml b/backend/pom.xml index 745a3a5..7318efd 100644 --- a/backend/pom.xml +++ b/backend/pom.xml @@ -14,8 +14,8 @@ UTF-8 - 1.7 - 1.7 + 18 + 18 @@ -25,51 +25,66 @@ 4.11 test - - - - - + + com.sparkjava + spark-core + 2.9.4 + + + + org.slf4j + slf4j-simple + 1.7.21 + + + + com.google.code.gson + gson + 2.8.6 + + + + mysql + mysql-connector-java + 8.0.30 + + + + + - maven-clean-plugin - 3.1.0 - - - - maven-resources-plugin - 3.0.2 + org.apache.maven.plugins + maven-compiler-plugin + 2.3.2 + + 1.8 + 1.8 + - maven-compiler-plugin - 3.8.0 + maven-assembly-plugin + + + package + + single + + + + + + + jar-with-dependencies + + + + mx.uv.App + + + - - maven-surefire-plugin - 2.22.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - maven-site-plugin - 3.7.1 - - - maven-project-info-reports-plugin - 3.0.0 - - - - - + + + + \ No newline at end of file diff --git a/backend/src/main/java/mx/uv/App.java b/backend/src/main/java/mx/uv/App.java index a2d3cff..c7bdb36 100644 --- a/backend/src/main/java/mx/uv/App.java +++ b/backend/src/main/java/mx/uv/App.java @@ -4,10 +4,364 @@ package mx.uv; * Hello world! * */ + +import static spark.Spark.*; + +import java.util.HashMap; +import java.util.List; +import java.util.UUID; +import com.google.gson.*; + public class App { + static Gson gson = new Gson(); + static HashMap usuarios = new HashMap(); + static String correoG; + static String passwordG; + static String nombreG; + static String idG; public static void main( String[] args ) { System.out.println( "Hello World!" ); + + //port(80); + port(getHerokuAssignedPort()); + + options("/*", (request, response) -> { + + String accessControlRequestHeaders = request.headers("Access-Control-Request-Headers"); + if (accessControlRequestHeaders != null) { + response.header("Access-Control-Allow-Headers", accessControlRequestHeaders); + } + + String accessControlRequestMethod = request.headers("Access-Control-Request-Method"); + if (accessControlRequestMethod != null) { + response.header("Access-Control-Allow-Methods", accessControlRequestMethod); + } + + return "OK"; + }); + before((request, response) -> response.header("Access-Control-Allow-Origin", "*")); + + get("/backend/verificar-conexion", (request, response) -> { + response.type("application/json"); + + JsonObject respuesta = new JsonObject(); + respuesta.addProperty("mensaje", "Conexión exitosa al backend"); + + return respuesta.toString(); + }); + + post("/frontend/", (request, response)->{ + response.type("application/json"); + String payload = request.body(); + JsonElement jsonElement = JsonParser.parseString(payload); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + Usuario usuario = gson.fromJson(jsonObject.get("datosFormulario"), Usuario.class); + System.out.println("usuario"+usuario); + System.out.println("payload "+payload); + String id = UUID.randomUUID().toString(); + usuario.setId(id); + usuarios.put(id, usuario); + DAO.crearUsuario(usuario); + System.out.println("i "+usuario.getId()); + System.out.println("n "+usuario.getCorreo()); + System.out.println("p "+usuario.getPassword()); + JsonObject respuesta = new JsonObject(); + respuesta.addProperty("msj", "Se creo el usuario"); + respuesta.addProperty("id", id); + return gson.toJson(usuario); + }); + + post("/frontend/correoExiste", (request, response) -> { + response.type("application/json"); + + // Obtener datos del formulario enviado + String payload = request.body(); + + // Parsear el cuerpo JSON + JsonObject jsonObject = JsonParser.parseString(payload).getAsJsonObject(); + + // Acceder a la clave "datosFormulario" y luego obtener la clave "correo" + String correo = jsonObject.getAsJsonObject("datosFormulario").get("correo").getAsString(); + + System.out.println("correo: "+correo); + // Verificar si el correo existe + boolean correoExistente = DAO.correoExistente(correo); + + // Construir un objeto JSON con la información sobre si el correo existe + JsonObject resultadoJson = new JsonObject(); + resultadoJson.addProperty("correoExistente", correoExistente); + + return resultadoJson.toString(); + }); + + post("/frontend/obtenerUsuario", (request, response) -> { + response.type("application/json"); + + // Puedes acceder a las variables globales directamente o utilizar métodos getter según tu implementación + String correo = correoG; + String password = passwordG; + String nombre = nombreG; + + // Construir un objeto JSON con los datos del usuario + JsonObject usuarioJson = new JsonObject(); + usuarioJson.addProperty("correo", correo); + usuarioJson.addProperty("password", password); + usuarioJson.addProperty("nombre", nombre); + System.out.println(nombre);; + System.out.println(usuarioJson); + return usuarioJson.toString(); + }); + + post("/frontend/login", (request, response)->{ + response.type("application/json"); + String payload = request.body(); + System.out.println("payload "+payload); + // DAO.crearUsuario(usuario); + + String correo = ""; + String password = ""; + + JsonElement jsonElement = JsonParser.parseString(payload); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + + // Accede a la clave "datosFormulario" y luego obtén las claves "correo" y "password" + JsonObject datosFormulario = jsonObject.getAsJsonObject("datosFormulario"); + + if (datosFormulario != null && datosFormulario.has("correo") && datosFormulario.has("password")) { + correo = datosFormulario.get("correo").getAsString(); + password = datosFormulario.get("password").getAsString(); + System.out.println("Correogson: " + correo); + System.out.println("Passwordgson: " + password); + } else { + System.out.println("Las claves 'correo' y/o 'password' no están presentes en el JSON."); + } + boolean esUsuarioValido = DAO.validarUsuario(correo, password); + JsonObject respuesta = new JsonObject(); + if (esUsuarioValido) { + correoG = correo; + passwordG = password; + String id = DAO.obtenerIdUsuario(correoG,passwordG); + idG = id; + System.out.println("correo valido "+correoG); + System.out.println("password valido "+passwordG); + System.out.println("id valido "+passwordG); + + + Usuario usuario = DAO.obtenerDatosUsuario(id); + nombreG = usuario.getNombre(); + System.out.println("nombre valido: "+nombreG); + respuesta.addProperty("msj", "Valido"); + respuesta.addProperty("nombre", usuario.getNombre()); + respuesta.addProperty("id", id); + return gson.toJson(usuario); + } else { + respuesta.addProperty("msj", "Invalido"); + return "Invalido"; + } + }); + + post("/Login", (request, response) -> { + response.type("application/json"); + + // Puedes acceder a las variables globales directamente o utilizar métodos getter según tu implementación + String correo = correoG; + String password = passwordG; + String nombre = nombreG; + + // Construir un objeto JSON con los datos del usuario + JsonObject usuarioJson = new JsonObject(); + usuarioJson.addProperty("correo", correo); + usuarioJson.addProperty("password", password); + usuarioJson.addProperty("nombre", nombre); + System.out.println(nombre);; + System.out.println(usuarioJson); + return usuarioJson.toString(); + }); + + + post("/frontend/cerrarSesion", (request, response) -> { + response.type("application/json"); + + // Establecer las variables a null + correoG = null; + passwordG = null; + nombreG = null; + idG = null; + + String correo = correoG; + String password = passwordG; + String nombre = nombreG; + + // Construir un objeto JSON con los datos del usuario + JsonObject usuarioJson = new JsonObject(); + usuarioJson.addProperty("correo", correo); + usuarioJson.addProperty("password", password); + usuarioJson.addProperty("nombre", nombre); + usuarioJson.addProperty("id", idG); + + System.out.println(usuarioJson); + return usuarioJson.toString(); + }); + + + post("/frontend/login", (request, response)->{ + response.type("application/json"); + String payload = request.body(); + System.out.println("payload "+payload); + // DAO.crearUsuario(usuario); + + String correo = ""; + String password = ""; + + JsonElement jsonElement = JsonParser.parseString(payload); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + + // Accede a la clave "datosFormulario" y luego obtén las claves "correo" y "password" + JsonObject datosFormulario = jsonObject.getAsJsonObject("datosFormulario"); + + if (datosFormulario != null && datosFormulario.has("correo") && datosFormulario.has("password")) { + correo = datosFormulario.get("correo").getAsString(); + password = datosFormulario.get("password").getAsString(); + System.out.println("Correogson: " + correo); + System.out.println("Passwordgson: " + password); + } else { + System.out.println("Las claves 'correo' y/o 'password' no están presentes en el JSON."); + } + boolean esUsuarioValido = DAO.validarUsuario(correo, password); + JsonObject respuesta = new JsonObject(); + if (esUsuarioValido) { + correoG = correo; + passwordG = password; + String id = DAO.obtenerIdUsuario(correoG,passwordG); + idG = id; + System.out.println("correo valido "+correoG); + System.out.println("password valido "+passwordG); + System.out.println("id valido "+passwordG); + + + Usuario usuario = DAO.obtenerDatosUsuario(id); + nombreG = usuario.getNombre(); + System.out.println("nombre valido: "+nombreG); + respuesta.addProperty("msj", "Valido"); + respuesta.addProperty("nombre", usuario.getNombre()); + respuesta.addProperty("id", id); + return gson.toJson(usuario); + } else { + respuesta.addProperty("msj", "Invalido"); + return "Invalido"; + } + }); + + + //Recuperar Contraseña: + + post("/frontend/RecuperarContra", (request, response) -> { + response.type("application/json"); + String payload = request.body(); + System.out.println(payload); + + String correo = ""; + String password = ""; + + JsonElement jsonElement = JsonParser.parseString(payload); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + + JsonObject datosFormulario = jsonObject.getAsJsonObject("datosFormulario"); + + if (datosFormulario != null && datosFormulario.has("correo") && datosFormulario.has("password")) { + correo = datosFormulario.get("correo").getAsString(); + password = datosFormulario.get("password").getAsString(); + System.out.println("Correo: " + correo); + System.out.println("Password: " + password); + } else { + System.out.println("Las claves 'correo' y/o 'password' no están presentes en el JSON."); + } + boolean existeUsuario = DAO.existeUsuarioPorCorreo(correo); + JsonObject respuesta = new JsonObject(); + if (existeUsuario) { + + respuesta.addProperty("msj", "Usuario encontrado"); + return "Usuario encontrado"; + } else { + respuesta.addProperty("msj", "Usuario no encontrado"); + return "Usuario no encontrado"; + } + }); + + post("/frontend/ColocarContra2", (request, response) -> { + response.type("application/json"); + String payload = request.body(); + + String correo = ""; + String password = ""; + + JsonElement jsonElement = JsonParser.parseString(payload); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + + JsonObject datosFormulario = jsonObject.getAsJsonObject("datosFormulario"); + + if (datosFormulario != null && datosFormulario.has("correo") && datosFormulario.has("password")) { + correo = datosFormulario.get("correo").getAsString(); + password = datosFormulario.get("password").getAsString(); + System.out.println("Correo: " + correo); + System.out.println("Password: " + password); + } else { + System.out.println("Las claves 'correo' y/o 'password' no están presentes en el JSON."); + } + System.out.println(correo); + System.out.println(password); + DAO.cambiarContrasena(correo, password); + + System.out.println(payload); + return "Actualizado"; + }); + + post("/frontend/RecuperarContra", (request, response) -> { + response.type("application/json"); + String payload = request.body(); + System.out.println(payload); + + String correo = ""; + String password = ""; + + JsonElement jsonElement = JsonParser.parseString(payload); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + + JsonObject datosFormulario = jsonObject.getAsJsonObject("datosFormulario"); + + if (datosFormulario != null && datosFormulario.has("correo") && datosFormulario.has("password")) { + correo = datosFormulario.get("correo").getAsString(); + password = datosFormulario.get("password").getAsString(); + System.out.println("Correo: " + correo); + System.out.println("Password: " + password); + } else { + System.out.println("Las claves 'correo' y/o 'password' no están presentes en el JSON."); + } + boolean existeUsuario = DAO.existeUsuarioPorCorreo(correo); + JsonObject respuesta = new JsonObject(); + if (existeUsuario) { + + respuesta.addProperty("msj", "Usuario encontrado"); + return "Usuario encontrado"; + } else { + respuesta.addProperty("msj", "Usuario no encontrado"); + return "Usuario no encontrado"; + } + }); + + + } -} + + + + static int getHerokuAssignedPort() { + ProcessBuilder processBuilder = new ProcessBuilder(); + if (processBuilder.environment().get("PORT") != null) { + return Integer.parseInt(processBuilder.environment().get("PORT")); + } + return 4567; //return default port if heroku-port isn't set (i.e. on localhost) + } +} \ No newline at end of file diff --git a/backend/src/main/java/mx/uv/Conexion.java b/backend/src/main/java/mx/uv/Conexion.java index 4b9fdd0..806857c 100644 --- a/backend/src/main/java/mx/uv/Conexion.java +++ b/backend/src/main/java/mx/uv/Conexion.java @@ -5,10 +5,10 @@ import java.sql.DriverManager; import java.sql.SQLException; public class Conexion { - private static String url = "jdbc:mysql://127.0.0.1:3306/?user=pastel"; + private static String url = "jdbc:mysql://127.0.0.1:3306/dbpastel"; private static String driverName = "com.mysql.cj.jdbc.Driver"; - private static String username = "dbpastel"; - private static String password = "dbpastel"; + private static String username = "root"; + private static String password = "cesarin_11"; // variable de conexion private static Connection connection = null; @@ -16,11 +16,13 @@ public class Conexion { try { Class.forName(driverName); connection = DriverManager.getConnection(url, username, password); + System.out.println("conexion exitosa"); } catch (SQLException e) { System.out.println(" SQL:" + e); } catch (ClassNotFoundException e){ System.out.println("Driver:" + e); } + return connection; } } \ No newline at end of file diff --git a/backend/src/main/java/mx/uv/Pasteles.java b/backend/src/main/java/mx/uv/Pasteles.java new file mode 100644 index 0000000..e52cd7e --- /dev/null +++ b/backend/src/main/java/mx/uv/Pasteles.java @@ -0,0 +1,98 @@ +package mx.uv; + +public class Pasteles { + + String idPedido; + String idUsuario; + String idNombre; + String idPrecio; + String idTamaño; + String status; + String inscripcion; + String tipoRelleno; + + public String getIdPedido() { + return idPedido; + } + + public void setIdPedido(String idPedido) { + this.idPedido = idPedido; + } + + public String getIdUsuario() { + return idUsuario; + } + + public void setIdUsuario(String idUsuario) { + this.idUsuario = idUsuario; + } + + public String getIdNombre() { + return idNombre; + } + + public void setIdNombre(String idNombre) { + this.idNombre = idNombre; + } + + public String getIdPrecio() { + return idPrecio; + } + + public void setIdPrecio(String idPrecio) { + this.idPrecio = idPrecio; + } + + public String getIdTamaño() { + return idTamaño; + } + + public void setIdTamaño(String idTamaño) { + this.idTamaño = idTamaño; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String getInscripcion() { + return inscripcion; + } + + public void setInscripcion(String inscripcion) { + this.inscripcion = inscripcion; + } + + public String getTipoRelleno() { + return tipoRelleno; + } + + public void setTipoRelleno(String tipoRelleno) { + this.tipoRelleno = tipoRelleno; + } + + public String toString() { + return "Pasteles [idPedido=" + idPedido + ", idUsuario=" + idUsuario + ", idNombre=" + idNombre + ", idPrecio=" + idPrecio + + ", idTamaño=" + idTamaño + ", status=" + status + ", inscripcion=" + inscripcion + ", tipoRelleno=" + tipoRelleno + "]"; + } + + public Pasteles(){ + + } + + public Pasteles(String idPedido, String idUsuario, String idNombre, String idPrecio, String idTamaño, + String status, String inscripcion, String tipoRelleno) { + this.idPedido = idPedido; + this.idUsuario = idUsuario; + this.idNombre = idNombre; + this.idPrecio = idPrecio; + this.idTamaño = idTamaño; + this.status = status; + this.inscripcion = inscripcion; + this.tipoRelleno = tipoRelleno; + } +} diff --git a/backend/src/main/java/mx/uv/Reservaciones.java b/backend/src/main/java/mx/uv/Reservaciones.java new file mode 100644 index 0000000..8b86203 --- /dev/null +++ b/backend/src/main/java/mx/uv/Reservaciones.java @@ -0,0 +1,83 @@ +package mx.uv; + +public class Reservaciones { + + String idR; + String idU; + String idH; + String nombre; + String precio; + String checkIn; + String checkOut; + String personas; + public String getIdR() { + return idR; + } + public void setIdR(String idR) { + this.idR = idR; + } + public String getIdU() { + return idU; + } + public void setIdU(String idU) { + this.idU = idU; + } + public String getIdH() { + return idH; + } + public void setIdH(String idH) { + this.idH = idH; + } + public String getNombre() { + return nombre; + } + public void setNombre(String nombre) { + this.nombre = nombre; + } + public String getPrecio() { + return precio; + } + public void setPrecio(String precio) { + this.precio = precio; + } + public String getCheckIn() { + return checkIn; + } + public void setCheckIn(String checkIn) { + this.checkIn = checkIn; + } + public String getCheckOut() { + return checkOut; + } + public void setCheckOut(String checkOut) { + this.checkOut = checkOut; + } + public String getPersonas() { + return personas; + } + public void setPersonas(String personas) { + this.personas = personas; + } + + public String toString() { + return "Reservaciones [id=" + idR + ", nombre=" + nombre + ", precio=" + precio + ", checkIn=" + checkIn + ", checkOut=" + checkOut + ", personas=" + personas +"]"; + } + + public Reservaciones(){ + + } + + public Reservaciones(String idR, String idU, String idH, String nombre, String precio, String checkIn, + String checkOut, String personas) { + this.idR = idR; + this.idU = idU; + this.idH = idH; + this.nombre = nombre; + this.precio = precio; + this.checkIn = checkIn; + this.checkOut = checkOut; + this.personas = personas; + } + + +} \ No newline at end of file diff --git a/backend/target/classes/mx/uv/App.class b/backend/target/classes/mx/uv/App.class index eaaa685..c41e3cc 100644 Binary files a/backend/target/classes/mx/uv/App.class and b/backend/target/classes/mx/uv/App.class differ diff --git a/backend/target/classes/mx/uv/Conexion.class b/backend/target/classes/mx/uv/Conexion.class index fe2c46f..d2b87c5 100644 Binary files a/backend/target/classes/mx/uv/Conexion.class and b/backend/target/classes/mx/uv/Conexion.class differ diff --git a/backend/target/classes/mx/uv/DAO.class b/backend/target/classes/mx/uv/DAO.class index 648d8fc..c045081 100644 Binary files a/backend/target/classes/mx/uv/DAO.class and b/backend/target/classes/mx/uv/DAO.class differ diff --git a/backend/target/classes/mx/uv/Pasteles.class b/backend/target/classes/mx/uv/Pasteles.class new file mode 100644 index 0000000..98e471d Binary files /dev/null and b/backend/target/classes/mx/uv/Pasteles.class differ diff --git a/backend/target/classes/mx/uv/Reservaciones.class b/backend/target/classes/mx/uv/Reservaciones.class new file mode 100644 index 0000000..c3f2226 Binary files /dev/null and b/backend/target/classes/mx/uv/Reservaciones.class differ diff --git a/backend/target/classes/mx/uv/Usuario.class b/backend/target/classes/mx/uv/Usuario.class index 1019abb..8187895 100644 Binary files a/backend/target/classes/mx/uv/Usuario.class and b/backend/target/classes/mx/uv/Usuario.class differ diff --git a/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index bf8adff..0000000 --- a/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1 +0,0 @@ -mx\uv\App.class diff --git a/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 93be142..0000000 --- a/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1 +0,0 @@ -C:\Users\natal\OneDrive\Escritorio\ProyectoFinal-DS\BackPastel\backend\src\main\java\mx\uv\App.java diff --git a/backend/target/test-classes/mx/uv/AppTest.class b/backend/target/test-classes/mx/uv/AppTest.class index bd234c7..bb59e9b 100644 Binary files a/backend/target/test-classes/mx/uv/AppTest.class and b/backend/target/test-classes/mx/uv/AppTest.class differ