managerr/backend/controllers/radarrController.js
2025-07-25 17:51:32 +02:00

83 lines
2.6 KiB
JavaScript

const axios = require('axios');
const config = require('../../config/radarr');
// Client API pour Radarr
const radarrClient = axios.create({
baseURL: config.baseURL,
headers: {
'X-Api-Key': config.apiKey
}
});
// Récupérer tous les films
exports.getAllMovies = async (req, res) => {
try {
const response = await radarrClient.get('/movie');
res.json(response.data);
} catch (error) {
console.error('Erreur lors de la récupération des films:', error);
res.status(500).json({ message: 'Erreur lors de la récupération des films' });
}
};
// Récupérer les films manquants
exports.getMissingMovies = async (req, res) => {
try {
const response = await radarrClient.get('/movie');
const missingMovies = response.data.filter(movie => !movie.hasFile);
res.json(missingMovies);
} catch (error) {
console.error('Erreur lors de la récupération des films manquants:', error);
res.status(500).json({ message: 'Erreur lors de la récupération des films manquants' });
}
};
// Récupérer les films à venir
exports.getUpcomingMovies = async (req, res) => {
try {
const today = new Date();
const response = await radarrClient.get('/movie');
const upcomingMovies = response.data.filter(movie => {
const releaseDate = new Date(movie.digitalRelease || movie.physicalRelease || movie.inCinemas);
return releaseDate > today;
});
res.json(upcomingMovies);
} catch (error) {
console.error('Erreur lors de la récupération des films à venir:', error);
res.status(500).json({ message: 'Erreur lors de la récupération des films à venir' });
}
};
// Récupérer l'historique des téléchargements
exports.getHistory = async (req, res) => {
try {
const response = await radarrClient.get('/history');
res.json(response.data);
} catch (error) {
console.error('Erreur lors de la récupération de l\'historique:', error);
res.status(500).json({ message: 'Erreur lors de la récupération de l\'historique' });
}
};
// Récupérer le calendrier
exports.getCalendar = async (req, res) => {
try {
const { start, end } = req.query;
const startDate = start || new Date().toISOString();
const endDate = end || new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString();
const response = await radarrClient.get('/calendar', {
params: {
start: startDate,
end: endDate
}
});
res.json(response.data);
} catch (error) {
console.error('Erreur lors de la récupération du calendrier:', error);
res.status(500).json({ message: 'Erreur lors de la récupération du calendrier' });
}
};