Transporter api ready
This commit is contained in:
parent
c279b8d7de
commit
f1ea228329
4
app.js
4
app.js
@ -140,7 +140,7 @@ import orderRoute from "./resources/Orders/orderRoute.js";
|
|||||||
import DepartureRouter from "./resources/Departure/DepartureRoute.js";
|
import DepartureRouter from "./resources/Departure/DepartureRoute.js";
|
||||||
import InformationRoute from "./resources/Informations/InformationRoute.js";
|
import InformationRoute from "./resources/Informations/InformationRoute.js";
|
||||||
import Testimonial from "./resources/Testimonials/TestimonialRoute.js";
|
import Testimonial from "./resources/Testimonials/TestimonialRoute.js";
|
||||||
|
import Transporter from "./resources/setting/Transporter/transporterRoutes.js";
|
||||||
import StateRouter from "./resources/setting/state/state_routes.js";
|
import StateRouter from "./resources/setting/state/state_routes.js";
|
||||||
//
|
//
|
||||||
import LanguageRoute from "./resources/setting/Language/language_routes.js";
|
import LanguageRoute from "./resources/setting/Language/language_routes.js";
|
||||||
@ -297,6 +297,8 @@ app.use("/api", VisitRDandPDRoute);
|
|||||||
|
|
||||||
app.use('/api',AnnouncementRoute)
|
app.use('/api',AnnouncementRoute)
|
||||||
|
|
||||||
|
app.use('/api/transporter',Transporter)
|
||||||
|
|
||||||
|
|
||||||
//config specialty
|
//config specialty
|
||||||
// app.use("/api/config/specialty", SpecialtiesRouter);
|
// app.use("/api/config/specialty", SpecialtiesRouter);
|
||||||
|
@ -34,7 +34,8 @@ const orderItemSchema = new Schema({
|
|||||||
type: Number,
|
type: Number,
|
||||||
required: true,
|
required: true,
|
||||||
},
|
},
|
||||||
processquantity: { //updated quantity
|
processquantity: {
|
||||||
|
//updated quantity
|
||||||
type: Number,
|
type: Number,
|
||||||
required: true,
|
required: true,
|
||||||
default: 1,
|
default: 1,
|
||||||
@ -58,6 +59,7 @@ const invoiceSchema = new mongoose.Schema({
|
|||||||
},
|
},
|
||||||
invoiceAmount: { type: Number, required: true },
|
invoiceAmount: { type: Number, required: true },
|
||||||
courier_name: { type: String },
|
courier_name: { type: String },
|
||||||
|
transpoter_Name: { type: String },
|
||||||
courier_tracking_id: { type: String },
|
courier_tracking_id: { type: String },
|
||||||
courierStatus: {
|
courierStatus: {
|
||||||
type: String,
|
type: String,
|
||||||
@ -71,7 +73,7 @@ const invoiceSchema = new mongoose.Schema({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
// Middleware to set the processing date only when the invoice is created
|
// Middleware to set the processing date only when the invoice is created
|
||||||
invoiceSchema.pre('save', function (next) {
|
invoiceSchema.pre("save", function (next) {
|
||||||
if (this.isNew && !this.courierstatus_timeline.processing) {
|
if (this.isNew && !this.courierstatus_timeline.processing) {
|
||||||
this.courierstatus_timeline.processing = new Date();
|
this.courierstatus_timeline.processing = new Date();
|
||||||
}
|
}
|
||||||
|
@ -55,7 +55,6 @@ const orderItemSchema = new Schema({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const pdOrderSchema = new Schema(
|
const pdOrderSchema = new Schema(
|
||||||
{
|
{
|
||||||
paymentMode: {
|
paymentMode: {
|
||||||
@ -86,12 +85,17 @@ const pdOrderSchema = new Schema(
|
|||||||
},
|
},
|
||||||
status: {
|
status: {
|
||||||
type: String,
|
type: String,
|
||||||
enum: ['new','pending','processing','dispatched', 'cancelled', 'delivered'],
|
enum: [
|
||||||
default: 'new'
|
"new",
|
||||||
},
|
"pending",
|
||||||
invoices: [
|
"processing",
|
||||||
{ type: mongoose.Schema.Types.ObjectId, ref: 'Invoice' }
|
"dispatched",
|
||||||
|
"cancelled",
|
||||||
|
"delivered",
|
||||||
],
|
],
|
||||||
|
default: "new",
|
||||||
|
},
|
||||||
|
invoices: [{ type: mongoose.Schema.Types.ObjectId, ref: "Invoice" }],
|
||||||
uniqueId: {
|
uniqueId: {
|
||||||
type: String,
|
type: String,
|
||||||
unique: true,
|
unique: true,
|
||||||
@ -116,7 +120,7 @@ const pdOrderSchema = new Schema(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Middleware to generate uniqueId before saving the document
|
// Middleware to generate uniqueId before saving the document
|
||||||
pdOrderSchema.pre('save', async function(next) {
|
pdOrderSchema.pre("save", async function (next) {
|
||||||
if (this.isNew) {
|
if (this.isNew) {
|
||||||
const year = new Date().getFullYear().toString().slice(-2); // Get the last 2 digits of the year
|
const year = new Date().getFullYear().toString().slice(-2); // Get the last 2 digits of the year
|
||||||
const orderItemCount = this.orderItem.length; // Count the number of order items
|
const orderItemCount = this.orderItem.length; // Count the number of order items
|
||||||
@ -128,4 +132,3 @@ pdOrderSchema.pre('save', async function(next) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
export const PdOrder = mongoose.model("PdOrder", pdOrderSchema);
|
export const PdOrder = mongoose.model("PdOrder", pdOrderSchema);
|
||||||
|
|
||||||
|
86
resources/setting/Transporter/transporterController.js
Normal file
86
resources/setting/Transporter/transporterController.js
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
import { Transporter } from "./transporterModal.js";
|
||||||
|
|
||||||
|
// Create a new transporter
|
||||||
|
export const createTransporter = async (req, res) => {
|
||||||
|
try {
|
||||||
|
const { transporterName } = req.body;
|
||||||
|
|
||||||
|
const newTransporter = await Transporter.create({ transporterName });
|
||||||
|
res.status(201).json({
|
||||||
|
message: "Transporter added successfully",
|
||||||
|
transporter: newTransporter,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({ message: "Error adding transporter", error });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Read all transporters
|
||||||
|
export const getTransporters = async (req, res) => {
|
||||||
|
try {
|
||||||
|
const transporters = await Transporter.find();
|
||||||
|
res.status(200).json({ transporters });
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({ message: "Error fetching transporters", error });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Update transporter by ID
|
||||||
|
export const updateTransporter = async (req, res) => {
|
||||||
|
try {
|
||||||
|
const { transporterName } = req.body;
|
||||||
|
const transporterId = req.params.id;
|
||||||
|
|
||||||
|
const updatedTransporter = await Transporter.findByIdAndUpdate(
|
||||||
|
transporterId,
|
||||||
|
{ transporterName },
|
||||||
|
{ new: true, runValidators: true }
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!updatedTransporter) {
|
||||||
|
return res.status(404).json({ message: "Transporter not found" });
|
||||||
|
}
|
||||||
|
|
||||||
|
res.status(200).json({
|
||||||
|
message: "Transporter updated successfully",
|
||||||
|
transporter: updatedTransporter,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({ message: "Error updating transporter", error });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Delete transporter by ID
|
||||||
|
export const deleteTransporter = async (req, res) => {
|
||||||
|
try {
|
||||||
|
const transporterId = req.params.id;
|
||||||
|
|
||||||
|
const deletedTransporter = await Transporter.findByIdAndDelete(
|
||||||
|
transporterId
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!deletedTransporter) {
|
||||||
|
return res.status(404).json({ message: "Transporter not found" });
|
||||||
|
}
|
||||||
|
|
||||||
|
res.status(200).json({ message: "Transporter deleted successfully" });
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({ message: "Error deleting transporter", error });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getTransporterById = async (req, res) => {
|
||||||
|
try {
|
||||||
|
const transporterId = req.params.id;
|
||||||
|
|
||||||
|
const transporter = await Transporter.findById(transporterId);
|
||||||
|
|
||||||
|
if (!transporter) {
|
||||||
|
return res.status(404).json({ message: "Transporter not found" });
|
||||||
|
}
|
||||||
|
|
||||||
|
res.status(200).json({ transporter });
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({ message: "Error fetching transporter", error });
|
||||||
|
}
|
||||||
|
};
|
13
resources/setting/Transporter/transporterModal.js
Normal file
13
resources/setting/Transporter/transporterModal.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import mongoose from "mongoose";
|
||||||
|
|
||||||
|
const transporterSchema = new mongoose.Schema(
|
||||||
|
{
|
||||||
|
transporterName: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
trim: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ timestamps: true }
|
||||||
|
); // This automatically adds createdAt and updatedAt fields
|
||||||
|
export const Transporter = mongoose.model("Transporter", transporterSchema);
|
31
resources/setting/Transporter/transporterRoutes.js
Normal file
31
resources/setting/Transporter/transporterRoutes.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
import express from "express";
|
||||||
|
import {
|
||||||
|
authorizeRoles,
|
||||||
|
isAuthenticatedUser,
|
||||||
|
} from "../../../middlewares/auth.js";
|
||||||
|
import {
|
||||||
|
createTransporter,
|
||||||
|
deleteTransporter,
|
||||||
|
getTransporters,
|
||||||
|
updateTransporter,
|
||||||
|
} from "./transporterController.js";
|
||||||
|
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router
|
||||||
|
.route("/add")
|
||||||
|
.post(isAuthenticatedUser, authorizeRoles("admin"), createTransporter);
|
||||||
|
|
||||||
|
router
|
||||||
|
.route("/edit/:id")
|
||||||
|
.patch(isAuthenticatedUser, authorizeRoles("admin"), updateTransporter);
|
||||||
|
|
||||||
|
router
|
||||||
|
.route("/delete/:id")
|
||||||
|
.delete(isAuthenticatedUser, authorizeRoles("admin"), deleteTransporter);
|
||||||
|
|
||||||
|
router
|
||||||
|
.route("/get")
|
||||||
|
.get(isAuthenticatedUser, authorizeRoles("admin"), getTransporters);
|
||||||
|
|
||||||
|
export default router;
|
Loading…
Reference in New Issue
Block a user