91 lines
2.6 KiB
JavaScript
91 lines
2.6 KiB
JavaScript
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"
|
||
});
|
||
} |