feat: sonarr edit/delete modal

This commit is contained in:
sct
2020-11-03 09:44:54 +00:00
parent 877a518415
commit 320432657e
7 changed files with 626 additions and 24 deletions

View File

@@ -3,6 +3,7 @@ import Axios, { AxiosInstance } from 'axios';
interface RadarrMovieOptions {
title: string;
qualityProfileId: number;
minimumAvailability: string;
profileId: number;
year: number;
rootFolderPath: string;
@@ -83,6 +84,7 @@ class RadarrAPI {
qualityProfileId: options.qualityProfileId,
profileId: options.profileId,
titleSlug: options.tmdbId.toString(),
minimumAvailability: options.minimumAvailability,
tmdbId: options.tmdbId,
year: options.year,
rootFolderPath: options.rootFolderPath,

View File

@@ -155,6 +155,7 @@ export class MediaRequest {
profileId: radarrSettings.activeProfileId,
qualityProfileId: radarrSettings.activeProfileId,
rootFolderPath: radarrSettings.activeDirectory,
minimumAvailability: radarrSettings.minimumAvailability,
title: movie.title,
tmdbId: movie.id,
year: Number(movie.release_date.slice(0, 4)),

View File

@@ -254,6 +254,35 @@ settingsRoutes.post('/sonarr', (req, res) => {
return res.status(201).json(newSonarr);
});
settingsRoutes.post('/sonarr/test', async (req, res, next) => {
try {
const sonarr = new SonarrAPI({
apiKey: req.body.apiKey,
url: `${req.body.useSsl ? 'https' : 'http'}://${req.body.hostname}:${
req.body.port
}${req.body.baseUrl ?? ''}/api`,
});
const profiles = await sonarr.getProfiles();
const folders = await sonarr.getRootFolders();
return res.status(200).json({
profiles,
rootFolders: folders.map((folder) => ({
id: folder.id,
path: folder.path,
})),
});
} catch (e) {
logger.error('Failed to test Sonarr', {
label: 'Sonarr',
message: e.message,
});
next({ status: 500, message: 'Failed to connect to Sonarr' });
}
});
settingsRoutes.put<{ id: string }>('/sonarr/:id', (req, res) => {
const settings = getSettings();