const {Application} = require("../core/server"); const Joi = require("joi"); const { PostDataProcess } = require("../core/postdata"); const User = require("../database/user"); Application.get("/", LoginPage); Application.get("/login", LoginPage); Application.get("/register", RegisterPage); ///Application.post("/login", Login); Application.post("/register", PostDataProcess(), Register); /** * @param {import("express").Request} request * @param {import("express").Response} response */ async function LoginPage(request, response) { response.render("login"); } /** * @param {import("express").Request} request * @param {import("express").Response} response */ async function RegisterPage(request, response) { response.render("register"); } /** * @param {import("express").Request} request * @param {import("express").Response} response */ async function Register(request, response) { const schema = Joi.object({ name: Joi.string().min(2).max(30).required().error(new Error('Ad zorunludur ve 2 ile 30 karakter arasında olmalıdır.')), surname: Joi.string().min(2).max(30).required().error(new Error('Soyad zorunludur ve 2 ile 30 karakter arasında olmalıdır.')), email: Joi.string().email().required().error(new Error('Geçerli bir e-posta adresi giriniz.')), password: Joi.string().min(6).max(20).required().error(new Error('Şifre zorunludur ve en az 6 karakter olmalıdır.')), passwordverif: Joi.any().equal(Joi.ref("password")).required().error(new Error('Şifreler eşleşmiyor.')) }); const {error} = schema.validate(request.body); if(error) { return response.status(400).json({ status: "fail", message: error.message }); } if(await User.hasUser(request.body.email)) { return response.status(400).json({ status: "fail", message: "E-Mail adresi zaten kullanılıyor." }); } let userid; try{ userid = await User.createUser( request.body.name, request.body.surname, request.body.email, request.body.password ); }catch{ return response.status(500).json({ status: "fail", message: "Bir hata oluştu" }); } request.session.authendicated = true; request.session.user_id = userid; request.session.user = await User.getUser(userid); return response.status(200).json({ status: "success", message: "Kayıt işlemi başarılı, hesabınıza giriş yapabilirsiniz" }); }