api/resources/userAddress/userAddressController.js
2023-11-24 15:45:12 +05:30

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",
});
}
};