95 lines
2.5 KiB
JavaScript
95 lines
2.5 KiB
JavaScript
import {
|
|
createEnquiry,
|
|
updateEnquiry,
|
|
getAllEnquiries,
|
|
getEnquiryByQuery,
|
|
aggregateEnquiry,
|
|
} from "../models/Enquiry/operations";
|
|
import dayjs from "dayjs";
|
|
|
|
export const createEnquiryController = async (req, res) => {
|
|
try {
|
|
const { user } = res.locals;
|
|
const enquiry = await createEnquiry({ ...req.body, createdBy: user.id });
|
|
return res.json({ result: enquiry });
|
|
} catch (error) {
|
|
console.log("createEnquiryController Error", error);
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
export const getMyEnquiriesController = async (req, res, next) => {
|
|
try {
|
|
const { user } = res.locals;
|
|
const enquiries = getAllEnquiries({ createdBy: user.id });
|
|
return res.json({ result: enquiries });
|
|
} catch (error) {
|
|
console.log("getMyEnquiriesController Error", error);
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
export const getAllPendingEnquiriesController = async (req, res, next) => {
|
|
try {
|
|
const enquiries = await getAllEnquiries({ status: "CREATED" });
|
|
return res.json({ result: enquiries });
|
|
} catch (error) {
|
|
console.log("getAllPendingEnquiriesController Error", error);
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
export const getAllConfirmedEnquiriesController = async (req, res, next) => {
|
|
try {
|
|
const enquiries = await getAllEnquiries({ status: "CONFIRMED" });
|
|
return res.json({ result: enquiries });
|
|
} catch (error) {
|
|
console.log("getAllConfirmedEnquiriesController Error", error);
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
export const updateEnquiryStatusController = async (req, res, next) => {
|
|
try {
|
|
const { id } = req.params;
|
|
const { status } = req.body;
|
|
const enquiry = await updateEnquiry(id, { status });
|
|
return res.json({ result: enquiry });
|
|
} catch (error) {
|
|
console.log("updateEnquiryStatusController Error", error);
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
export const addRemarkToEnquiryController = async (req, res, next) => {
|
|
try {
|
|
const { id } = req.params;
|
|
const { remark, type, createdBy } = req.body;
|
|
const enquiry = await updateEnquiry(id, {
|
|
$push: {
|
|
remarks: {
|
|
remark,
|
|
type,
|
|
createdBy,
|
|
createdOn: dayjs().toISOString(),
|
|
},
|
|
},
|
|
});
|
|
return res.json({ result: enquiry });
|
|
} catch (error) {
|
|
console.log("addRemarkToEnquiryController Error", error);
|
|
next(error);
|
|
}
|
|
};
|
|
|
|
export const getEnquiryByIdController = async (req, res, next) => {
|
|
try {
|
|
const { id } = req.params;
|
|
const enquiry = await getEnquiryById(id);
|
|
return res.json({ result: enquiry });
|
|
} catch (error) {
|
|
console.log("getEnquiryByIdController Error", error);
|
|
next(error);
|
|
}
|
|
};
|