Compare commits

...

2 Commits

Author SHA1 Message Date
ef83ad18a4
feat(services): Db - category insert method
#6
2024-04-25 11:37:09 +02:00
adbecfa435
style(services): 🎨 Db 2024-04-25 11:36:20 +02:00

View File

@ -2,6 +2,7 @@ import mysql, {type Connection, type ConnectionOptions} from 'mysql2';
import {Logger} from "tslog";
import type {IDbModel} from "@interfaces/database/IDbModel";
import type {IDbUser} from "@interfaces/database/IDbUser";
import type IDbCategory from "@interfaces/database/IDbCategory";
const access: ConnectionOptions = {
@ -88,27 +89,27 @@ const MySqlService = {
* Insert a user into the database.
*
* @param {MysqlHandler} handler - The MySQL database handler.
* @param {IDbUser} userData - The user data to insert.
* @param {IDbUser} data - The user data to insert.
* @returns {Promise<void>} A promise that resolves if the user was inserted successfully, or rejects with an error.
* @throws {Error} If an error occurs while executing the query.
*/
insert(handler: MysqlHandler, userData: IDbUser) {
insert(handler: MysqlHandler, data: IDbUser) {
return new Promise((resolve, reject) => {
if (!userData.id) return reject('Id is undefined');
if (userData.id.length !== 36) return reject('Id invalid');
if (!data.id) return reject('Id is undefined');
if (data.id.length !== 36) return reject('Id invalid');
const _sql = "INSERT INTO `users`(`id`,`username`, `firstname`, `lastname`, `dob`, `email`, `is_mail_verified`, `is_admin`, `gdpr`, `hash`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)"
const _values = [
userData.id,
userData.username,
userData.firstname,
userData.lastname,
userData.dob,
userData.email,
userData.is_mail_verified,
userData.is_admin,
userData.gdpr,
userData.hash
data.id,
data.username,
data.firstname,
data.lastname,
data.dob,
data.email,
data.is_mail_verified,
data.is_admin,
data.gdpr,
data.hash
]
try {
resolve(handler.execute(_sql, _values))
@ -121,37 +122,37 @@ const MySqlService = {
/**
* Updates user data in the database.
* @param {MysqlHandler} handler - The MySQL handler object.
* @param {IDbUser} userData - The user data to be updated.
* @param {IDbUser} data - The user data to be updated.
* @returns {Promise<unknown>} - A promise that resolves when the update is successful.
* @throws {Error} - If an error occurs during the update process.
*/
update(handler: MysqlHandler, userData: IDbUser): Promise<unknown> {
update(handler: MysqlHandler, data: IDbUser): Promise<unknown> {
return new Promise((resolve, reject) => {
if (!userData.id) return reject('Id is undefined');
if (userData.id.length !== 36) return reject('Id invalid');
if (!data.id) return reject('Id is undefined');
if (data.id.length !== 36) return reject('Id invalid');
try {
const _template = `
${userData.username ? "`username` = ?," : null}
${userData.firstname ? "`firstname` = ?," : null}
${userData.lastname ? "`lastname` = ?," : null}
${userData.dob ? "`dob` = ?," : null}
${userData.email ? "`email` = ?," : null}
${userData.is_mail_verified ? "`is_mail_verified` = ?," : null}
${userData.is_admin ? "`is_admin` = ?," : null}
${userData.gdpr ? "`gdpr` = ?," : null}
${userData.hash ? "`hash` = ?" : null}`
${data.username ? "`username` = ?," : null}
${data.firstname ? "`firstname` = ?," : null}
${data.lastname ? "`lastname` = ?," : null}
${data.dob ? "`dob` = ?," : null}
${data.email ? "`email` = ?," : null}
${data.is_mail_verified ? "`is_mail_verified` = ?," : null}
${data.is_admin ? "`is_admin` = ?," : null}
${data.gdpr ? "`gdpr` = ?," : null}
${data.hash ? "`hash` = ?" : null}`
const _values = [
userData.username,
userData.firstname,
userData.lastname,
userData.dob,
userData.email,
userData.is_mail_verified,
userData.is_admin,
userData.gdpr,
userData.hash,
userData.id
data.username,
data.firstname,
data.lastname,
data.dob,
data.email,
data.is_mail_verified,
data.is_admin,
data.gdpr,
data.hash,
data.id
]
const _sql = `UPDATE "users" SET ${_template} WHERE 'id' = ?`;
@ -342,6 +343,27 @@ const MySqlService = {
}
})
}
},
Category: {
insert(handler: MysqlHandler, data: IDbCategory) {
return new Promise((resolve, reject) => {
if (!data.id) return reject('Id is undefined');
if (data.id.length !== 36) return reject('Id invalid');
const _sql = "INSERT INTO `users`(`id`,`slug_name`, `display_name`) VALUES (?, ?, ?)"
const _values = [
data.id,
data.slug_name,
data.display_name
]
try {
resolve(handler.execute(_sql, _values))
} catch (err: unknown) {
reject(err as Error);
}
})
}
}
}