ekoetki/database/user.js

67 lines
1.5 KiB
JavaScript

const crypto = require("node:crypto");
const DB = require("./connection");
exports.createUser = createUser;
exports.hasUser = hasUser;
exports.getUser = getUser;
exports.checkUser = checkUser;
async function createUser(
name,
surname,
email,
password
)
{
const [id] = await DB.table("users")
.insert({
name,
surname,
email,
password: sha256(password)
})
.returning("id");
return id;
}
async function hasUser(email)
{
let data = await DB.table("users")
.select("id")
.where("email",email)
.whereNull("deleted_at")
.first();
return data != null;
}
async function checkUser(email,password)
{
password = sha256(password);
let data = await DB.table("users")
.select("id")
.where("email",email)
.where("password",password)
.whereNull("deleted_at")
.first();
return data;
}
async function getUser(id)
{
return await DB.table("users")
.where("id",id)
.whereNull("deleted_at")
.first();
}
function sha256(key)
{
return crypto.createHash("sha256").update(key).digest("hex");
}
/*
table.string('name').notNullable();
table.string('surname').notNullable();
table.string('email').unique().index();
table.string('password',255).notNullable();
table.dateTime("created_at").defaultTo(knex.fn.now());;
table.dateTime("update_at").defaultTo(knex.fn.now());;
table.dateTime("deleted_at");
*/