api/resources/ShippingAddresses/ShippingAddressController.js
2023-11-23 13:33:12 +05:30

299 lines
7.9 KiB
JavaScript

import { shippingAddress } from "./ShippingAddressModel.js";
import { generate } from "generate-password";
export const AddshippingAddress = async (req, res) => {
try {
const {
first_Name,
last_Name,
phone_Number,
street,
city,
state,
postalCode,
country,
} = req.body;
console.log("hiiii");
switch (true) {
//validation
case !first_Name: {
return res.status(404).json({ msg: "please provide first_Name" });
}
case !last_Name: {
return res.status(404).json({ msg: "please provide last_Name" });
}
case !phone_Number: {
return res.status(404).json({ msg: "please provide phone_Number" });
}
case !street: {
return res.status(404).json({ msg: "please provide street" });
}
case !city: {
return res.status(404).json({ msg: "please provide city" });
}
case !state: {
return res.status(404).json({ msg: "please provide state" });
}
case !postalCode: {
return res.status(404).json({ msg: "please provide postalCode" });
}
case !country: {
return res.status(404).json({ msg: "please provide country" });
}
}
// let isUnique = false;
// let Machine_ID = generate({
// length: 8,
// numbers: true,
// lowercase: false,
// uppercase: false,
// });
// let Tablet_ID = generate({
// length: 8,
// numbers: true,
// lowercase: false,
// uppercase: false,
// });
// while (!isUnique) {
// const unqmachine = await shippingAddress.findOne({ Machine_ID });
// if (!unqmachine) {
// isUnique = true;
// console.log(unqmachine);
// } else {
// Machine_ID = generate({
// length: 8,
// numbers: true,
// lowercase: false,
// uppercase: false,
// });
// Tablet_ID = generate({
// length: 8,
// numbers: true,
// lowercase: false,
// uppercase: false,
// });
// }
// }
req.body.user = req.user._id;
// req.body.Machine_ID = Machine_ID;
// req.body.Tablet_ID = Tablet_ID;
const address = await shippingAddress.create(req.body);
res.status(201).json({
success: true,
address,
message: "shipping Address Added",
});
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went Wrong",
});
}
};
export const getAllmachine = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
// console.log(req?.user)
const machine = await shippingAddress
.find()
.populate({
path: "user",
select: "name -_id",
})
.populate({
path: "Allocated_To",
select: "name _id",
})
.sort({ createdAt: -1 });
if (machine) {
res.status(201).json({
success: true,
machine,
message: "All machine Fetched",
});
}
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went Wrong",
});
}
};
export const getSinglemachine = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
// console.log(req?.user)
if (!req.params.id)
return res.status(400).json({ message: "please Provide machine Id" });
const machine = await shippingAddress
.findById(req.params.id)
.populate({
path: "user",
select: "name -_id",
})
.populate({
path: "Allocated_To",
select: "name _id",
});
if (machine) {
res.status(201).json({
success: true,
machine,
message: " machine Fetched",
});
}
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went Wrong",
});
}
};
export const EditMachine = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
// console.log(req?.user)
const { Allocated_To, Allocated_On } = req.body;
switch (true) {
//validation
case !Allocated_To: {
return res.status(404).json({ msg: "please provide Allocated To" });
}
case !Allocated_On: {
return res.status(404).json({ msg: "please provide AllocatedOn Date" });
}
}
const machine = await shippingAddress.findById(req.params.id);
if (machine) {
const Modifymachine = await shippingAddress.findByIdAndUpdate(
req.params.id,
req.body,
{
new: true,
runValidators: true,
useFindAndModify: false,
}
);
res.status(200).json({
success: true,
machine: Modifymachine,
message: " shippingAddress Updated",
});
}
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went Wrong",
});
}
};
//
//varification
export const machineVarificationFromAdmin = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
// console.log(req?.user)
if (!req.params.id)
return res.status(400).json({ message: "please Provide machine Id" });
const getMachine = await shippingAddress.findById(req.params.id);
if (getMachine) {
if (req.user.role === "admin") {
if (getMachine.Status === false) {
getMachine.Status = true;
} else {
getMachine.Status = false;
}
getMachine.save();
return res.status(200).json({
success: true,
message: `shippingAddress status change successfully`,
});
}
} else {
return res.status(400).json({ message: "Only Admin Change Status" });
}
} catch (err) {
// console.log(err)
return res
.status(500)
.json({ message: err.message ? err.message : "Something went wrong." });
}
};
//get machine using franchisee id
export const getMachineDetails = async (req, res) => {
try {
if (!req?.franchi)
return res.status(400).json({ message: "please login !" });
const machine = await shippingAddress
.find({
Allocated_To: req.franchi._id,
Status: true,
})
.populate({
path: "Allocated_To",
select: "name _id",
});
if (machine) {
res.status(201).json({
success: true,
machine,
message: " machine Fetched",
});
}
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went Wrong",
});
}
};
///
export const deleteOneMachine = async (req, res) => {
try {
if (!req?.user) return res.status(400).json({ message: "please login !" });
if (!req.params.id)
return res
.status(400)
.json({ message: "please Provide shippingAddress Id" });
const getmachine = await shippingAddress.findById(req.params.id);
if (!getmachine) {
return res.status(404).json({
success: false,
message: "No shippingAddress Found!",
});
}
const machine = await shippingAddress.findByIdAndDelete(req.params.id);
await machine.remove();
res.status(200).json({
success: true,
message: "shippingAddress Deleted Successfully!!",
});
} catch (error) {
res.status(500).json({
success: false,
message: error.message ? error.message : "Something went Wrong",
});
}
};