From 04fd71b7b78f8987032c97186bb040c304a452ac Mon Sep 17 00:00:00 2001 From: Mathias Wagner Date: Tue, 27 Dec 2022 15:03:52 +0100 Subject: [PATCH] Created the user controller --- server/controller/user.js | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 server/controller/user.js diff --git a/server/controller/user.js b/server/controller/user.js new file mode 100644 index 0000000..b69e1ef --- /dev/null +++ b/server/controller/user.js @@ -0,0 +1,31 @@ +const User = require('../models/User'); +const bcrypt = require('bcrypt'); +const {Op} = require("sequelize"); + +module.exports.createUser = async (username, email, password) => { + let user = await User.findOne({where: {[Op.or]: [{username}, {email}]}}); + if (user !== null) return; + + const salt = await bcrypt.genSalt(10); + const hashedPassword = await bcrypt.hash(password, salt); + + await User.create({username, email, hashedPassword}); +} + +module.exports.authUser = async (username, password) => { + let user = await User.findOne({where: {username: username}}); + if (user === null) return; + + const isValid = await bcrypt.compare(password, user.password); + if (!isValid) return; + + return user; +} + +module.exports.getUserById = async (id) => { + return await User.findOne({where: {id}}); +} + +module.exports.getUserByName = async (username) => { + return await User.findOne({where: {username}}); +} \ No newline at end of file