diff --git a/backend/src/app.ts b/backend/src/app.ts index 2dab59e..ff5326c 100644 --- a/backend/src/app.ts +++ b/backend/src/app.ts @@ -8,6 +8,7 @@ import fuelRoutes from "./modules/fuel-types/fuelType.routes"; import fuelPriceRoute from "./modules/fuel_prices/fuelPrices.routes"; import fuelPumpRouter from "./modules/fuel_pumps/fuelPump.routes"; import vehicleConfigRouter from "./modules/vehicles-config/vehiclesConfigs.routes"; +import vAssigRouter from "./modules/vehicle-assignments/vehicleassig.routes"; @@ -23,6 +24,7 @@ app.use("/api/auth", authRouter); app.use("/api/fuelprice", fuelPriceRoute); app.use("/api/pump", fuelPumpRouter); app.use("/api/vconfig", vehicleConfigRouter); +app.use("/api/vAssig", vAssigRouter); app.use(express.urlencoded({ diff --git a/backend/src/modules/vehicle-assignments/vehicleassig.controller.ts b/backend/src/modules/vehicle-assignments/vehicleassig.controller.ts new file mode 100644 index 0000000..5370c39 --- /dev/null +++ b/backend/src/modules/vehicle-assignments/vehicleassig.controller.ts @@ -0,0 +1,66 @@ +import {Request, Response } from "express"; + +import { VehicleAssigService } from "./vehicleassig.service"; + +const vehicleAssigService = new VehicleAssigService(); + +export class VehicleAssigController { + + async getAll( + req:Request, + res:Response + ){ + + const vAssigs = await vehicleAssigService.getAll(); + + res.json(vAssigs); + } + + async getById( + req:Request, + res:Response + ){ + + const vAssig = await vehicleAssigService.getById( + req.params.id as string + ); + + res.json(vAssig); + } + + async create( + req:Request, + res:Response + ){ + const vAssig = await vehicleAssigService.create( + req.body + ); + + res.status(201).json(vAssig); + } + + async update( + req:Request, + res:Response + ){ + const vAssig = await vehicleAssigService.update( + req.params.id as string, + req.body + ); + + res.json(vAssig); + } + + async delete ( + req:Request, + res:Response + ){ + const vAssig = await vehicleAssigService.delete( + req.params.id as string + ) + + res.json({ + message:"Assignación eliminada" + }); + } +} \ No newline at end of file diff --git a/backend/src/modules/vehicle-assignments/vehicleassig.interface.ts b/backend/src/modules/vehicle-assignments/vehicleassig.interface.ts new file mode 100644 index 0000000..25fa63c --- /dev/null +++ b/backend/src/modules/vehicle-assignments/vehicleassig.interface.ts @@ -0,0 +1,11 @@ +import { ObjectId } from "mongoose"; + +export interface IVehicleAssig { + + vehicleNumber:number; + exployeeId:number; + assigmentDate:Date; + unassigmentDate:Date; + active:boolean + createdBy:ObjectId; +} \ No newline at end of file diff --git a/backend/src/modules/vehicle-assignments/vehicleassig.model.ts b/backend/src/modules/vehicle-assignments/vehicleassig.model.ts new file mode 100644 index 0000000..f58f67f --- /dev/null +++ b/backend/src/modules/vehicle-assignments/vehicleassig.model.ts @@ -0,0 +1,41 @@ +import mongoose, { mongo } from "mongoose"; + +const vehicleAssigSchema = new mongoose.Schema({ + + vehicleNumber:{ + type:Number, + required:true + }, + + exployeeId:{ + type:Number, + required:true + }, + + assigmentDate:{ + type:Date, + required:true + }, + + unassigmentDate:{ + type:Date + }, + + active:{ + type:Boolean, + default:true + }, + + createdBy:{ + type:mongoose.Schema.Types.ObjectId, + ref:"User", + required:true + } +}, + +{ + timestamps:true +} +); + +export default mongoose.model("VehicleAssig", vehicleAssigSchema) \ No newline at end of file diff --git a/backend/src/modules/vehicle-assignments/vehicleassig.routes.ts b/backend/src/modules/vehicle-assignments/vehicleassig.routes.ts new file mode 100644 index 0000000..88d3902 --- /dev/null +++ b/backend/src/modules/vehicle-assignments/vehicleassig.routes.ts @@ -0,0 +1,18 @@ +import { Router } from "express"; +import { VehicleAssigController } from "./vehicleassig.controller"; +import { authMiddleware } from "../auth/auth.middleware"; + +const vAssigRouter = Router(); +const controller = new VehicleAssigController(); + +vAssigRouter.get("/", authMiddleware, controller.getAll) + +vAssigRouter.get("/id", authMiddleware, controller.getById); + +vAssigRouter.post("/", authMiddleware, controller.create); + +vAssigRouter.put("/id", authMiddleware, controller.update); + +vAssigRouter.delete("/id", authMiddleware, controller.delete); + +export default vAssigRouter; diff --git a/backend/src/modules/vehicle-assignments/vehicleassig.service.ts b/backend/src/modules/vehicle-assignments/vehicleassig.service.ts new file mode 100644 index 0000000..25cc510 --- /dev/null +++ b/backend/src/modules/vehicle-assignments/vehicleassig.service.ts @@ -0,0 +1,55 @@ +import vehicleassigModel from "./vehicleassig.model"; + +export class VehicleAssigService { + + async getAll() + { + return await vehicleassigModel + .find() + .populate( + "createdBy", + "userName" + ); + } + + async getById( + id:string + ){ + return await vehicleassigModel + .findById(id) + .populate( + "createdBy", + "userName" + ); + } + + async create( + data:any + ){ + + return await vehicleassigModel.create( + data + ); + } + + async update( + id:string, + data:any + ){ + return await vehicleassigModel.findByIdAndUpdate( + id, + data, + { + new:true + } + ); + } + + async delete( + id:string + ){ + return await vehicleassigModel.findByIdAndDelete( + id + ); + } +} \ No newline at end of file