Duffer Derek
import Log from "../configs/logger.js";
import { parse } from "querystring";
import {
createLeaveItem,
createPartnerItem,
createTaskItem,
createInquiryItem,
createProductItem,
createProductLineItem,
deleteLeaveItem,
deletePartnerItem,
deleteTaskItem,
deleteInquiryItem,
deleteProductItem,
deleteProductLineItem,
updateLeaveItem,
updatePartnerItem,
updateTaskColor,
updateTaskItem,
updateInquiryItem,
updateProductItem,
updateProductLineItem,
verifyHook,
} from "../services/podio/handleHooks.js";
export default {
sync: async (req, res, next) => {
Log.info("Hook trrigered", req.params.id);
try {
let body = "";
for await (const chunk of req) {
body += chunk.toString(); // Convert Buffer to string
}
const formData = parse(body);
switch (formData.type) {
case "hook.verify":
verifyHook(formData.hook_id, formData.code);
break;
case "item.create":
if (req.params.id == process.env.TASK_APP_ID) {
createTaskItem(formData.item_id);
} else if (req.params.id == process.env.PARTNER_APP_ID) {
createPartnerItem(formData.item_id);
} else if (req.params.id == process.env.LEAVE_APP_ID) {
createLeaveItem(formData.item_id);
} else if (req.params.id == process.env.INQUIRY_APP_ID) {
createInquiryItem(formData.item_id);
} else if (req.params.id == process.env.PRODUCT_APP_ID) {
createProductItem(formData.item_id);
} else if (req.params.id == process.env.PRODUCT_LINE_APP_ID) {
createProductLineItem(formData.item_id);
}
break;
case "item.update":
case "file.change":
if (req.params.id == process.env.TASK_APP_ID) {
updateTaskItem(formData.item_id, req.params.id);
} else if (req.params.id == process.env.PARTNER_APP_ID) {
updatePartnerItem(formData.item_id);
} else if (req.params.id == process.env.LEAVE_APP_ID) {
updateLeaveItem(formData.item_id);
} else if (req.params.id == process.env.INQUIRY_APP_ID) {
updateInquiryItem(formData.item_id);
} else if (req.params.id == process.env.PRODUCT_APP_ID) {
updateProductItem(formData.item_id);
} else if (req.params.id == process.env.PRODUCT_LINE_APP_ID) {
updateProductLineItem(formData.item_id);
}
break;
case "item.delete":
if (req.params.id == process.env.TASK_APP_ID) {
deleteTaskItem(formData.item_id);
} else if (req.params.id == process.env.PARTNER_APP_ID) {
deletePartnerItem(formData.item_id);
} else if (req.params.id == process.env.LEAVE_APP_ID) {
deleteLeaveItem(formData.item_id);
} else if (req.params.id == process.env.INQUIRY_APP_ID) {
deleteInquiryItem(formData.item_id);
} else if (req.params.id == process.env.PRODUCT_APP_ID) {
deleteProductItem(formData.item_id);
} else if (req.params.id == process.env.PRODUCT_LINE_APP_ID) {
deleteProductLineItem(formData.item_id);
}
break;
case "app.update":
if (req.params.id == process.env.TASK_APP_ID) {
updateTaskColor(req.params.id);
}
break;
}
res.status(200).json({
status: 200,
message: "Hook triggerd - " + formData.type,
});
} catch (error) {
Log.error(error);
next(error);
}
},
};
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists