RaptusBackend / controllers /UserLoginController.js
GitHub Actions
Initial commit
df72131
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");
});