Sindbad~EG File Manager

Current Path : /home/infinitibizsol/.trash/controllers.4/
Upload File :
Current File : /home/infinitibizsol/.trash/controllers.4/auctionLaneController.js

const db = require("../models");

const getAuctionsAndLanesByAuctioneerId = async (req, res) => {
  try {
    const { auctioneer_id } = req.body;
    let result = await db.tblAuctionLane.findAll({
      attributes: ["name", "lane_id"], // Select the columns you want to retrieve
      include: [
        {
          model: db.tblAuction,
          attributes: ["name"],
          raw: true,
          required: true,
        },
      ],
      where: {
        auctioneer_id: auctioneer_id,
      },
    });

    const transformedData = result.map((item) => ({
      lane_id: item.lane_id,
      name: item.name,
      auction_name: item.tblAuction.name,
    }));

    const data = transformedData.reduce(
      (acc, { lane_id, name, auction_name }) => {
        const auctionEntry = acc.find(
          (entry) => entry.auction_name === auction_name
        );

        if (auctionEntry) {
          auctionEntry.lane_names.push({ lane_id, name });
        } else {
          acc.push({ auction_name, lane_names: [{ lane_id, name }] });
        }

        return acc;
      },
      []
    );

    return res.json({ status: 200, message: "Success", data: data });
  } catch (error) {
    return res.status(500).json({
      status: 500,
      message: "Internal Server Error",
      error: error.message,
    });
  }
};

const getAuctionsByAuctioneerId = async (req, res) => {
  try {
    const { user_id, week_id } = req.body;

    let results = await db.sequelize.query(
      "CALL uFilterByAuction(:user_id, :week_id)",
      {
        replacements: { user_id, week_id },
      }
    );
    let [unCatogrizedResult] = await db.sequelize.query(
      "CALL uAucUncatUnitCount(:user_id, :week_id)",
      {
        replacements: { user_id, week_id },
      }
    );
    if (!unCatogrizedResult) {
      unCatogrizedResult = {
        auction_id: 0,
        name: "Not Provided",
        units: 0,
      };
    }
    results.push(unCatogrizedResult);
    return res.json({
      status: 200,
      message: "Success",
      filter_type: "auction",
      data: results,
      // unCatogrizedResult,
    });
  } catch (error) {
    return res.status(500).json({
      status: 500,
      message: "Internal Server Error",
      error: error.message,
    });
  }
};

module.exports = {
  getAuctionsAndLanesByAuctioneerId,
  getAuctionsByAuctioneerId,
};

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists