/
home
/
infinitibizsol
/
.trash
/
controllers.3
/
File Upload :
llllll
Current File: /home/infinitibizsol/.trash/controllers.3/userSubscriptionController.js
const { Op, INTEGER } = require("sequelize"); const db = require("../models"); //Optimized Code const getAllSubscribedAuctioneerList = async (req, res) => { try { const { userId, weekId } = req.body; const [resultTableAdmin, resultTableSubscription, resultTableAdminUsers] = await Promise.all([ db.tblAuctioneer.findAll({ attributes: ["auctioneer_id", "first_name","business_name"], order: [["first_name", "ASC"]], }), db.tblUserSubAuctioneer.findAll({ where: { user_id: userId, }, }), db.tblOpportunity.findAll({ where: { week_id: weekId, user_id: userId, }, }), ]); const adminIdsInSubTbl = new Set( resultTableSubscription.map((item) => item.auctioneer_id) ); const adminIdsInUsers = new Set( resultTableAdminUsers.map((item) => item.auctioneer_id) ); const data = resultTableAdmin.map((item) => ({ ...item.get(), status: adminIdsInSubTbl.has(item.auctioneer_id), opportunity_status: adminIdsInUsers.has(item.auctioneer_id), })); 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 subscribeAuctioneer = async (req, res) => { try { // Set start_date as the current date const start_date = new Date(); // Set expiration_date as one month from the current date const expirationDate = new Date(); expirationDate.setMonth(expirationDate.getMonth() + 1); const expiration_date = expirationDate; const data = { user_id: req.body.user_id, auctioneer_id: req.body.auctioneer_id, start_date: start_date, expiration_date: expiration_date, }; let result = await db.tblUserSubAuctioneer.create(data); return res.json({ status: 200, message: "Success", data: [result] }); } catch (error) { return res.status(500).json({ status: 500, message: "Internal Server Error", error: error.message, }); } }; const unSubscribeAuctioneer = async (req, res) => { try { const { user_id, auctioneer_id } = req.body; let destroyOpportunity = db.tblOpportunity.destroy({ where: { [Op.and]: [ { user_id: user_id, }, { auctioneer_id: auctioneer_id }, ], }, }); let destroyUserSubAuctioneer = db.tblUserSubAuctioneer.destroy({ where: { [Op.and]: [ { user_id: user_id, }, { auctioneer_id: auctioneer_id }, ], }, }); const [opportunityResult, userSubAuctioneerResult] = await Promise.all([ destroyOpportunity, destroyUserSubAuctioneer, ]); return res.json({ status: 200, message: "Success" }); } catch (error) { return res.status(500).json({ status: 500, message: "Internal Server Error", error: error.message, }); } }; async function subscribeAuctioneerWebHook(user_id, auctioneer_id) { try { const dataObject = { user_id: user_id, auctioneer_id: auctioneer_id }; let result = await db.tblUserSubAuctioneer.create(dataObject); return [result]; } catch (error) { return res.status(500).json({ status: 500, message: "Internal Server Error", error: error.message, }); } } module.exports = { subscribeAuctioneer, getAllSubscribedAuctioneerList, subscribeAuctioneerWebHook, unSubscribeAuctioneer, };
Copyright ©2k19 -
Hexid
|
Tex7ure