Feltöltés vizsgaremek könyvkölcsönző

This commit is contained in:
Hoffer Aron
2024-05-06 16:00:46 +02:00
commit 8739b17dc0
1151 changed files with 161137 additions and 0 deletions

View File

@@ -0,0 +1,371 @@
import CheckPermission from "./CheckPermission.js";
import conn from "./Conn.js";
class Books {
checkErrors(book) {
const errors = [];
if(book.author.length === 0
|| book.author === undefined
|| book.author === null){
console.log(typeof(book));
errors.push("A szerzőt kötelező beállítani!");
}
if(book.title.length === 0
|| book.title === undefined
|| book.title === null)
errors.push("A könyv címét kötelező megadni!");
if(book.publisher.length === 0
|| book.publisher === undefined
|| book.title === null)
errors.push("A könyv kiadóját kötelező megadni!");
if(book.the_year_of_publishing === 0
|| book.the_year_of_publishing === undefined
|| book.the_year_of_publishing === null)
errors.push("A könyv kiadásának évét kötelező megadni!");
if(book.description.length === 0
|| book.description === undefined
|| book.description === null)
errors.push("A könyv leírását kötelező megadni!");
if(book.language.length === 0
|| book.language === undefined
|| book.language === null)
errors.push("A könyv nyelvét kötelező megadni!");
if(book.number_of_pages === 0
|| book.number_of_pages === undefined
|| book.number_of_pages === null)
errors.push("A könyv terjedelmét kötelező megadni!");
if(book.cover.length === 0
|| book.cover === undefined
|| book.cover === null)
errors.push("A könyv borítójának típusát kötelező megadni!");
if(book.cover.length === 0
|| book.cover === undefined
|| book.cover === null)
errors.push("A könyv súlyát kötelező megadni!");
if((!book.ISBN || book.ISBN.length === 0)
|| book.ISBN === undefined
|| book.ISBN === null)
errors.push("A könyv ISBN számát kötelező megadni!");
if(book.itemcode.length === 0
|| book.itemcode === undefined
|| book.itemcode === null)
errors.push("A könyv termékkódját kötelező megadni!");
if(book.price === 0
|| book.price === undefined
|| book.price === null)
errors.push("A könyv árát kötelező megadni!");
if(book.discounted_price === 0
|| book.discounted_price === undefined
|| book.discounted_price === null)
errors.push("A könyv kedvezményes árát kötelező megadni!");
if(book.categoryID === 0
|| book.categoryID === undefined
|| book.categoryID === null)
errors.push("A könyv kategóriáját kötelező megadni!");
return errors;
}
async serchBooks(char) {
const sql = `SELECT * FROM books WHERE title LIKE ?`;
const startingP = `${char}%`;
try {
const data = await conn.promise().query(sql, [startingP]);
if(data[0].length !== 0) {
return {
status:200,
messages: data[0]
};
} else {
return {
status: 404,
messages:["A keresett erőforrás nem található!"]
};
}
} catch (err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages: ["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async getBooksCatID(id) {
const sql = `SELECT * FROM books WHERE categoryID = ?`;
try {
const data = await conn.promise().query(sql, [id]);
if(data[0].length !== 0) {
return {
status:200,
messages: data[0]
};
} else {
return {
status:404,
messages:["A keresett erőforrás nem található!"]
};
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages: ["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async getBook(id) {
const sql = `SELECT * FROM books WHERE BookID = ?`;
try {
const data = await conn.promise().query(sql, [id]);
if(data[0].length !== 0) {
return {
status:200,
messages: data[0][0]
};
} else {
return {
status:404,
messages:["A keresett erőforrás nem található!"]
};
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async getBooks() {
const sql = "SELECT * FROM books";
try {
const response = await conn.promise().query(sql);
return {
status:200,
messages:response[0]
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async deleteBook(id, userID, isAdmin) {
const sql = `DELETE FROM books WHERE BookID = ?`;
if(!CheckPermission(userID, isAdmin, true)) {
return {
status:403,
messages:["Nincs jogosultságod törölni a bejegyzést!"]
}
}
try {
const response = await conn.promise().query(sql, [id]);
if(response[0].affectedRows === 1) {
return {
status:200, //ha a status code 204 (No Content) nem tudok hozzá üzenetet beállítani, emiatt állítottam be a 200-at!
messages:"Sikeres törlés!"
}
} else {
return {
status:404,
messages:"Az erőforrás nem található!"
}
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async addBook(book, userID, isAdmin) {
const sql = `INSERT INTO books (author, title, publisher, the_year_of_publishing,
description, language, number_of_pages, cover, weight, ISBN, itemcode, price, discounted_price, book_url, categoryID)
VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`;
const errors = this.checkErrors(book);
if(!CheckPermission(userID, isAdmin, true)) {
return {
status:403,
messages:["Nincs jogosultságod létrehozni a bejegyzést!"]
}
}
if(errors.length > 0) {
console.log(errors);
return {
status:400,
messages:errors
}
}
try {
const response = await conn.promise().query(sql,
[
book.author,
book.title,
book.publisher,
book.the_year_of_publishing,
book.description,
book.language,
book.number_of_pages,
book.cover,
book.weight,
book.ISBN,
book.itemcode,
book.price,
book.discounted_price,
book.book_url,
book.categoryID
]);
return {
status:200,
messages:["Sikeres felvitel!"]
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async updateBook(book, userID, isAdmin) {
const sql = `UPDATE books
SET author = ?, title = ?,
publisher = ?, the_year_of_publishing = ?,
description = ?, language = ?, number_of_pages = ?,
cover = ?, weight = ?, ISBN = ?, itemcode = ?, price = ?,
discounted_price = ?, book_url = ?, categoryID = ? WHERE BookID = ?`;
const errors = this.checkErrors(book);
if(!CheckPermission(userID, isAdmin, true)) {
return {
status:403,
messages:["Nincs jogosultságod felülírni a bejegyzést!"]
}
}
if(errors.length > 0) {
return {
status:400,
messages:errors
}
}
try {
const response = await conn.promise().query(sql,
[
book.author,
book.title,
book.publisher,
book.the_year_of_publishing,
book.description,
book.language,
book.number_of_pages,
book.cover,
book.weight,
book.ISBN,
book.itemcode,
book.price,
book.discounted_price,
book.book_url,
book.categoryID,
book.bookID
]);
if(response[0].affectedRows === 1) {
return {
status:200,
messages:["Sikeres felülírás"]
}
} else {
return {
status:404,
messages:["A keresett könyv nem található!"]
}
}
} catch (err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
}
export default Books;

View File

@@ -0,0 +1,356 @@
import CheckPermission from "./CheckPermission.js";
import conn from "./Conn.js";
class BorrowedBooks {
async getBorBooks() {
const sql = `SELECT borrowedbooks.BookID, borrowedbooks.cartID,
DATE_FORMAT(borrowedbooks.end_of_borrowment, '%Y-%m-%d') as end_of_borrowment,
borrowedbooks.quantity,
DATE_FORMAT(borrowedbooks.start_of_borrowment, '%Y-%m-%d') as start_of_borrowment,
borrowedbooks.UserID, borrowedbooks.bringedBack
,books.title, users.Name FROM borrowedbooks
INNER JOIN books
ON books.BookID = borrowedbooks.BookID
INNER JOIN users
ON users.UserID = borrowedbooks.UserID`;
try {
const response = await conn.promise().query(sql);
return {
status:200,
messages:response[0]
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async getBorrowsByUser(userID) {
const sql = `SELECT borrowedbooks.BookID, borrowedbooks.cartID,
DATE_FORMAT(borrowedbooks.end_of_borrowment, '%Y-%m-%d') as end_of_borrowment,
borrowedbooks.quantity,
DATE_FORMAT(borrowedbooks.start_of_borrowment, '%Y-%m-%d') as start_of_borrowment,
borrowedbooks.UserID, borrowedbooks.bringedBack, books.title
FROM borrowedbooks
INNER JOIN books
ON books.BookID = borrowedbooks.BookID
WHERE UserID = ?`;
if(userID === null || userID === undefined) {
return {
status:403,
messages:["Nincs jogosultságod megtekinteni az adatokat!"]
}
}
try {
const response = await conn.promise().query(sql, [userID]);
return {
status:200,
messages:response[0]
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async getBorrowsByCartID(CartID, userID, isAdmin) {
const sql = `SELECT borrowedbooks.BookID, borrowedbooks.cartID,
DATE_FORMAT(borrowedbooks.end_of_borrowment, '%Y-%m-%d') as end_of_borrowment,
borrowedbooks.quantity,
DATE_FORMAT(borrowedbooks.start_of_borrowment, '%Y-%m-%d') as start_of_borrowment,
borrowedbooks.UserID, borrowedbooks.bringedBack,
books.title, users.Name FROM borrowedbooks
INNER JOIN books
ON books.BookID = borrowedbooks.BookID
INNER JOIN users
ON users.UserID = borrowedbooks.UserID WHERE cartID = ?`;
if(!CheckPermission(userID, isAdmin, true)) {
return {
status:403,
messages:["Nincs jogosultságod megtekinteni az adatokat!"]
}
}
try {
const response = await conn.promise().query(sql, [CartID]);
if(response[0].length !==0)
{
return {
status:200,
messages:response[0][0]
};
}else {
return {
status:404,
messages:["A keresett erőforrás nem található!"]
};
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async getBorrowsByUserID(userID, isAdmin) {
const sql = `SELECT borrowedbooks.BookID, borrowedbooks.cartID,
DATE_FORMAT(borrowedbooks.end_of_borrowment, '%Y-%m-%d') as end_of_borrowment,
borrowedbooks.quantity,
DATE_FORMAT(borrowedbooks.start_of_borrowment, '%Y-%m-%d') as start_of_borrowment,
borrowedbooks.UserID, borrowedbooks.bringedBack,
books.title, users.Name FROM borrowedbooks
INNER JOIN books
ON books.BookID = borrowedbooks.BookID
INNER JOIN users
ON users.UserID = borrowedbooks.UserID WHERE borrowedbooks.UserID = ?`;
if(isAdmin === null || isAdmin === undefined || isAdmin === "0") {
return {
status:403,
messages:["Nincs jogosultságod megtekinteni az adatokat!"]
}
}
try {
const response = await conn.promise().query(sql, [userID]);
if(response[0].length !==0)
{
return {
status:200,
messages:response[0]
};
}else {
return {
status:404,
messages:["A keresett erőforrás nem található!"]
};
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async checkBorrows(bookID, userID) {
const sql = `SELECT COUNT(*) as BookNumber
FROM borrowedbooks WHERE BookID = ?
AND bringedBack = ? AND UserID = ?`;
try {
const response = await conn.promise().query(sql, [bookID, 0, userID]);
return parseInt(response[0][0].BookNumber);
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async checkCartID(cartID) {
const sql = `SELECT COUNT(*) as CartIDNumber
FROM borrowedbooks WHERE cartID = ?`;
try {
const response = await conn.promise().query(sql, [cartID]);
return parseInt(response[0][0].CartIDNumber);
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async addBorrow(borrowDatas) {
const errors = [];
const successes = [];
if(borrowDatas.userID === null || borrowDatas.userID === undefined || borrowDatas.userID === "")
errors.push("Nincs jogosultságod a művelet elvégzéséhez. Kérlek jelentkezz be!")
if(await this.checkBorrows(borrowDatas.bookID, borrowDatas.userID) > 0)
errors.push("Már kivettél egy ilyen könyvet, és még nem hoztad vissza!");
if(errors.length > 0) {
return {
status:400,
messages:errors
}
}
for (let borrowData of borrowDatas) {
const sql = `INSERT INTO borrowedbooks
(BookID, cartID, end_of_borrowment, quantity, start_of_borrowment, UserID)
VALUES(?,?,?,?,?,?)`;
try {
const response = await conn.promise().query(sql, [
borrowData.BookID,
borrowData.cartID,
borrowData.end_of_borrowment,
borrowData.quantity,
borrowData.start_of_borrowment,
borrowData.UserID
]);
const successMessage = "[Sikeres kölcsönzés!]";
if(!successes.includes(successMessage))
{
successes.push(successMessage);
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
if(successes.length > 0) {
return {
status:200,
messages:successes
};
}
}
async updateOrder(borrowData, isAdmin) {
const sql = `UPDATE borrowedbooks SET bringedBack = ?
WHERE cartID = ?`;
if(isAdmin === null || isAdmin === undefined || isAdmin === "0") {
return {
status:403,
messages:"Nincs jogosultságod felülírni a megrendelést!"
}
}
try {
const response = await conn.promise().query(sql,
[
borrowData.bringedBack,
borrowData.cartID,
]);
if(response[0].affectedRows > 0) {
return {
status:200,
messages:"Sikeres felülírás!"
}
}else {
return {
status:404,
messages:"A megadott azonosító alapján nem található megrendelés! "
}
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async deleteOrder(cartID, userID, isAdmin) {
const sql = `DELETE FROM borrowedbooks WHERE cartID = ?`;
if(!CheckPermission(userID, isAdmin, true)) {
return {
status:403,
messages:"Nincs jogosultságod törölni a bejegyzést!"
}
}
try {
const response = await conn.promise().query(sql, [cartID]);
if(response[0].affectedRows > 0) {
return {
status:200,
messages:"Sikeres törlés!"
}
} else {
return {
status:404,
messages:"A megrendelés nem található a megadott azonosító alapján!"
}
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage)
return {
status:503,
messages:"A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"
};
}
}
}
export default BorrowedBooks;

View File

@@ -0,0 +1,57 @@
import conn from "./Conn.js";
class Categories {
async getCategory(id) {
const sql = `SELECT * FROM categories
WHERE categoryID = ?`;
try {
const data = await conn.promise().query(sql, [id]);
if(data[0].length !==0) {
return {
status:200,
messages:data[0][0]
};
}else {
return {
status:404,
messages:["A keresett erőforrás nem található!"]
};
}
} catch(err) {
console.log(errr);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async getCategories() {
const sql = "SELECT * FROM categories";
try {
const response = await conn.promise().query(sql);
return {
status:200,
messages:response[0]
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
}
export default Categories;

View File

@@ -0,0 +1,13 @@
function CheckPermission(userID, isAdmin, admin = false) {
console.log(userID, isAdmin, admin);
if(userID === undefined || userID === null)
return false;
if(admin && (isAdmin === undefined || isAdmin === null || isAdmin == 0))
return false;
return true;
}
export default CheckPermission;

View File

@@ -0,0 +1,10 @@
import mysql from "mysql2";
const conn = mysql.createConnection({
host:"127.0.0.1",
user:"root",
password:"",
database:"konyvkolcsonzo"
});
export default conn;

View File

@@ -0,0 +1,3 @@
const emailRegex = /^[\w\.\-\_öüóőúéáűíÖÜÓŐÚÉÁŰÍ]{1,255}\@[\w\.\-\_]{1,255}\.[\w]{2,8}$/;
export {emailRegex};

View File

@@ -0,0 +1,3 @@
const phoneRegex = /^\+36\d{9}$/;
export {phoneRegex};

View File

@@ -0,0 +1,297 @@
import conn from "./Conn.js";
import hash from "./hash.js";
import { emailRegex } from "./EmailCheck.js";
import { phoneRegex } from "./PhoneNumberCheck.js";
import crypto from "crypto";
import CheckPermission from "./CheckPermission.js";
class User {
async register(user) { //CONCAT +
const sql = `INSERT INTO users
(IsAdmin, Name, Phone, Email, Pass, ZIP, City, Address)
VALUES(?,?,?,?,?,?,?,?)`;
let errors = [];
if(!emailRegex.test(user.email)) {
errors.push("A megadott email cím formátuma nem megfelelő!");
}
if(user.pass.length < 8) {
errors.push("A jelszónak legalább 8 karakteresnek kell lennie!");
}
if(user.pass !== user.passAgain) {
errors.push("A két jelszó nem egyezik meg!");
}
if(!phoneRegex.test(user.phone)) {
errors.push("A telefonszám formátuma érvénytelen. Kérjük, a +36-os országkóddal kezdődő 9 számjegyet adjon meg!")
}
if(await this.checkEmail(user.email) !== 0)
errors.push("A megadott email címmel már regisztráltak a felületen!")
if(errors.length > 0) {
return {
status:400,
messages:errors
};
}
try {
await conn.promise().query(sql,
[
false,
user.fullName,
user.phone,
user.email,
hash(user.pass),
user.zip,
user.city,
user.address
]
);
return {
status:200,
messages:["Sikeres regisztráció!"]
}
} catch(err) {
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async login(user, res) {
const sql = `SELECT UserID, IsAdmin, Email FROM users WHERE Email = ? AND PAss = ?`;
const token = crypto.randomBytes(64).toString('hex'); //??????????? Nem használunk tokent
try {
const userData = await conn.promise().query(sql, [user.email, hash(user.pass)]);
if(userData[0].length === 1) {
const userID = parseInt(userData[0][0].UserID);
const isAdmin = parseInt(userData[0][0].IsAdmin);
const email = userData[0][0].Email;
const expires = new Date(Date.now() + 7 * 24 * 60 * 60 *1000);
res.cookie("userID", userID, {expires:expires, httpOnly:true});
res.cookie("isAdmin", isAdmin, {expires:expires, httpOnly:true});
res.cookie("email", email, {expires: expires, httpOnly:true});
return {
messages:{isAdmin:isAdmin, email: email, userID:userID, token:token, uzenet:["Sikeres belépés"]},
status:200
};
} else {
return {
messages:["Nem megfelelő felhasználónév/jelszó páros!"],
status:403
};
}
} catch(err) {
console.log(err);
return {
status:503,
messages: ["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async getUsers(isAdmin) {
const sql = "SELECT * FROM users";
try {
const response = await conn.promise().query(sql);
return {
status:200,
messages:response[0]
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async deleteUser(userID, c_userID, isAdmin) {
const sql = `DELETE FROM users WHERE UserID = ?`;
if(!CheckPermission(c_userID, isAdmin, true)) {
return {
status:403,
messages:["Nincs jogosultságod törölni a bejegyzést!"]
}
}
try {
const response = await conn.promise().query(sql, [userID]);
if(response[0].affectedRows === 1) {
return {
status:200,
messages:"Sikeres törlés!"
}
} else {
return {
status:404,
messages:"A felhasználó nem található a megadott ID alapján!"
}
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage)
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async checkEmail(email) {
const sql = `SELECT COUNT(*) as EmailExist
FROM users WHERE Email = ?`;
try {
const response = await conn.promise().query(sql, [email]);
return parseInt(response[0][0].EmailExist);
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async resetPass(user) {
const sql = `UPDATE users SET Pass = ?
WHERE Email = ?`;
try {
if(await this.checkEmail(user.email) !== 0){
const response = await conn.promise().query(sql,
[
hash(user.pass),
user.email,
]);
if(response[0].affectedRows === 1) {
return {
status:200,
messages:["Sikeres felülírás!"]
}
}
} else {
return {
status:404,
messages:["A megadott email cím nem szerepel az adatbázisban! "]
}
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async searchUsers(char) {
const sql = `SELECT * FROM users WHERE name LIKE ?`;
const startingP = `${char}%`;
try {
const data = await conn.promise().query(sql, [startingP]);
if(data[0].length !== 0) {
return {
status:200,
messages: data[0]
};
} else {
return {
status: 404,
messages:["A keresett erőforrás nem található!"]
};
}
} catch (err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages: ["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
async getProfile(userID) {
const sql = `SELECT * FROM users
WHERE UserID = ?`;
if(userID === null || userID === undefined || userID === "") {
return {
status:403,
messages:["Nem vagy belépve! Kérlek, lépj be előbb a felületre!"]
}
}
try {
const response = await conn.promise().query(sql, [userID]);
if(response[0].length == 1)
{
return {
status:200,
messages:response[0][0]
}
}
else{
return {
status:404,
messages:["Nem találtam a profilodhoz adatot!"]
}
}
} catch(err) {
console.log(err);
console.log(err.errno);
console.log(err.sqlMessage);
return {
status:503,
messages:["A szolgáltatás jelenleg nem elérhető! Próbálja meg később!"]
};
}
}
}
export default User;

View File

@@ -0,0 +1,5 @@
import crypto from "crypto";
const hash = (str)=>crypto.createHash("sha512").update(str).digest("hex");
export default hash;