ekoetki/database/student.js

88 lines
1.6 KiB
JavaScript

const crypto = require("node:crypto");
const DB = require("./connection");
exports.createStudent = createStudent;
exports.getStudents = getStudents;
exports.countStudents = countStudents;
exports.updateStudent = updateStudent;
async function createStudent(
owner_id,
name,
surname,
studentno,
email,
gender,
birthdate,
description
)
{
const [id] = await DB.table("students")
.insert({
owner_id,
name,
surname,
studentno,
email,
gender,
birthdate,
description
})
.returning("id");
return id;
}
async function updateStudent(
id,
owner_id,
name,
surname,
studentno,
email,
gender,
birthdate,
description
)
{
await DB.table("students")
.where("id",id)
.where("owner_id", owner_id)
.update({
name,
surname,
studentno,
email,
gender,
birthdate,
description
});
}
async function getStudents(
owner_id,
offset,
limit,
searchTerm
)
{
return await DB.table("students")
.where("owner_id",owner_id)
.whereNull("deleted_at")
.where("name","like",`%${searchTerm ?? ""}%`)
.limit(limit)
.offset(offset);
}
async function countStudents(owner_id, searchTerm)
{
return (
await DB.table("students")
.where("owner_id",owner_id)
.whereNull("deleted_at")
.where("name","like",`%${searchTerm ?? ""}%`)
.count("id as total")
.first()
).total;
}