Use db value

This commit is contained in:
mahek 2025-07-28 09:46:26 +02:00
parent 31147014a0
commit 6dd506eb6e
2 changed files with 64 additions and 14 deletions

View file

@ -1,21 +1,32 @@
const axios = require('axios'); const axios = require('axios');
const config = require('../../config/radarr'); const Settings = require('../models/Settings');
// Client API pour Radarr // Fonction pour créer un client Radarr pour un utilisateur spécifique
const radarrClient = axios.create({ const createRadarrClient = async (userId) => {
baseURL: config.baseURL, const settings = await Settings.findOne({ user: userId });
headers: { if (!settings || !settings.radarr || !settings.radarr.url || !settings.radarr.apiKey) {
'X-Api-Key': config.apiKey throw new Error('Paramètres Radarr non configurés');
} }
});
return axios.create({
baseURL: settings.radarr.url,
headers: {
'X-Api-Key': settings.radarr.apiKey
}
});
};
// Récupérer tous les films // Récupérer tous les films
exports.getAllMovies = async (req, res) => { exports.getAllMovies = async (req, res) => {
try { try {
const radarrClient = await createRadarrClient(req.user.id);
const response = await radarrClient.get('/movie'); const response = await radarrClient.get('/movie');
res.json(response.data); res.json(response.data);
} catch (error) { } catch (error) {
console.error('Erreur lors de la récupération des films:', error); console.error('Erreur lors de la récupération des films:', error);
if (error.message === 'Paramètres Radarr non configurés') {
return res.status(400).json({ message: error.message });
}
res.status(500).json({ message: 'Erreur lors de la récupération des films' }); res.status(500).json({ message: 'Erreur lors de la récupération des films' });
} }
}; };
@ -23,11 +34,15 @@ exports.getAllMovies = async (req, res) => {
// Récupérer les films manquants // Récupérer les films manquants
exports.getMissingMovies = async (req, res) => { exports.getMissingMovies = async (req, res) => {
try { try {
const radarrClient = await createRadarrClient(req.user.id);
const response = await radarrClient.get('/movie'); const response = await radarrClient.get('/movie');
const missingMovies = response.data.filter(movie => !movie.hasFile); const missingMovies = response.data.filter(movie => !movie.hasFile);
res.json(missingMovies); res.json(missingMovies);
} catch (error) { } catch (error) {
console.error('Erreur lors de la récupération des films manquants:', error); console.error('Erreur lors de la récupération des films manquants:', error);
if (error.message === 'Paramètres Radarr non configurés') {
return res.status(400).json({ message: error.message });
}
res.status(500).json({ message: 'Erreur lors de la récupération des films manquants' }); res.status(500).json({ message: 'Erreur lors de la récupération des films manquants' });
} }
}; };
@ -35,6 +50,7 @@ exports.getMissingMovies = async (req, res) => {
// Récupérer les films à venir // Récupérer les films à venir
exports.getUpcomingMovies = async (req, res) => { exports.getUpcomingMovies = async (req, res) => {
try { try {
const radarrClient = await createRadarrClient(req.user.id);
const today = new Date(); const today = new Date();
const response = await radarrClient.get('/movie'); const response = await radarrClient.get('/movie');
@ -46,6 +62,9 @@ exports.getUpcomingMovies = async (req, res) => {
res.json(upcomingMovies); res.json(upcomingMovies);
} catch (error) { } catch (error) {
console.error('Erreur lors de la récupération des films à venir:', error); console.error('Erreur lors de la récupération des films à venir:', error);
if (error.message === 'Paramètres Radarr non configurés') {
return res.status(400).json({ message: error.message });
}
res.status(500).json({ message: 'Erreur lors de la récupération des films à venir' }); res.status(500).json({ message: 'Erreur lors de la récupération des films à venir' });
} }
}; };
@ -53,10 +72,14 @@ exports.getUpcomingMovies = async (req, res) => {
// Récupérer l'historique des téléchargements // Récupérer l'historique des téléchargements
exports.getHistory = async (req, res) => { exports.getHistory = async (req, res) => {
try { try {
const radarrClient = await createRadarrClient(req.user.id);
const response = await radarrClient.get('/history'); const response = await radarrClient.get('/history');
res.json(response.data); res.json(response.data);
} catch (error) { } catch (error) {
console.error('Erreur lors de la récupération de l\'historique:', error); console.error('Erreur lors de la récupération de l\'historique:', error);
if (error.message === 'Paramètres Radarr non configurés') {
return res.status(400).json({ message: error.message });
}
res.status(500).json({ message: 'Erreur lors de la récupération de l\'historique' }); res.status(500).json({ message: 'Erreur lors de la récupération de l\'historique' });
} }
}; };
@ -64,6 +87,7 @@ exports.getHistory = async (req, res) => {
// Récupérer le calendrier // Récupérer le calendrier
exports.getCalendar = async (req, res) => { exports.getCalendar = async (req, res) => {
try { try {
const radarrClient = await createRadarrClient(req.user.id);
const { start, end } = req.query; const { start, end } = req.query;
const startDate = start || new Date().toISOString(); const startDate = start || new Date().toISOString();
const endDate = end || new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(); const endDate = end || new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString();
@ -78,6 +102,9 @@ exports.getCalendar = async (req, res) => {
res.json(response.data); res.json(response.data);
} catch (error) { } catch (error) {
console.error('Erreur lors de la récupération du calendrier:', error); console.error('Erreur lors de la récupération du calendrier:', error);
if (error.message === 'Paramètres Radarr non configurés') {
return res.status(400).json({ message: error.message });
}
res.status(500).json({ message: 'Erreur lors de la récupération du calendrier' }); res.status(500).json({ message: 'Erreur lors de la récupération du calendrier' });
} }
}; };

View file

@ -1,21 +1,32 @@
const axios = require('axios'); const axios = require('axios');
const config = require('../../config/sonarr'); const Settings = require('../models/Settings');
// Client API pour Sonarr // Fonction pour créer un client Sonarr pour un utilisateur spécifique
const sonarrClient = axios.create({ const createSonarrClient = async (userId) => {
baseURL: config.baseURL, const settings = await Settings.findOne({ user: userId });
headers: { if (!settings || !settings.sonarr || !settings.sonarr.url || !settings.sonarr.apiKey) {
'X-Api-Key': config.apiKey throw new Error('Paramètres Sonarr non configurés');
} }
});
return axios.create({
baseURL: settings.sonarr.url,
headers: {
'X-Api-Key': settings.sonarr.apiKey
}
});
};
// Récupérer toutes les séries // Récupérer toutes les séries
exports.getAllSeries = async (req, res) => { exports.getAllSeries = async (req, res) => {
try { try {
const sonarrClient = await createSonarrClient(req.user.id);
const response = await sonarrClient.get('/series'); const response = await sonarrClient.get('/series');
res.json(response.data); res.json(response.data);
} catch (error) { } catch (error) {
console.error('Erreur lors de la récupération des séries:', error); console.error('Erreur lors de la récupération des séries:', error);
if (error.message === 'Paramètres Sonarr non configurés') {
return res.status(400).json({ message: error.message });
}
res.status(500).json({ message: 'Erreur lors de la récupération des séries' }); res.status(500).json({ message: 'Erreur lors de la récupération des séries' });
} }
}; };
@ -23,10 +34,14 @@ exports.getAllSeries = async (req, res) => {
// Récupérer les séries manquantes // Récupérer les séries manquantes
exports.getMissingSeries = async (req, res) => { exports.getMissingSeries = async (req, res) => {
try { try {
const sonarrClient = await createSonarrClient(req.user.id);
const response = await sonarrClient.get('/wanted/missing'); const response = await sonarrClient.get('/wanted/missing');
res.json(response.data); res.json(response.data);
} catch (error) { } catch (error) {
console.error('Erreur lors de la récupération des séries manquantes:', error); console.error('Erreur lors de la récupération des séries manquantes:', error);
if (error.message === 'Paramètres Sonarr non configurés') {
return res.status(400).json({ message: error.message });
}
res.status(500).json({ message: 'Erreur lors de la récupération des séries manquantes' }); res.status(500).json({ message: 'Erreur lors de la récupération des séries manquantes' });
} }
}; };
@ -34,6 +49,7 @@ exports.getMissingSeries = async (req, res) => {
// Récupérer les séries à venir // Récupérer les séries à venir
exports.getUpcomingSeries = async (req, res) => { exports.getUpcomingSeries = async (req, res) => {
try { try {
const sonarrClient = await createSonarrClient(req.user.id);
const response = await sonarrClient.get('/calendar', { const response = await sonarrClient.get('/calendar', {
params: { params: {
start: new Date().toISOString(), start: new Date().toISOString(),
@ -43,6 +59,9 @@ exports.getUpcomingSeries = async (req, res) => {
res.json(response.data); res.json(response.data);
} catch (error) { } catch (error) {
console.error('Erreur lors de la récupération des séries à venir:', error); console.error('Erreur lors de la récupération des séries à venir:', error);
if (error.message === 'Paramètres Sonarr non configurés') {
return res.status(400).json({ message: error.message });
}
res.status(500).json({ message: 'Erreur lors de la récupération des séries à venir' }); res.status(500).json({ message: 'Erreur lors de la récupération des séries à venir' });
} }
}; };
@ -50,10 +69,14 @@ exports.getUpcomingSeries = async (req, res) => {
// Récupérer l'historique des téléchargements // Récupérer l'historique des téléchargements
exports.getHistory = async (req, res) => { exports.getHistory = async (req, res) => {
try { try {
const sonarrClient = await createSonarrClient(req.user.id);
const response = await sonarrClient.get('/history'); const response = await sonarrClient.get('/history');
res.json(response.data); res.json(response.data);
} catch (error) { } catch (error) {
console.error('Erreur lors de la récupération de l\'historique:', error); console.error('Erreur lors de la récupération de l\'historique:', error);
if (error.message === 'Paramètres Sonarr non configurés') {
return res.status(400).json({ message: error.message });
}
res.status(500).json({ message: 'Erreur lors de la récupération de l\'historique' }); res.status(500).json({ message: 'Erreur lors de la récupération de l\'historique' });
} }
}; };