67 lines
1.5 KiB
JavaScript
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");
|
|
*/ |