129 lines
3.5 KiB
JavaScript
129 lines
3.5 KiB
JavaScript
import mongoose from "mongoose";
|
|
|
|
import { UserAddressModel } from "./userAddressModel.js";
|
|
|
|
// Add new Category
|
|
export const addUserAddress = async (req, res) => {
|
|
if (!req?.user) return res.status(400).json({ message: "please login !" });
|
|
try {
|
|
// Get the user address data from the request body
|
|
const { userType, name, email, phno, addressess } = req.body;
|
|
|
|
// Create a new UserAddressModel instance with the data
|
|
const userAddress = new UserAddressModel({
|
|
userType,
|
|
name,
|
|
email,
|
|
phno,
|
|
addressess,
|
|
addedBy: req.user._id,
|
|
});
|
|
|
|
// Save the user address data to the database
|
|
await userAddress.save();
|
|
|
|
res.status(201).json({
|
|
success: true,
|
|
userAddress,
|
|
message: "User address data saved successfully",
|
|
});
|
|
} catch (error) {
|
|
res.status(500).json({
|
|
success: false,
|
|
message: error.message ? error.message : "Something went wrong",
|
|
});
|
|
}
|
|
};
|
|
|
|
export const getUserAddress = async (req, res) => {
|
|
try {
|
|
if (!req?.user) return res.status(400).json({ message: "please login !" });
|
|
const userAddress = await UserAddressModel.find({
|
|
addedBy: req.user._id,
|
|
}).sort({
|
|
createdAt: -1,
|
|
});
|
|
|
|
if (userAddress) {
|
|
return res.status(200).json({ success: true, userAddress });
|
|
}
|
|
} catch (error) {
|
|
res.status(500).json({
|
|
success: false,
|
|
message: error.message ? error.message : "Something went wrong",
|
|
});
|
|
}
|
|
};
|
|
|
|
// Get single user addess
|
|
export const getOneAddress = async (req, res) => {
|
|
try {
|
|
const address = await UserAddressModel.findById(req.params._id);
|
|
|
|
if (address) {
|
|
return res.status(200).json({
|
|
success: true,
|
|
address,
|
|
});
|
|
}
|
|
} catch (error) {
|
|
res.status(500).json({
|
|
success: false,
|
|
msg: error.message ? error.message : "Something went wrong!",
|
|
});
|
|
}
|
|
};
|
|
|
|
export const updateAddress = async (req, res) => {
|
|
try {
|
|
if (!req?.user) return res.status(400).json({ message: "please login !" });
|
|
const { _id } = req.params;
|
|
|
|
const { userType, name, email, phno, addressess } = req.body;
|
|
|
|
if (!mongoose.Types.ObjectId.isValid(_id)) {
|
|
return res.status(404).json({ error: "Can not find the document " });
|
|
}
|
|
|
|
// Use findOneAndUpdate to update the document
|
|
const update = await UserAddressModel.findOneAndUpdate(
|
|
{ _id: _id },
|
|
{ userType, name, email, phno, addressess }, // Provide the user address
|
|
{ new: true } // To return the updated document
|
|
);
|
|
|
|
if (update) {
|
|
return res.status(200).json({ success: true, update });
|
|
}
|
|
} catch (error) {
|
|
res.status(500).json({
|
|
success: false,
|
|
message: error.message ? error.message : "Something went wrong",
|
|
});
|
|
}
|
|
};
|
|
|
|
export const deleteUserAddress = async (req, res) => {
|
|
try {
|
|
if (!req?.user) return res.status(400).json({ message: "please login !" });
|
|
const { _id } = req.params;
|
|
|
|
if (!mongoose.Types.ObjectId.isValid(_id)) {
|
|
return res.status(404).json({ error: "Can not find the document " });
|
|
}
|
|
|
|
const deleteAddress = await UserAddressModel.findOneAndDelete({ _id: _id });
|
|
if (!deleteAddress) {
|
|
return res.status(404).json({
|
|
error: "Can not find the document with the provided id to delete ",
|
|
});
|
|
}
|
|
res.status(200).json({ success: true, deleteAddress });
|
|
} catch (error) {
|
|
res.status(500).json({
|
|
success: false,
|
|
message: error.message ? error.message : "Something went wrong",
|
|
});
|
|
}
|
|
};
|