From 913b02f549ea505a67a6b48ddb9565848e367b52 Mon Sep 17 00:00:00 2001 From: karol Date: Thu, 2 Jul 2026 21:34:29 +0000 Subject: [PATCH] =?UTF-8?q?Actualizar=20CRUD=20m=C3=B3dulo=20bombas=20de?= =?UTF-8?q?=20combustible?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/fuel_pumps/fuelPump.controller.ts | 103 ++++++++++++++---- .../modules/fuel_pumps/fuelPump.interface.ts | 12 +- .../src/modules/fuel_pumps/fuelPump.model.ts | 2 +- .../src/modules/fuel_pumps/fuelPump.routes.ts | 6 +- .../modules/fuel_pumps/fuelPump.service.ts | 18 +-- 5 files changed, 102 insertions(+), 39 deletions(-) diff --git a/backend/src/modules/fuel_pumps/fuelPump.controller.ts b/backend/src/modules/fuel_pumps/fuelPump.controller.ts index eacd00a..459f74e 100644 --- a/backend/src/modules/fuel_pumps/fuelPump.controller.ts +++ b/backend/src/modules/fuel_pumps/fuelPump.controller.ts @@ -9,55 +9,114 @@ export class FuelPumpController { req:Request, res:Response ){ - const fuelPumps = await fuelPumpService.getAll(); + try{ + const fuelPumps = await fuelPumpService.getAll(); - res.json(fuelPumps); + res.json(fuelPumps); + }catch(error){ + res.status(500).json({ + message:"Error al obtener bomba de combustible", + error + }) + + } } async getById( req:Request, res:Response ){ - const fuelPump = await fuelPumpService.getById( - req.params.id as string - ); - - res.json(fuelPump) + try{ + const fuelPump = await fuelPumpService.getById( + req.params.id as string + ); + + if(!fuelPump){ + return res.status(404).json({ + message:"Bomba combustible no encontrada" + }); + } + + res.json(fuelPump) + + }catch(error){ + res.status(500).json({ + message:"Error al obtener bomba de combustible", + error + }); + } } async create( req:Request, res:Response ){ - const fuelPump = await fuelPumpService.create( - req.body - ); + try{ + const fuelPump = await fuelPumpService.create( + req.body + ); - res.status(201).json(fuelPump); + res.status(201).json(fuelPump); + + }catch(error){ + res.status(500).json({ + message:"Error al crear bomba de combustible", + error + }); + + } } async update( req:Request, res:Response ){ - const fuelPump = await fuelPumpService.update( - req.params.id as string, - req.body - ); - res.json(fuelPump); + try{ + const fuelPump = await fuelPumpService.update( + req.params.id as string, + req.body + ); + + if(!fuelPump){ + return res.status(404).json({ + message:"Bomba de combustible no encontrada" + }) + } + + res.status(200).json(fuelPump); + }catch(error){ + res.status(500).json({ + message:"Error al actualizar bomba de combustible", + error + }) + } } async delete( req:Request, res:Response ){ - const fuelPump = await fuelPumpService.delete( - req.params.id as string - ) + try{ + const fuelPump = await fuelPumpService.delete( + req.params.id as string + ); - res.json({ - message:"Bomba de combustible eliminada" - }); + if(!fuelPump){ + return res.status(404).json({ + message:"Bomba de combustible no encontrada" + }) + } + + res.json({ + message:"Bomba de combustible eliminada correctamente" + }); + + }catch(error){ + res.status(500).json({ + message:"Error al eliminar bomba de combustible", + error + }); + } } } \ No newline at end of file diff --git a/backend/src/modules/fuel_pumps/fuelPump.interface.ts b/backend/src/modules/fuel_pumps/fuelPump.interface.ts index 312f6e8..eb1d237 100644 --- a/backend/src/modules/fuel_pumps/fuelPump.interface.ts +++ b/backend/src/modules/fuel_pumps/fuelPump.interface.ts @@ -1,8 +1,10 @@ -import { ObjectId } from "mongoose"; +import { Types } from "mongoose"; -export interface IFuelPumps { +export interface IFuelPump { - pumpName:string; - fuelTypeId:ObjectId; - active:boolean; + pumpName: string; + + fuelTypeId: Types.ObjectId; + + active: boolean; } \ No newline at end of file diff --git a/backend/src/modules/fuel_pumps/fuelPump.model.ts b/backend/src/modules/fuel_pumps/fuelPump.model.ts index 0d40f87..cc527df 100644 --- a/backend/src/modules/fuel_pumps/fuelPump.model.ts +++ b/backend/src/modules/fuel_pumps/fuelPump.model.ts @@ -9,7 +9,7 @@ const fuelPumpSchema = new mongoose.Schema({ }, fuelTypeId:{ - type:mongoose.Types.ObjectId, + type:mongoose.Schema.Types.ObjectId, ref:"FuelType", required:true }, diff --git a/backend/src/modules/fuel_pumps/fuelPump.routes.ts b/backend/src/modules/fuel_pumps/fuelPump.routes.ts index 4185e92..090d0d4 100644 --- a/backend/src/modules/fuel_pumps/fuelPump.routes.ts +++ b/backend/src/modules/fuel_pumps/fuelPump.routes.ts @@ -8,12 +8,12 @@ const controller = new FuelPumpController(); fuelPumpRouter.get("/", authMiddleware, controller.getAll); -fuelPumpRouter.get("/id", authMiddleware, controller.getById); +fuelPumpRouter.get("/:id", authMiddleware, controller.getById); fuelPumpRouter.post("/", authMiddleware, controller.create); -fuelPumpRouter.put("/id", authMiddleware, controller.update); +fuelPumpRouter.put("/:id", authMiddleware, controller.update); -fuelPumpRouter.delete("/id", authMiddleware, controller.delete); +fuelPumpRouter.delete("/:id", authMiddleware, controller.delete); export default fuelPumpRouter; \ No newline at end of file diff --git a/backend/src/modules/fuel_pumps/fuelPump.service.ts b/backend/src/modules/fuel_pumps/fuelPump.service.ts index 04fcc23..814b8ea 100644 --- a/backend/src/modules/fuel_pumps/fuelPump.service.ts +++ b/backend/src/modules/fuel_pumps/fuelPump.service.ts @@ -1,21 +1,24 @@ -import fuelPumpModel from "./fuelPump.model" +import fuelPumpModel from "./fuelPump.model"; +import { IFuelPump } from "./fuelPump.interface"; export class FuelPumpService { async getAll() { - return await fuelPumpModel.find(); + return await fuelPumpModel + .find() + .populate("fuelTypeId"); } async getById( id:string ){ - return await fuelPumpModel.findById( - id - ); + return await fuelPumpModel. + findById(id) + .populate("fuelTypeId") } async create( - data:any + data:IFuelPump ){ return await fuelPumpModel.create( data @@ -24,7 +27,7 @@ export class FuelPumpService { async update( id:string, - data:any + data:Partial ){ return await fuelPumpModel.findByIdAndUpdate( id, @@ -43,4 +46,3 @@ export class FuelPumpService { ); } } -