Files
fielderp-server/controllers/enquiry.controller.js
T

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