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 InformationRoute from "./resources/Informations/InformationRoute.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 LanguageRoute from "./resources/setting/Language/language_routes.js";
|
||||
@ -297,6 +297,8 @@ app.use("/api", VisitRDandPDRoute);
|
||||
|
||||
app.use('/api',AnnouncementRoute)
|
||||
|
||||
app.use('/api/transporter',Transporter)
|
||||
|
||||
|
||||
//config specialty
|
||||
// app.use("/api/config/specialty", SpecialtiesRouter);
|
||||
|
@ -34,7 +34,8 @@ const orderItemSchema = new Schema({
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
processquantity: { //updated quantity
|
||||
processquantity: {
|
||||
//updated quantity
|
||||
type: Number,
|
||||
required: true,
|
||||
default: 1,
|
||||
@ -58,6 +59,7 @@ const invoiceSchema = new mongoose.Schema({
|
||||
},
|
||||
invoiceAmount: { type: Number, required: true },
|
||||
courier_name: { type: String },
|
||||
transpoter_Name: { type: String },
|
||||
courier_tracking_id: { type: String },
|
||||
courierStatus: {
|
||||
type: String,
|
||||
@ -71,7 +73,7 @@ const invoiceSchema = new mongoose.Schema({
|
||||
},
|
||||
});
|
||||
// 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) {
|
||||
this.courierstatus_timeline.processing = new Date();
|
||||
}
|
||||
|
@ -55,7 +55,6 @@ const orderItemSchema = new Schema({
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
const pdOrderSchema = new Schema(
|
||||
{
|
||||
paymentMode: {
|
||||
@ -86,12 +85,17 @@ const pdOrderSchema = new Schema(
|
||||
},
|
||||
status: {
|
||||
type: String,
|
||||
enum: ['new','pending','processing','dispatched', 'cancelled', 'delivered'],
|
||||
default: 'new'
|
||||
},
|
||||
invoices: [
|
||||
{ type: mongoose.Schema.Types.ObjectId, ref: 'Invoice' }
|
||||
enum: [
|
||||
"new",
|
||||
"pending",
|
||||
"processing",
|
||||
"dispatched",
|
||||
"cancelled",
|
||||
"delivered",
|
||||
],
|
||||
default: "new",
|
||||
},
|
||||
invoices: [{ type: mongoose.Schema.Types.ObjectId, ref: "Invoice" }],
|
||||
uniqueId: {
|
||||
type: String,
|
||||
unique: true,
|
||||
@ -116,7 +120,7 @@ const pdOrderSchema = new Schema(
|
||||
);
|
||||
|
||||
// Middleware to generate uniqueId before saving the document
|
||||
pdOrderSchema.pre('save', async function(next) {
|
||||
pdOrderSchema.pre("save", async function (next) {
|
||||
if (this.isNew) {
|
||||
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
|
||||
@ -128,4 +132,3 @@ pdOrderSchema.pre('save', async function(next) {
|
||||
});
|
||||
|
||||
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