Implementación CRUD de modulo de Precios de combustible

This commit is contained in:
2026-06-04 20:39:54 +00:00
parent 7741bf06c5
commit 938fed7ffc
7 changed files with 192 additions and 0 deletions

View File

@ -43,6 +43,7 @@ export class FuelTypeController {
res.status(201).json(fuelType);
}
//Actualizar tipo de combustible
async update(
req:Request,
res:Response
@ -56,6 +57,7 @@ export class FuelTypeController {
res.json(fuelType);
}
//Eliminar tipo de combustible
async delete (
req:Request,
res:Response

View File

@ -0,0 +1,64 @@
import { Request, Response } from "express";
import { FuelPriceService } from "./fuelPrices.service";
const fuelPriceService = new FuelPriceService();
export class FuelPriceController {
async getAll(
req:Request,
res:Response
){
const fuelPrices = await fuelPriceService.getAll();
res.json(fuelPrices);
}
async getById(
req:Request,
res:Response
){
const fuelPrice = await fuelPriceService.getById(
req.params.id as string
);
res.json(fuelPrice);
}
async create (
req:Request,
res:Response
){
const fuelPrice = await fuelPriceService.create(
req.body
);
res.status(201).json(fuelPrice);
}
async update(
req:Request,
res:Response
){
const fuelPrice = await fuelPriceService.update(
req.params.id as string,
req.body
)
res.json(fuelPrice);
}
async delete (
req:Request,
res:Response
){
const fuelPrice = await fuelPriceService.delete(
req.params.id as string
)
res.json({
message:"Precio eliminado"}
);
}
}

View File

@ -0,0 +1,12 @@
import mongoose, { mongo, ObjectId } from "mongoose";
export interface IFuelPrince {
fueltypeId:ObjectId;
pricePerGallon:number;
effectiveFrom:Date;
effectiveTo:Date;
active:boolean;
createBy:ObjectId;
}

View File

@ -0,0 +1,43 @@
import mongoose, { mongo } from "mongoose";
const fuelPriceSchema = new mongoose.Schema({
fuelTypeId:{
type:mongoose.Types.ObjectId,
ref:"FuelType",
required:true,
},
pricePerGallon:{
type:Number,
required:true
},
effetiveFrom:{
type:Date,
required:true
},
effetiveTo:{
type:Date,
required:true
},
active:{
type:Boolean,
default:true
},
createBy:{
type:mongoose.Types.ObjectId,
ref:"User",
required:true
}
},
{
timestamps:true
}
);
export default mongoose.model("FuelPrices", fuelPriceSchema)

View File

@ -0,0 +1,20 @@
import { Router } from "express";
import { FuelPriceController } from "./fuelPrices.controller";
import { authMiddleware } from "../auth/auth.middleware";
const fuelPriceRoute = Router();
const controller = new FuelPriceController();
fuelPriceRoute.get("/", authMiddleware, controller.getAll);
fuelPriceRoute.get("/id", authMiddleware, controller.getById);
fuelPriceRoute.post("/", authMiddleware, controller.create);
fuelPriceRoute.put("/id", authMiddleware, controller.update);
fuelPriceRoute.delete("/id", authMiddleware, controller.delete);
export default fuelPriceRoute;

View File

@ -0,0 +1,49 @@
import fuelPricesModel from "./fuelPrices.model";
export class FuelPriceService {
async getAll(){
return await fuelPricesModel
.find()
.populate("fuelTypeId");
}
async getById (
id:string
) {
return await fuelPricesModel
.findById()
.populate("fuelTypeId");
}
async create (
data:any
){
return await fuelPricesModel.create(
data
);
}
async update (
id:string,
data:any
){
return await fuelPricesModel.findByIdAndUpdate(
id,
data,
{
new:true
}
);
}
async delete (
id:string
){
return await fuelPricesModel.findByIdAndDelete(
id
);
}
}