mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-14 21:59:42 -06:00
38 lines
896 B
JavaScript
38 lines
896 B
JavaScript
const InviteToken = require("../../../models/InviteToken");
|
|
const crypto = require("crypto");
|
|
const { errorMessages } = require("../../../utils/messages");
|
|
|
|
const requestInviteToken = async (req, res) => {
|
|
try {
|
|
await InviteToken.deleteMany({ email: req.body.email });
|
|
let inviteToken = new InviteToken({
|
|
email: req.body.email,
|
|
role: req.body.role,
|
|
token: crypto.randomBytes(32).toString("hex"),
|
|
});
|
|
await inviteToken.save();
|
|
return inviteToken;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
};
|
|
|
|
const getInviteToken = async (req, res) => {
|
|
try {
|
|
const invite = await InviteToken.findOneAndDelete({
|
|
token: req.body.token,
|
|
});
|
|
if (invite === null) {
|
|
throw new Error(errorMessages.AUTH_INVITE_NOT_FOUND);
|
|
}
|
|
return invite;
|
|
} catch (error) {
|
|
throw error;
|
|
}
|
|
};
|
|
|
|
module.exports = {
|
|
requestInviteToken,
|
|
getInviteToken,
|
|
};
|