const models = require("../models");
const emailCheck = require("./utils/emailCheck");

module.exports = socket => {
    return async (data) => {
        if (await models.User.findByPk(data.email))
            socket.emit("register", {error: {message: "email_used"}});
        else if ((!data.email.endsWith("@univ-lyon1.fr")) && (!data.email.endsWith("@etu.univ-lyon1.fr")))
            socket.emit("register", {error: {message: "invalid_email"}});
        else {
            let user = await models.User.create({
                email: data.email,
                firstName: data.firstName,
                lastName: data.lastName,
                passwordHash: data.password
            });

            await emailCheck(socket, user, null);
        }
    }
};