add currency functionality
This commit is contained in:
parent
56438a92aa
commit
fe7c3f8dd9
3
app.js
3
app.js
@ -146,6 +146,7 @@ import loginImageRoute from "./resources/LoginImage/LoginImageRoute.js";
|
|||||||
import shopImageRoute from "./resources/ShopPageImage/ShopPageImageRoute.js";
|
import shopImageRoute from "./resources/ShopPageImage/ShopPageImageRoute.js";
|
||||||
import ContentRoute from "./resources/Content/ContentRoutes.js";
|
import ContentRoute from "./resources/Content/ContentRoutes.js";
|
||||||
import UserAddressRoute from "./resources/userAddress/useAddressRoute.js";
|
import UserAddressRoute from "./resources/userAddress/useAddressRoute.js";
|
||||||
|
import CurrencyRoute from "./resources/Currency/CurrencyRoute.js";
|
||||||
//business_Type
|
//business_Type
|
||||||
// import Business_TypeRoute from "./resources/setting/Business_Type/Business_routes.js";
|
// import Business_TypeRoute from "./resources/setting/Business_Type/Business_routes.js";
|
||||||
|
|
||||||
@ -211,6 +212,8 @@ app.use("/api/purpose", PurposeRoute);
|
|||||||
app.use("/api/business", orderRoute);
|
app.use("/api/business", orderRoute);
|
||||||
//Tax
|
//Tax
|
||||||
app.use("/api/tax", TaxRouter);
|
app.use("/api/tax", TaxRouter);
|
||||||
|
//Currency Route
|
||||||
|
app.use("/api/currency", CurrencyRoute);
|
||||||
//config
|
//config
|
||||||
app.use("/api/config", ConfigRouter);
|
app.use("/api/config", ConfigRouter);
|
||||||
|
|
||||||
|
159
resources/Currency/CurrencyController.js
Normal file
159
resources/Currency/CurrencyController.js
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
import mongoose from "mongoose";
|
||||||
|
import { CurrencyModel } from "./CurrencyModel.js";
|
||||||
|
|
||||||
|
// Add new Currency
|
||||||
|
export const createnew = async (req, res) => {
|
||||||
|
const { CurrencyName, CurrencySymbol } = req.body;
|
||||||
|
|
||||||
|
// console.log(CurrencyName, CurrencySymbol);
|
||||||
|
if (!CurrencyName || !CurrencySymbol) {
|
||||||
|
return res
|
||||||
|
.status(400)
|
||||||
|
.json({ message: "Currency name & Currency symbol are required" });
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Check if the currency already exists
|
||||||
|
const normalizedCurrencyName = CurrencyName.trim().toUpperCase();
|
||||||
|
// console.log(normalizedCurrencyName);
|
||||||
|
const trimmedCurrencySymbol = CurrencySymbol.trim();
|
||||||
|
// Check if the currency already exists
|
||||||
|
const existingCurrency = await CurrencyModel.findOne({
|
||||||
|
CurrencyName: normalizedCurrencyName,
|
||||||
|
});
|
||||||
|
if (existingCurrency) {
|
||||||
|
return res
|
||||||
|
.status(400)
|
||||||
|
.json({ message: " This Currency Name already exists" });
|
||||||
|
}
|
||||||
|
// console.log("existingCurrency", existingCurrency);
|
||||||
|
|
||||||
|
// console.log(req.user?._id);
|
||||||
|
// Create new currency
|
||||||
|
// const newCurrency = new CurrencyModel({
|
||||||
|
// CurrencyName: normalizedCurrencyName,
|
||||||
|
// CurrencySymbol: trimmedCurrencySymbol,
|
||||||
|
// addedBy: req.user?._id,
|
||||||
|
// });
|
||||||
|
// console.log("newCurrency", newCurrency);
|
||||||
|
|
||||||
|
const newCurrency = await CurrencyModel.create({
|
||||||
|
CurrencyName: normalizedCurrencyName,
|
||||||
|
CurrencySymbol: trimmedCurrencySymbol,
|
||||||
|
addedBy: req.user?._id,
|
||||||
|
});
|
||||||
|
// await newCurrency.save();
|
||||||
|
|
||||||
|
return res.status(201).json({
|
||||||
|
message: "Currency created successfully",
|
||||||
|
currency: newCurrency,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
if (error.code === 11000) {
|
||||||
|
return res.status(400).json({ message: "Currency already exists" });
|
||||||
|
}
|
||||||
|
res.status(500).json({
|
||||||
|
message: error.message
|
||||||
|
? error.message
|
||||||
|
: "An error occurred while creating the currency",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const getAllcarrency = async (req, res) => {
|
||||||
|
try {
|
||||||
|
const currency = await CurrencyModel.find().sort({
|
||||||
|
createdAt: -1,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!currency) {
|
||||||
|
return res.status(404).json({ message: "No currencies found" });
|
||||||
|
}
|
||||||
|
|
||||||
|
res.status(200).json({ success: true, currency });
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({
|
||||||
|
success: false,
|
||||||
|
message: error.message ? error.message : "Something went wrong",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const updatecarrency = async (req, res) => {
|
||||||
|
const { CurrencyName, CurrencySymbol } = req.body;
|
||||||
|
const currencyId = req.params.id;
|
||||||
|
|
||||||
|
if (!CurrencyName?.trim() || !CurrencySymbol?.trim()) {
|
||||||
|
return res
|
||||||
|
.status(400)
|
||||||
|
.json({ message: "Currency name & Currency symbol are required" });
|
||||||
|
}
|
||||||
|
|
||||||
|
const normalizedCurrencyName = CurrencyName.trim().toUpperCase();
|
||||||
|
const trimmedCurrencySymbol = CurrencySymbol.trim();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Check if the currency with the same name already exists
|
||||||
|
const existingCurrency = await CurrencyModel.findOne({
|
||||||
|
CurrencyName: normalizedCurrencyName,
|
||||||
|
_id: { $ne: currencyId }, // Exclude the current currency being updated
|
||||||
|
});
|
||||||
|
|
||||||
|
if (existingCurrency) {
|
||||||
|
return res.status(400).json({ message: "Currency name already exists" });
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update currency
|
||||||
|
const updatedCurrency = await CurrencyModel.findByIdAndUpdate(
|
||||||
|
currencyId,
|
||||||
|
{
|
||||||
|
CurrencyName: normalizedCurrencyName,
|
||||||
|
CurrencySymbol: trimmedCurrencySymbol,
|
||||||
|
},
|
||||||
|
{ new: true }
|
||||||
|
); // To return the updated document
|
||||||
|
|
||||||
|
if (!updatedCurrency) {
|
||||||
|
return res.status(404).json({ message: "Currency not found" });
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.status(200).json({
|
||||||
|
message: "Currency updated successfully",
|
||||||
|
currency: updatedCurrency,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).json({
|
||||||
|
message: error.message
|
||||||
|
? error.message
|
||||||
|
: "An error occurred while updating the currency",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
export const deletecarrency = async (req, res) => {
|
||||||
|
const currencyId = req.params.id;
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Check if the currency exists
|
||||||
|
const currency = await CurrencyModel.findById(currencyId);
|
||||||
|
|
||||||
|
if (!currency) {
|
||||||
|
return res.status(404).json({ message: "Currency not found" });
|
||||||
|
}
|
||||||
|
|
||||||
|
// Perform the deletion
|
||||||
|
await CurrencyModel.findByIdAndDelete(currencyId);
|
||||||
|
|
||||||
|
return res.status(200).json({
|
||||||
|
message: "Currency deleted successfully",
|
||||||
|
currency: currency,
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
// console.error("Error deleting currency:", error); // Log for debugging
|
||||||
|
res.status(500).json({
|
||||||
|
message: error.message
|
||||||
|
? error.message
|
||||||
|
: "An error occurred while deleting the currency",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
22
resources/Currency/CurrencyModel.js
Normal file
22
resources/Currency/CurrencyModel.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
import mongoose from "mongoose";
|
||||||
|
|
||||||
|
const CurrencySchema = new mongoose.Schema(
|
||||||
|
{
|
||||||
|
CurrencyName: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
CurrencySymbol: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
trim: true,
|
||||||
|
},
|
||||||
|
addedBy: {
|
||||||
|
type: mongoose.Schema.Types.ObjectId,
|
||||||
|
ref: "User",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{ timestamps: true }
|
||||||
|
);
|
||||||
|
|
||||||
|
export const CurrencyModel = mongoose.model("Currency", CurrencySchema);
|
39
resources/Currency/CurrencyRoute.js
Normal file
39
resources/Currency/CurrencyRoute.js
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import express from "express";
|
||||||
|
|
||||||
|
import {
|
||||||
|
createnew,
|
||||||
|
getAllcarrency,
|
||||||
|
updatecarrency,
|
||||||
|
deletecarrency,
|
||||||
|
} from "./CurrencyController.js";
|
||||||
|
import { isAuthenticatedUser, authorizeRoles } from "../../middlewares/auth.js";
|
||||||
|
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
|
router
|
||||||
|
.route("/new")
|
||||||
|
.post(isAuthenticatedUser, authorizeRoles("admin", "Employee"), createnew);
|
||||||
|
router.route("/getall").get(getAllcarrency);
|
||||||
|
// router.route("/getoneblog/:id").get(getOneBlog);
|
||||||
|
router
|
||||||
|
.route("/:id")
|
||||||
|
.delete(
|
||||||
|
isAuthenticatedUser,
|
||||||
|
authorizeRoles("admin", "Employee"),
|
||||||
|
deletecarrency
|
||||||
|
);
|
||||||
|
// router
|
||||||
|
// .route("/deleteImage/jatinMor/Blog/:public_id")
|
||||||
|
// .delete(
|
||||||
|
// isAuthenticatedUser,
|
||||||
|
// authorizeRoles("admin", "Employee"),
|
||||||
|
// deleteImageFromCloudinary
|
||||||
|
// );
|
||||||
|
router
|
||||||
|
.route("/:id")
|
||||||
|
.patch(
|
||||||
|
isAuthenticatedUser,
|
||||||
|
authorizeRoles("admin", "Employee"),
|
||||||
|
updatecarrency
|
||||||
|
);
|
||||||
|
export default router;
|
Loading…
Reference in New Issue
Block a user