Moved contents of seasoned_api up to root folder

This commit is contained in:
2022-08-19 01:03:27 +02:00
parent 0efc109992
commit 56262a45c8
134 changed files with 885 additions and 32 deletions

View File

@@ -0,0 +1,29 @@
const RequestRepository = require("../../../plex/requestRepository.js");
const requestRepository = new RequestRepository();
/**
* Controller: Retrieves search history of a logged in user
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function fetchRequestedController(req, res) {
// const user = req.loggedInUser;
const { status, page } = req.query;
requestRepository
.fetchRequested(status, page)
.then(requestedItems => {
res.send({
success: true,
results: requestedItems,
total_results: requestedItems.length
});
})
.catch(error => {
res.status(401).send({ success: false, message: error.message });
});
}
module.exports = fetchRequestedController;

View File

@@ -0,0 +1,12 @@
/*
* @Author: KevinMidboe
* @Date: 2017-05-03 23:26:46
* @Last Modified by: KevinMidboe
* @Last Modified time: 2018-02-06 20:54:22
*/
function hookDumpController(req, res) {
console.log(req);
}
module.exports = hookDumpController;

View File

@@ -0,0 +1,17 @@
const PlexRepository = require("../../../plex/plexRepository");
const configuration = require("../../../config/configuration").getInstance();
const plexRepository = new PlexRepository(configuration.get("plex", "ip"));
function playingController(req, res) {
plexRepository
.nowPlaying()
.then(movies => {
res.send(movies);
})
.catch(error => {
res.status(500).send({ success: false, message: error.message });
});
}
module.exports = playingController;

View File

@@ -0,0 +1,24 @@
const RequestRepository = require("../../../plex/requestRepository");
const requestRepository = new RequestRepository();
/**
* Controller: Retrieve information for a movie
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function readRequestController(req, res) {
const mediaId = req.params.mediaId;
const { type } = req.query;
requestRepository
.lookup(mediaId, type)
.then(movies => {
res.send(movies);
})
.catch(error => {
res.status(404).send({ success: false, message: error.message });
});
}
module.exports = readRequestController;

View File

@@ -0,0 +1,32 @@
const configuration = require("../../../config/configuration").getInstance();
const Plex = require("../../../plex/plex");
const plex = new Plex(configuration.get("plex", "ip"));
/**
* Controller: Search plex for movies, shows and episodes by query
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function searchPlexController(req, res) {
const { query, type } = req.query;
plex
.search(query, type)
.then(movies => {
if (movies.length > 0) {
res.send(movies);
} else {
res
.status(404)
.send({
success: false,
message: "Search query did not give any results from plex."
});
}
})
.catch(error => {
res.status(500).send({ success: false, message: error.message });
});
}
module.exports = searchPlexController;

View File

@@ -0,0 +1,35 @@
const PlexRepository = require("../../../plex/plexRepository");
const configuration = require("../../../config/configuration").getInstance();
const plexRepository = new PlexRepository(configuration.get("plex", "ip"));
/**
* Controller: Search for media and check existence
* in plex by query and page
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function searchMediaController(req, res) {
const { query } = req.query;
plexRepository
.search(query)
.then(media => {
if (media !== undefined || media.length > 0) {
res.send(media);
} else {
res
.status(404)
.send({
success: false,
message: "Search query did not return any results."
});
}
})
.catch(error => {
res.status(500).send({ success: false, message: error.message });
});
}
module.exports = searchMediaController;

View File

@@ -0,0 +1,24 @@
const SearchHistory = require("../../../searchHistory/searchHistory");
const Cache = require("../../../tmdb/cache");
const RequestRepository = require("../../../plex/requestRepository.js");
const cache = new Cache();
const requestRepository = new RequestRepository(cache);
const searchHistory = new SearchHistory();
function searchRequestController(req, res) {
const { query, page, type } = req.query;
const username = req.loggedInUser ? req.loggedInUser.username : null;
Promise.resolve()
.then(() => searchHistory.create(username, query))
.then(() => requestRepository.search(query, page, type))
.then(searchResult => {
res.send(searchResult);
})
.catch(error => {
res.status(500).send({ success: false, message: error.message });
});
}
module.exports = searchRequestController;

View File

@@ -0,0 +1,61 @@
const configuration = require("../../../config/configuration").getInstance();
const RequestRepository = require("../../../request/request");
const TMDB = require("../../../tmdb/tmdb");
const tmdb = new TMDB(configuration.get("tmdb", "apiKey"));
const request = new RequestRepository();
const tmdbMovieInfo = id => {
return tmdb.movieInfo(id);
};
const tmdbShowInfo = id => {
return tmdb.showInfo(id);
};
/**
* Controller: POST a media id to be donwloaded
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function submitRequestController(req, res) {
// This is the id that is the param of the url
const id = req.params.mediaId;
const type = req.query.type ? req.query.type.toLowerCase() : undefined;
const ip = req.headers["x-forwarded-for"] || req.connection.remoteAddress;
const user_agent = req.headers["user-agent"];
const username = req.loggedInUser ? req.loggedInUser.username : null;
let mediaFunction = undefined;
if (type === "movie") {
console.log("movie");
mediaFunction = tmdbMovieInfo;
} else if (type === "show") {
console.log("show");
mediaFunction = tmdbShowInfo;
} else {
res.status(422).send({
success: false,
message: 'Incorrect type. Allowed types: "movie" or "show"'
});
}
if (mediaFunction === undefined) {
res.status(200);
return;
}
mediaFunction(id)
.then(tmdbMedia =>
request.requestFromTmdb(tmdbMedia, ip, user_agent, username)
)
.then(() =>
res.send({ success: true, message: "Media item successfully requested" })
)
.catch(err =>
res.status(500).send({ success: false, message: err.message })
);
}
module.exports = submitRequestController;

View File

@@ -0,0 +1,26 @@
const RequestRepository = require("../../../plex/requestRepository");
const requestRepository = new RequestRepository();
/**
* Controller: Retrieves search history of a logged in user
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function updateRequested(req, res) {
const id = req.params.requestId;
const type = req.body.type;
const status = req.body.status;
requestRepository
.updateRequestedById(id, type, status)
.then(() => {
res.send({ success: true });
})
.catch(error => {
res.status(401).send({ success: false, message: error.message });
});
}
module.exports = updateRequested;

View File

@@ -0,0 +1,27 @@
const configuration = require("../../../config/configuration").getInstance();
const Plex = require("../../../plex/plex");
const plex = new Plex(configuration.get("plex", "ip"));
/**
* Controller: Search plex for movies, shows and episodes by query
* @param {Request} req http request variable
* @param {Response} res
* @returns {Callback}
*/
function watchDirectLink(req, res) {
const { title, year } = req.query;
plex
.getDirectLinkByTitleAndYear(title, year)
.then(plexDirectLink => {
if (plexDirectLink == false)
res.status(404).send({ success: true, link: null });
else res.status(200).send({ success: true, link: plexDirectLink });
})
.catch(error => {
res.status(500).send({ success: false, message: error.message });
});
}
module.exports = watchDirectLink;