Move media to sql

This commit is contained in:
Nikola Petrov
2024-07-16 20:18:46 +02:00
parent 71a2245ce2
commit e89a8536be
3 changed files with 88 additions and 31 deletions

View File

@@ -1,11 +1,11 @@
import { type Request, type Response } from "express";
import UserModel, { values } from '../models/userModel';
import { GameModel } from '../models/mediaModel';
import MediaModel, { Table } from '../models/mediaModel';
export default {
list: function (req: Request, res: Response) {
GameModel.find({}, { __v: 0 })
MediaModel.find(Table.games)
.then(games => {
return res.json(games);
})
@@ -28,7 +28,7 @@ export default {
}
try {
const gameFound = await GameModel.findOne({ code: gameCode });
const gameFound = await MediaModel.findOne(Table.games, gameCode);
if (gameFound) {
return res.status(409).json({ message: 'Game already exists' });
}
@@ -73,14 +73,14 @@ export default {
)
const coverData = await response.json()
const game = new GameModel({
const game = {
code: gameCode,
title: gameData[0].name,
released: dateStr,
webImg: `https://images.igdb.com/igdb/image/upload/t_cover_big/${coverData[0].image_id}.jpg`,
});
};
const savedGame = await game.save();
const savedGame = await MediaModel.save(Table.games, game.code, game.title, game.released, game.webImg);
return res.status(201).json(game);
} catch (error) {
@@ -90,10 +90,10 @@ export default {
},
remove: async function (req: Request, res: Response) {
const id = req.body.code;
const code = req.body.code;
try {
const movie = await GameModel.findOneAndDelete({ code: id });
const movie = await MediaModel.findOneAndDelete(Table.games, code);
if (!movie) {
return res.status(404).json({ message: 'No such game' });
}

View File

@@ -1,6 +1,6 @@
import { type Request, type Response } from "express";
import UserModel, { values } from '../models/userModel';
import { MovieModel, SeriesModel } from '../models/mediaModel';
import MediaModel, { Table } from '../models/mediaModel';
/**
* mediaController.js
@@ -13,9 +13,9 @@ export default {
* mediaController.list()
*/
list: function (req: Request, res: Response) {
const MediaModel = req.baseUrl.includes('movies') ? MovieModel : SeriesModel;
const mediaTable = req.baseUrl.includes('movies') ? Table.movies : Table.series;
MediaModel.find({}, { __v: 0 })
MediaModel.find(mediaTable)
.then(media => {
return res.json(media);
})
@@ -40,8 +40,8 @@ export default {
}
try {
const MediaModel = req.baseUrl.includes('movies') ? MovieModel : SeriesModel;
const mediaFound = await MediaModel.findOne({ code: mediaCode });
const mediaTable = req.baseUrl.includes('movies') ? Table.movies : Table.series;
const mediaFound = await MediaModel.findOne(mediaTable, mediaCode);
if (mediaFound) {
return res.status(409).json({ message: 'Media already exists' });
}
@@ -54,14 +54,14 @@ export default {
return res.status(404).json({ message: 'wrong code' });
}
const media = new MediaModel({
const media = {
code: mediaCode,
title: mData.Title,
released: mData.Released,
webImg: mData.Poster,
});
};
const savedMedia = await media.save();
const savedMedia = await MediaModel.save(mediaTable, mediaCode, mData.Title, mData.Released, mData.Poster);
return res.status(201).json(media);
} catch (err) {
return res.status(500).json({ message: 'Error when creating media' });
@@ -72,12 +72,11 @@ export default {
* mediaController.delete()
*/
remove: async function (req: Request, res: Response) {
const id = req.body.code;
const code = req.body.code;
try {
const MediaModel = req.baseUrl.includes('movies') ? MovieModel : SeriesModel;
const media = await MediaModel.findOneAndDelete({ code: id });
const mediaTable = req.baseUrl.includes('movies') ? Table.movies : Table.series;
const media = await MediaModel.findOneAndDelete(mediaTable, code);
if (!media) {
return res.status(404).json({ message: 'No such media' });
}