Move media to sql
This commit is contained in:
@@ -1,14 +1,72 @@
|
||||
import mongoose, { Schema } from 'mongoose';
|
||||
import { type ResultSetHeader, type RowDataPacket, type QueryOptions } from "mysql2"
|
||||
import pool from '../miscellaneous/db'
|
||||
|
||||
const mediaSchema = new Schema({
|
||||
'title': String,
|
||||
'released': String,
|
||||
'webImg': String,
|
||||
'code': String
|
||||
});
|
||||
|
||||
const MovieModel = mongoose.model('movie', mediaSchema);
|
||||
const SeriesModel = mongoose.model('series', mediaSchema);
|
||||
const GameModel = mongoose.model('game', mediaSchema);
|
||||
interface Media extends RowDataPacket {
|
||||
id?: number;
|
||||
code?: number;
|
||||
title?: string;
|
||||
released?: string;
|
||||
webImg?: string;
|
||||
}
|
||||
|
||||
export { MovieModel, SeriesModel, GameModel };
|
||||
export enum Table {
|
||||
movies = "movies",
|
||||
series = "series",
|
||||
games = "games",
|
||||
}
|
||||
|
||||
async function save(table: Table, code: number, title: string, released: string, webImg: string): Promise<number> {
|
||||
try {
|
||||
const options: QueryOptions = {
|
||||
sql: "INSERT INTO " + table + " (code, title, released, webImg) VALUES (?,?,?,?)",
|
||||
values: [code, title, released, webImg]
|
||||
};
|
||||
const [result, fields] = await pool.query<ResultSetHeader>(options);
|
||||
return result.affectedRows;
|
||||
}
|
||||
catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
async function findOneAndDelete(table: Table, code: number): Promise<number> {
|
||||
try {
|
||||
const [result, fields] = await pool.query<ResultSetHeader>("DELETE FROM " + table + " WHERE code = ?;", [code]);
|
||||
return result.affectedRows;
|
||||
}
|
||||
catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
async function findOne(table: Table, code: number): Promise<Media[]> {
|
||||
try {
|
||||
const [rows, fields] = await pool.query<Media[]>("SELECT * FROM " + table + " WHERE code = ?;", [code]);
|
||||
return rows;
|
||||
}
|
||||
catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
async function find(table: Table): Promise<Media[]> {
|
||||
try {
|
||||
const [rows, fields] = await pool.query<Media[]>("SELECT * FROM " + table + ";");
|
||||
return rows;
|
||||
}
|
||||
catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
return [];
|
||||
}
|
||||
|
||||
export default {
|
||||
save,
|
||||
findOneAndDelete,
|
||||
findOne,
|
||||
find
|
||||
};
|
Reference in New Issue
Block a user