Duffer Derek

Current Path : /var/www/api-mk-planner.bitkit.dk/httpdocs/Backend/src/controllers/
Upload File :
Current File : /var/www/api-mk-planner.bitkit.dk/httpdocs/Backend/src/controllers/hookController.js

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