/
home
/
infinitibizsol
/
.trash
/
controllers
/
File Upload :
llllll
Current File: /home/infinitibizsol/.trash/controllers/userSubscriptionController.js
const { Op, INTEGER } = require("sequelize"); const db = require("../models"); /* const getAllSubscribedAuctioneerList = async (req, res) => { try { const { userId, weekId } = req.body; let resultTableAdmin = await db.tblAuctioneer.findAll({ attributes: ["auctioneer_id", "first_name", "per_unit_fee"], order: [["first_name", "ASC"]], }); let resultTableSubscription = await db.tblUserSubAuctioneer.findAll({ where: { user_id: userId, }, }); const adminIdsInSubTbl = new Set( resultTableSubscription.map((item) => item.auctioneer_id) ); let resultTableAdminUsers = await db.tblOpportunity.findAll({ where: { week_id: weekId, user_id: userId, }, }); const adminIdsInUsers = new Set( resultTableAdminUsers.map((item) => item.auctioneer_id) ); resultTableAdmin = resultTableAdmin.map((item) => item.get()); const data = resultTableAdmin.map((item) => ({ ...item, status: adminIdsInSubTbl.has(item.auctioneer_id), opportunity_status: adminIdsInUsers.has(item.auctioneer_id), // status: true, })); return res.json({ status: 200, data: data }); } catch (error) { return res.json(error.message); } }; */ //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", "per_unit_fee"], 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, data: data }); } catch (error) { return res.json(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); /* let resultTableAdmin = await db.tblAuctioneer.findAll(); let resultTableAdminUsers = await db.tblUserSubAuctioneer.findAll({ where: { user_id: userId, }, }); const adminIdsInUsers = new Set( resultTableAdminUsers.map((item) => item.auctioneer_id) ); resultTableAdmin = resultTableAdmin.map((item) => item.get()); const data = resultTableAdmin.map((item) => ({ ...item, status: adminIdsInUsers.has(item.auctioneer_id), // status: true, })); */ return res.json({ status: 200, data: [result] }); } catch (error) { return res.json(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, ]); console.log("Opportunity Deletion Result:", opportunityResult); console.log("UserSubAuctioneer Deletion Result:", userSubAuctioneerResult); /* let resultTableAdmin = await db.tblAuctioneer.findAll(); let resultTableAdminUsers = await db.tblUserSubAuctioneer.findAll({ where: { user_id: userId, }, }); const adminIdsInUsers = new Set( resultTableAdminUsers.map((item) => item.auctioneer_id) ); resultTableAdmin = resultTableAdmin.map((item) => item.get()); const data = resultTableAdmin.map((item) => ({ ...item, status: adminIdsInUsers.has(item.auctioneer_id), // status: true, })); */ return res.json({ status: 200, message: "Success" }); } catch (error) { return res.json(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.json(error.message); } } module.exports = { subscribeAuctioneer, getAllSubscribedAuctioneerList, subscribeAuctioneerWebHook, unSubscribeAuctioneer, };
Copyright ©2k19 -
Hexid
|
Tex7ure