diff --git a/backend/src/main/java/mx/uv/App.java b/backend/src/main/java/mx/uv/App.java index 7624279..2eb85ea 100644 --- a/backend/src/main/java/mx/uv/App.java +++ b/backend/src/main/java/mx/uv/App.java @@ -448,7 +448,47 @@ public class App return responseJson.toString(); }); + post("/frontend/eliminarPedido", (request, response) -> { + response.type("application/json"); + String payload = request.body(); + JsonElement jsonElement = JsonParser.parseString(payload); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + String idPedido = jsonObject.get("datosId").getAsJsonObject().get("idPedido").getAsString(); + + // Lógica para eliminar el pedido usando el ID + boolean eliminado = DAO.eliminarPedido(idPedido); + + JsonObject respuesta = new JsonObject(); + if (eliminado) { + respuesta.addProperty("msj", "Pedido eliminado exitosamente."); + } else { + respuesta.addProperty("msj", "No se encontró ningún pedido con el ID especificado."); + } + + return respuesta.toString(); + }); + post("/frontend/actualizarEstatusPedido", (request, response) -> { + response.type("application/json"); + String payload = request.body(); + JsonElement jsonElement = JsonParser.parseString(payload); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + String idPedido = jsonObject.get("datosId").getAsJsonObject().get("idPedido").getAsString(); + String nuevoEstatus = jsonObject.get("datosId").getAsJsonObject().get("nuevoEstatus").getAsString(); + + // Lógica para actualizar el estatus del pedido usando el ID + boolean actualizado = DAO.actualizarEstatusPedido(idPedido, nuevoEstatus); + + JsonObject respuesta = new JsonObject(); + if (actualizado) { + respuesta.addProperty("msj", "Pedido actualizado exitosamente."); + } else { + respuesta.addProperty("msj", "No se encontró ningún pedido con el ID especificado."); + } + + return respuesta.toString(); + }); + post("/frontend/obtenerPedidosDePastelesAdmin", (request, response) -> { response.type("application/json"); @@ -483,6 +523,96 @@ public class App System.out.println(responseJson); return responseJson.toString(); }); + + post("/frontend/agregarResenia", (request, response) -> { + response.type("application/json"); + String payload = request.body(); + + try { + JsonElement jsonElement = JsonParser.parseString(payload); + JsonObject jsonObject = jsonElement.getAsJsonObject(); + + // Obtener los datos de la reseña del JSON recibido + String nombreUsuario = jsonObject.get("nombreUsuario").getAsString(); + String idPastel = jsonObject.get("idPastel").getAsString(); + String contenido = jsonObject.get("contenido").getAsString(); + int estrellas = jsonObject.get("estrellas").getAsInt(); + + // Crear un nuevo objeto Reseñas y asignar los valores recibidos + Reseñas reseña = new Reseñas(); + reseña.setIdReseña(UUID.randomUUID().toString()); + reseña.setNombreUsuario(nombreUsuario); + reseña.setIdPastel(idPastel); + reseña.setContenido(contenido); + reseña.setEstrellas(estrellas); + + // Puedes realizar acciones adicionales con la información de la reseña + System.out.println("Reseña: " + reseña); + + // Lógica para agregar la reseña en la base de datos + String mensaje = DAO.agregarReseña(reseña); + + // Crear la respuesta + JsonObject respuesta = new JsonObject(); + respuesta.addProperty("msj", mensaje); + + return gson.toJson(respuesta); + } catch (JsonSyntaxException e) { + // Manejar errores de formato JSON + System.out.println("Error en el formato JSON: " + e.getMessage()); + response.status(400); // Bad Request + return gson.toJson("Error en el formato JSON"); + } catch (Exception e) { + // Manejar otros errores + System.out.println("Error al agregar la reseña: " + e.getMessage()); + response.status(500); // Internal Server Error + return gson.toJson("Error al agregar la reseña"); + } + }); + + + post("/frontend/obtenerReseniasPorPastel", (request, response) -> { + response.type("application/json"); + + // Obtener el ID del pastel desde el cuerpo de la solicitud + JsonObject requestBody = new Gson().fromJson(request.body(), JsonObject.class); + String idPastel = requestBody.get("idPastel").getAsString(); + + // Obtener las reseñas para el pastel + List reseñas = DAO.obtenerReseñasPorPastel(idPastel); + + System.out.println("ID del pastel"+idPastel); + + int numeroDeReseñas = reseñas.size(); + + System.out.println("Número de reseñas: " + numeroDeReseñas); + + // Construir un objeto JSON con las reseñas + JsonArray reseñasArray = new JsonArray(); + for (Reseñas reseña : reseñas) { + JsonObject reseñaJson = new JsonObject(); + reseñaJson.addProperty("id_reseña", reseña.getIdReseña()); + reseñaJson.addProperty("nombre_usuario", reseña.getNombreUsuario()); + reseñaJson.addProperty("id_pastel", reseña.getIdPastel()); + reseñaJson.addProperty("contenido", reseña.getContenido()); + reseñaJson.addProperty("estrellas", reseña.getEstrellas()); + reseñasArray.add(reseñaJson); + } + + // Crear el objeto final que contiene todas las reseñas + JsonObject responseJson = new JsonObject(); + responseJson.add("reseñas", reseñasArray); + + System.out.println(responseJson); + return responseJson.toString(); + }); + + + + + + + diff --git a/backend/src/main/java/mx/uv/Conexion.java b/backend/src/main/java/mx/uv/Conexion.java index 806857c..08228ce 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/dbpastel"; + private static String url = "jdbc:mysql://127.0.0.1:3306/dbpastel00"; private static String driverName = "com.mysql.cj.jdbc.Driver"; - private static String username = "root"; - private static String password = "cesarin_11"; + private static String username = "pastel00"; + private static String password = "pastel00"; // variable de conexion private static Connection connection = null; diff --git a/backend/src/main/java/mx/uv/DAO.java b/backend/src/main/java/mx/uv/DAO.java index 5c20b33..5492ceb 100644 --- a/backend/src/main/java/mx/uv/DAO.java +++ b/backend/src/main/java/mx/uv/DAO.java @@ -455,6 +455,166 @@ public static List dameTodosLosPedidosDePasteles2() { return resultado; } +public static String agregarReseña(Reseñas reseña) { + PreparedStatement stm = null; + Connection conn = null; + String mensaje = ""; + + conn = Conexion.getConnection(); + try { + String sql = "INSERT INTO reseñas (nombreUsuario, idPastel, contenido, estrellas) VALUES (?,?,?,?)"; + stm = conn.prepareStatement(sql); + stm.setString(1, reseña.getNombreUsuario()); + stm.setString(2, reseña.getIdPastel()); + stm.setString(3, reseña.getContenido()); + stm.setInt(4, reseña.getEstrellas()); + + if (stm.executeUpdate() > 0) + mensaje = "Reseña agregada con éxito"; + else + mensaje = "No se pudo agregar la reseña"; + + } catch (SQLException e) { + System.out.println("Error al ejecutar la consulta: " + e.getMessage()); + } finally { + if (stm != null) { + try { + stm.close(); + } catch (SQLException e) { + System.out.println("Error al cerrar el statement: " + e.getMessage()); + } + } + if (conn != null) { + try { + conn.close(); + } catch (SQLException e) { + System.out.println("Error al cerrar la conexión: " + e.getMessage()); + } + } + } + return mensaje; +} + +public static List obtenerReseñasPorPastel(String idPastel) { + Connection conn = null; + PreparedStatement pstmt = null; + ResultSet rs = null; + List resultado = new ArrayList<>(); + + try { + conn = Conexion.getConnection(); + String sql = "SELECT r.idReseña, r.nombreUsuario, r.idPastel, r.contenido, r.estrellas " + + "FROM reseñas r " + + "WHERE r.idPastel = ?"; + pstmt = conn.prepareStatement(sql); + pstmt.setString(1, idPastel); + rs = pstmt.executeQuery(); + while (rs.next()) { + Reseñas reseña = new Reseñas( + rs.getString("idReseña"), + rs.getString("nombreUsuario"), + rs.getString("idPastel"), + rs.getString("contenido"), + rs.getInt("estrellas") + ); + resultado.add(reseña); + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + try { + if (rs != null) rs.close(); + if (pstmt != null) pstmt.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + + return resultado; +} + + +public static boolean eliminarPedido(String idPedido) { + System.out.println("ENTRO AL METODO: eliminarPedido"); + Statement stm = null; + Connection conn = null; + + conn = Conexion.getConnection(); + + try { + String sql = "DELETE FROM pedidos WHERE idPedido = '" + idPedido + "'"; + stm = (Statement) conn.createStatement(); + int filasAfectadas = stm.executeUpdate(sql); + + // Verificamos si se eliminó alguna fila + if (filasAfectadas > 0) { + System.out.println("Pedido eliminado exitosamente."); + return true; + } else { + System.out.println("No se encontró ningún pedido con el ID especificado."); + return false; + } + } catch (SQLException e) { + System.out.println("Error al eliminar el pedido: " + e); + } finally { + // Cierre de recursos + if (stm != null) { + try { + stm.close(); + } catch (SQLException e) { + System.out.println(e); + } + } + } + + return false; +} + + +public static boolean actualizarEstatusPedido(String idPedido, String nuevoEstatus) { + System.out.println("ENTRO AL METODO: actualizarEstatusPedido"); + Statement stm = null; + Connection conn = null; + + conn = Conexion.getConnection(); + + try { + String sql = "UPDATE pedidos SET estatus = '" + nuevoEstatus + "' WHERE idPedido = '" + idPedido + "'"; + stm = (Statement) conn.createStatement(); + int filasAfectadas = stm.executeUpdate(sql); + + // Verificamos si se actualizó alguna fila + if (filasAfectadas > 0) { + System.out.println("Pedido actualizado exitosamente."); + return true; + } else { + System.out.println("No se encontró ningún pedido con el ID especificado."); + return false; + } + } catch (SQLException e) { + System.out.println("Error al actualizar el pedido: " + e); + } finally { + // Cierre de recursos + if (stm != null) { + try { + stm.close(); + } catch (SQLException e) { + System.out.println(e); + } + } + try { + conn.close(); + } catch (SQLException e) { + System.out.println(e); + } + } + + return false; +} + + + + } \ No newline at end of file diff --git a/backend/src/main/java/mx/uv/Reseñas.java b/backend/src/main/java/mx/uv/Reseñas.java new file mode 100644 index 0000000..11e98c1 --- /dev/null +++ b/backend/src/main/java/mx/uv/Reseñas.java @@ -0,0 +1,67 @@ +package mx.uv; + +public class Reseñas { + + String idReseña; + String nombreUsuario; + String idPastel; + String contenido; + int estrellas; + + public String getIdReseña() { + return idReseña; + } + + public void setIdReseña(String idReseña) { + this.idReseña = idReseña; + } + + public String getNombreUsuario() { + return nombreUsuario; + } + + public void setNombreUsuario(String nombreUsuario) { + this.nombreUsuario = nombreUsuario; + } + + public String getIdPastel() { + return idPastel; + } + + public void setIdPastel(String idPastel) { + this.idPastel = idPastel; + } + + public String getContenido() { + return contenido; + } + + public void setContenido(String contenido) { + this.contenido = contenido; + } + + public int getEstrellas() { + return estrellas; + } + + public void setEstrellas(int estrellas) { + this.estrellas = estrellas; + } + + public String toString() { + return "Reseñas [idReseña=" + idReseña + ", nombreUsuario=" + nombreUsuario + ", idPastel=" + idPastel + ", contenido=" + contenido + ", estrellas=" + estrellas + "]"; + } + + public Reseñas(){ + + } + + public Reseñas(String idReseña, String nombreUsuario, String idPastel, String contenido, int estrellas) { + this.idReseña = idReseña; + this.nombreUsuario = nombreUsuario; + this.idPastel = idPastel; + this.contenido = contenido; + this.estrellas = estrellas; + } +} + diff --git a/backend/target/classes/mx/uv/App.class b/backend/target/classes/mx/uv/App.class index f5a5024..b7bd879 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 d2b87c5..ab0f611 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 b216164..24ef473 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/Reseñas.class b/backend/target/classes/mx/uv/Reseñas.class new file mode 100644 index 0000000..a115abc Binary files /dev/null and b/backend/target/classes/mx/uv/Reseñas.class differ