update to update image URL if media is in db

This commit is contained in:
Nikola Petrov 2025-04-21 12:09:29 +02:00
parent 7870951fc7
commit 9ff76bd210
2 changed files with 34 additions and 16 deletions

View File

@ -25,16 +25,6 @@ async function createMed(req: Request, res: Response) {
try { try {
const seriesFound = await MediaModel.findOne(Table.series, cleanCode);
if (seriesFound.length != 0) {
return res.status(409).json({ message: 'Media already exists' });
}
const moviesFound = await MediaModel.findOne(Table.movies, cleanCode);
if (moviesFound.length != 0) {
return res.status(409).json({ message: 'Media already exists' });
}
const uri = `http://www.omdbapi.com/?i=${mediaCode}&apikey=${omdb_key}`; const uri = `http://www.omdbapi.com/?i=${mediaCode}&apikey=${omdb_key}`;
const mJson = await fetch(uri); const mJson = await fetch(uri);
const mData = await mJson.json(); const mData = await mJson.json();
@ -43,12 +33,17 @@ async function createMed(req: Request, res: Response) {
return res.status(404).json({ message: 'wrong code' }); return res.status(404).json({ message: 'wrong code' });
} }
const media = { const seriesFound = await MediaModel.findOne(Table.series, cleanCode);
code: mediaCode, if (seriesFound.length != 0) {
title: mData.Title, await MediaModel.updateWebImg(Table.series, cleanCode, mData.Poster);
released: mData.Released, return res.status(409).json({ message: 'Media already exists' });
webImg: mData.Poster, }
};
const moviesFound = await MediaModel.findOne(Table.movies, cleanCode);
if (moviesFound.length != 0) {
await MediaModel.updateWebImg(Table.movies, cleanCode, mData.Poster);
return res.status(409).json({ message: 'Media already exists' });
}
if (mData.Type.localeCompare("movie") == 0) { if (mData.Type.localeCompare("movie") == 0) {
const savedMedia = await MediaModel.save(Table.movies, cleanCode, mData.Title, mData.Released, mData.Poster); const savedMedia = await MediaModel.save(Table.movies, cleanCode, mData.Title, mData.Released, mData.Poster);
@ -57,6 +52,13 @@ async function createMed(req: Request, res: Response) {
const savedMedia = await MediaModel.save(Table.series, cleanCode, mData.Title, mData.Released, mData.Poster); const savedMedia = await MediaModel.save(Table.series, cleanCode, mData.Title, mData.Released, mData.Poster);
} }
const media = {
code: mediaCode,
title: mData.Title,
released: mData.Released,
webImg: mData.Poster,
};
return res.status(201).json(media); return res.status(201).json(media);
} catch (err) { } catch (err) {
return res.status(500).json({ message: 'Error when creating media' }); return res.status(500).json({ message: 'Error when creating media' });

View File

@ -31,6 +31,21 @@ async function save(table: Table, code: number, title: string, released: string,
return 0; return 0;
} }
async function updateWebImg(table: Table, code: number, webImg: string): Promise<number> {
try {
const options: QueryOptions = {
sql: "UPDATE " + table + "SET webImg = ? WHERE code = ?;",
values: [webImg, code]
};
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> { async function findOneAndDelete(table: Table, code: number): Promise<number> {
try { try {
const [result, fields] = await pool.query<ResultSetHeader>("DELETE FROM " + table + " WHERE code = ?;", [code]); const [result, fields] = await pool.query<ResultSetHeader>("DELETE FROM " + table + " WHERE code = ?;", [code]);
@ -66,6 +81,7 @@ async function find(table: Table): Promise<Media[]> {
export default { export default {
save, save,
updateWebImg,
findOneAndDelete, findOneAndDelete,
findOne, findOne,
find find