Files
Checkmate/Server/controllers/authController.js
T

44 lines
1.2 KiB
JavaScript

const express = require("express");
const UserModel = require("../models/user");
const { authValidation } = require("../validation/joi");
/**
* @function
* @param {express.Request} req
* @param {express.Response} res
* @returns {{success: Boolean, msg: String}}
*/
const registerController = async (req, res) => {
// joi validation
try {
await authValidation.validateAsync(req.body);
} catch (error) {
return res
.status(400)
.json({ success: false, msg: error.details[0].message });
}
// Check if the user exists
try {
const isUser = await req.db.getUserByEmail(req, res);
if (isUser)
return res
.status(400)
.json({ success: false, msg: "User already exists!" });
} catch (error) {
return res.status(500).json({ success: false, msg: error.message });
}
try {
// Create a new user
const newUser = await req.db.insertUser(req, res);
return res.json({ success: true, msg: "User created}", data: newUser });
// Send an email to user
// Will add this later
} catch (error) {
return res.status(500).json({ success: false, msg: error.message });
}
};
module.exports = { registerController };