diff --git a/src/pages/api/modules/calendar.ts b/src/pages/api/modules/calendar.ts index 36beae2b9..7607f667c 100644 --- a/src/pages/api/modules/calendar.ts +++ b/src/pages/api/modules/calendar.ts @@ -1,7 +1,7 @@ import axios from 'axios'; import { NextApiRequest, NextApiResponse } from 'next'; import { getConfig } from '../../../tools/config/getConfig'; -import { ServiceIntegrationApiKeyType, ServiceType } from '../../../types/service'; +import { ServiceIntegrationType, ServiceType } from '../../../types/service'; /*async function Post(req: NextApiRequest, res: NextApiResponse) { // Parse req.body as a ServiceItem @@ -114,7 +114,7 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { const medias = await Promise.all( await mediaServices.map(async (service) => { - const integration = service.integration as ServiceIntegrationApiKeyType; + const integration = service.integration!; const endpoint = IntegrationTypeEndpointMap.get(integration.type); if (!endpoint) return { @@ -131,14 +131,11 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { const start = new Date(year, month - 1, 1); // First day of month const end = new Date(year, month, 0); // Last day of month - console.log( - `${origin}${endpoint}?apiKey=${integration.properties.apiKey}&end=${end}&start=${start}` - ); + const apiKey = integration.properties.find((x) => x.field === 'apiKey')?.value; + if (!apiKey) return { type: integration.type, items: [] }; return await axios .get( - `${origin}${endpoint}?apiKey=${ - integration.properties.apiKey - }&end=${end.toISOString()}&start=${start.toISOString()}` + `${origin}${endpoint}?apiKey=${apiKey}&end=${end.toISOString()}&start=${start.toISOString()}` ) .then((x) => ({ type: integration.type, items: x.data as any[] })); }) @@ -160,5 +157,3 @@ const IntegrationTypeEndpointMap = new Map; diff --git a/src/pages/api/modules/ping.ts b/src/pages/api/modules/ping.ts index 3ed773ee2..987970031 100644 --- a/src/pages/api/modules/ping.ts +++ b/src/pages/api/modules/ping.ts @@ -11,8 +11,6 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { timeout: 1, }); - console.log(response); - // Return 200 if the alive property is true if (response.alive) { return res.status(200).end(); diff --git a/src/pages/api/modules/usenet/history.ts b/src/pages/api/modules/usenet/history.ts index 028dbfe2b..99ae6f774 100644 --- a/src/pages/api/modules/usenet/history.ts +++ b/src/pages/api/modules/usenet/history.ts @@ -3,12 +3,12 @@ import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; import { NextApiRequest, NextApiResponse } from 'next'; import { Client } from 'sabnzbd-api'; -import { UsenetHistoryItem } from '../../../../modules'; import { getServiceById } from '../../../../tools/hooks/useGetServiceByType'; import { Config } from '../../../../tools/types'; import { NzbgetHistoryItem } from './nzbget/types'; import { NzbgetClient } from './nzbget/nzbget-client'; import { getConfig } from '../../../../tools/config/getConfig'; +import { UsenetHistoryItem } from '../../../../components/Dashboard/Tiles/UseNet/types'; dayjs.extend(duration); @@ -42,8 +42,10 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { const options = { host: url.hostname, port: url.port, - login: service.integration.properties.username, - hash: service.integration.properties.password, + login: + service.integration.properties.find((x) => x.field === 'username')?.value ?? undefined, + hash: + service.integration.properties.find((x) => x.field === 'password')?.value ?? undefined, }; const nzbGet = NzbgetClient(options); @@ -79,14 +81,12 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { case 'sabnzbd': { const { origin } = new URL(service.url); - if (!service.integration.properties.apiKey) { + const apiKey = service.integration.properties.find((x) => x.field === 'apiKey')?.value; + if (!apiKey) { throw new Error(`API Key for service "${service.name}" is missing`); } - const history = await new Client(origin, service.integration.properties.apiKey).history( - offset, - limit - ); + const history = await new Client(origin, apiKey).history(offset, limit); const items: UsenetHistoryItem[] = history.slots.map((slot) => ({ id: slot.nzo_id, diff --git a/src/pages/api/modules/usenet/index.ts b/src/pages/api/modules/usenet/index.ts index 3cf35a396..c2a88a332 100644 --- a/src/pages/api/modules/usenet/index.ts +++ b/src/pages/api/modules/usenet/index.ts @@ -41,8 +41,10 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { const options = { host: url.hostname, port: url.port, - login: service.integration.properties.username, - hash: service.integration.properties.password, + login: + service.integration.properties.find((x) => x.field === 'username')?.value ?? undefined, + hash: + service.integration.properties.find((x) => x.field === 'password')?.value ?? undefined, }; const nzbGet = NzbgetClient(options); @@ -72,13 +74,14 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { break; } case 'sabnzbd': { - if (!service.integration.properties.apiKey) { + const apiKey = service.integration.properties.find((x) => x.field === 'apiKey')?.value; + if (!apiKey) { throw new Error(`API Key for service "${service.name}" is missing`); } const { origin } = new URL(service.url); - const queue = await new Client(origin, service.integration.properties.apiKey).queue(0, -1); + const queue = await new Client(origin, apiKey).queue(0, -1); const [hours, minutes, seconds] = queue.timeleft.split(':'); const eta = dayjs.duration({ diff --git a/src/pages/api/modules/usenet/pause.ts b/src/pages/api/modules/usenet/pause.ts index 025055cdf..1fe245edf 100644 --- a/src/pages/api/modules/usenet/pause.ts +++ b/src/pages/api/modules/usenet/pause.ts @@ -31,8 +31,10 @@ async function Post(req: NextApiRequest, res: NextApiResponse) { const options = { host: url.hostname, port: url.port, - login: service.integration.properties.username, - hash: service.integration.properties.password, + login: + service.integration.properties.find((x) => x.field === 'username')?.value ?? undefined, + hash: + service.integration.properties.find((x) => x.field === 'password')?.value ?? undefined, }; const nzbGet = NzbgetClient(options); @@ -49,13 +51,14 @@ async function Post(req: NextApiRequest, res: NextApiResponse) { break; } case 'sabnzbd': { - if (!service.integration.properties.apiKey) { + const apiKey = service.integration.properties.find((x) => x.field === 'apiKey')?.value; + if (!apiKey) { throw new Error(`API Key for service "${service.name}" is missing`); } const { origin } = new URL(service.url); - result = await new Client(origin, service.integration.properties.apiKey).queuePause(); + result = await new Client(origin, apiKey).queuePause(); break; } default: diff --git a/src/pages/api/modules/usenet/queue.ts b/src/pages/api/modules/usenet/queue.ts index 8cea6d82d..fceb77972 100644 --- a/src/pages/api/modules/usenet/queue.ts +++ b/src/pages/api/modules/usenet/queue.ts @@ -3,7 +3,7 @@ import dayjs from 'dayjs'; import duration from 'dayjs/plugin/duration'; import { NextApiRequest, NextApiResponse } from 'next'; import { Client } from 'sabnzbd-api'; -import { UsenetQueueItem } from '../../../../modules'; +import { UsenetQueueItem } from '../../../../components/Dashboard/Tiles/UseNet/types'; import { getConfig } from '../../../../tools/config/getConfig'; import { NzbgetClient } from './nzbget/nzbget-client'; import { NzbgetQueueItem, NzbgetStatus } from './nzbget/types'; @@ -40,8 +40,10 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { const options = { host: url.hostname, port: url.port, - login: service.integration.properties.username, - hash: service.integration.properties.password, + login: + service.integration.properties.find((x) => x.field === 'username')?.value ?? undefined, + hash: + service.integration.properties.find((x) => x.field === 'password')?.value ?? undefined, }; const nzbGet = NzbgetClient(options); @@ -91,15 +93,13 @@ async function Get(req: NextApiRequest, res: NextApiResponse) { break; } case 'sabnzbd': { - if (!service.integration.properties.apiKey) { + const apiKey = service.integration.properties.find((x) => x.field === 'apiKey')?.value; + if (!apiKey) { throw new Error(`API Key for service "${service.name}" is missing`); } const { origin } = new URL(service.url); - const queue = await new Client(origin, service.integration.properties.apiKey).queue( - offset, - limit - ); + const queue = await new Client(origin, apiKey).queue(offset, limit); const items: UsenetQueueItem[] = queue.slots.map((slot) => { const [hours, minutes, seconds] = slot.timeleft.split(':'); diff --git a/src/pages/api/modules/usenet/resume.ts b/src/pages/api/modules/usenet/resume.ts index cfe2ea4fe..27ae0fd13 100644 --- a/src/pages/api/modules/usenet/resume.ts +++ b/src/pages/api/modules/usenet/resume.ts @@ -34,8 +34,10 @@ async function Post(req: NextApiRequest, res: NextApiResponse) { const options = { host: url.hostname, port: url.port, - login: service.integration.properties.username, - hash: service.integration.properties.password, + login: + service.integration.properties.find((x) => x.field === 'username')?.value ?? undefined, + hash: + service.integration.properties.find((x) => x.field === 'password')?.value ?? undefined, }; const nzbGet = NzbgetClient(options); @@ -52,13 +54,14 @@ async function Post(req: NextApiRequest, res: NextApiResponse) { break; } case 'sabnzbd': { - if (!service.integration.properties.apiKey) { + const apiKey = service.integration.properties.find((x) => x.field === 'apiKey')?.value; + if (!apiKey) { throw new Error(`API Key for service "${service.name}" is missing`); } const { origin } = new URL(service.url); - result = await new Client(origin, service.integration.properties.apiKey).queueResume(); + result = await new Client(origin, apiKey).queueResume(); break; } default: