const user = require("../models/UserModel"); const account = require("../models/AuthenticationModel"); const md5 = require("md5"); const { v4: uuidv4 } = require('uuid'); const asyncHandeler = require("express-async-handler"); const { response } = require("express"); const TeamModel = require("../models/TeamModel"); const couponsModel = require("../models/CouponModel"); const LeaderboardModel = require("../models/LeaderboardModel"); const { connectTeamSocket } = require("../sockets/UserSockets"); const { updateLeaderBoard } = require("../sockets/LeaderBoardUpdated"); exports.login_get = asyncHandeler(async (req, res) => { console.log("login user detected"); res.send("this is a handelled login route"); }); exports.login_post = asyncHandeler(async (req, res) => { var login = require("../middlewares/UserLoginMiddleware"); //console.log(req.body) var resp = await login.attempt(req.body.username, req.body.password); if (resp != false) { var session_id = uuidv4(); var acc = new account({ UserID: resp._id, SessionID: session_id, TeamId: resp.TeamID, Status: 1 }); await account.findOneAndDelete({ UserID: resp._id }); await acc.save(); let users = await user.findOne({ _id: resp._id }) //console.log(req.body.code) if(req.body.code) { // console.log(await couponsModel.exists({ Code: req.body.code })) try { if(await couponsModel.exists({Coupon:req.body.code})) { var teamLeaderboard=await LeaderboardModel.findOne({ TeamID: resp.TeamID,Round:0 }); if(teamLeaderboard.Points<=5) { teamLeaderboard.Points+=5; await couponsModel.findOneAndDelete({Coupon:req.body.code}); await teamLeaderboard.save(); res.cookie('SessionID', session_id, { sameSite: 'None', httponly: true, secure: true,// This should be used when serving over HTTPS }); updateLeaderBoard(req) res.send("You have been awarded 5 points for using a code"); } else { res.send("You have already exceeded the maximum points for using a code"); } } else{ res.send("Invalid Hidden Code"); } } catch (error) { res.send("Something went wrong") console.log(error) } } else { res.cookie('SessionID', session_id, { sameSite: 'None', httponly: true, secure: true,// This should be used when serving over HTTPS }); res.send("Login Successful"); } } else res.send("Invalid Credentials"); });