personal_website/models/mediaModel.ts
2025-07-16 19:17:34 +02:00

82 lines
1.6 KiB
TypeScript

import pool from 'miscellaneous/db'
export class Media {
id!: number;
code!: number;
title!: string;
released!: string;
webImg!: string;
}
export enum Table {
movies = "movies",
series = "series",
games = "games",
}
function save(table: Table, code: number, title: string, released: string, webImg: string): number {
try {
const sql = "INSERT INTO " + table + " (code, title, released, webImg) VALUES (?,?,?,?)";
const result = pool.query(sql).run(code, title, released, webImg);
return result.changes;
}
catch (err) {
console.log(err);
}
return 0;
}
function updateWebImg(table: Table, code: number, webImg: string): number {
try {
const sql = "UPDATE " + table + " SET webImg = ? WHERE code = ?;";
const result = pool.query(sql).run(webImg, code);
return result.changes;
}
catch (err) {
console.log(err);
}
return 0;
}
function findOneAndDelete(table: Table, code: number): number {
try {
const result = pool.query("DELETE FROM " + table + " WHERE code = ?;").run(code);
return result.changes;
}
catch (err) {
console.log(err);
}
return 0;
}
function findOne(table: Table, code: number): Media[] {
try {
const rows = pool.query("SELECT * FROM " + table + " WHERE code = ?;").as(Media).all(code);
return rows;
}
catch (err) {
console.log(err);
}
return [];
}
function find(table: Table): Media[] {
try {
const rows = pool.query("SELECT * FROM " + table + ";").as(Media).all();
return rows;
}
catch (err) {
console.log(err);
}
return [];
}
export default {
save,
updateWebImg,
findOneAndDelete,
findOne,
find
};