32 lines
1.0 KiB
TypeScript
32 lines
1.0 KiB
TypeScript
import type { IntegrationKindByCategory } from "@homarr/definitions";
|
|
import { createIntegrationAsync } from "@homarr/integrations";
|
|
import type { TdarrQueue, TdarrStatistics, TdarrWorker } from "@homarr/integrations";
|
|
|
|
import { createIntegrationRequestHandler } from "./lib/integration-request-handler";
|
|
|
|
export const mediaTranscodingRequestHandler = createIntegrationRequestHandler<
|
|
MediaTranscoding,
|
|
IntegrationKindByCategory<"mediaTranscoding">,
|
|
{ pageOffset: number; pageSize: number }
|
|
>({
|
|
async requestAsync(integration, input) {
|
|
const integrationInstance = await createIntegrationAsync(integration);
|
|
const [queue, workers, statistics] = await Promise.all([
|
|
integrationInstance.getQueueAsync(input.pageOffset, input.pageSize),
|
|
integrationInstance.getWorkersAsync(),
|
|
integrationInstance.getStatisticsAsync(),
|
|
]);
|
|
return {
|
|
queue,
|
|
workers,
|
|
statistics,
|
|
};
|
|
},
|
|
});
|
|
|
|
export interface MediaTranscoding {
|
|
queue: TdarrQueue;
|
|
workers: TdarrWorker[];
|
|
statistics: TdarrStatistics;
|
|
}
|