diff --git a/src/apps/dashboard/features/activity/api/useLogEntries.ts b/src/apps/dashboard/features/activity/api/useLogEntries.ts index 40853a31ed..42ad9cab07 100644 --- a/src/apps/dashboard/features/activity/api/useLogEntries.ts +++ b/src/apps/dashboard/features/activity/api/useLogEntries.ts @@ -1,17 +1,17 @@ -import type { ActivityLogApiGetLogEntriesRequest } from '@jellyfin/sdk/lib/generated-client/api/activity-log-api'; +import type { SystemApiGetLogEntriesRequest } from '@jellyfin/sdk/lib/generated-client/api/system-api'; import type { AxiosRequestConfig } from 'axios'; import type { Api } from '@jellyfin/sdk'; -import { getActivityLogApi } from '@jellyfin/sdk/lib/utils/api/activity-log-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; const fetchLogEntries = async ( api: Api, - requestParams?: ActivityLogApiGetLogEntriesRequest, + requestParams?: SystemApiGetLogEntriesRequest, options?: AxiosRequestConfig ) => { - const response = await getActivityLogApi(api).getLogEntries(requestParams, { + const response = await getSystemApi(api).getLogEntries(requestParams, { signal: options?.signal }); @@ -19,7 +19,7 @@ const fetchLogEntries = async ( }; export const useLogEntries = ( - requestParams: ActivityLogApiGetLogEntriesRequest + requestParams: SystemApiGetLogEntriesRequest ) => { const { api } = useApi(); return useQuery({ diff --git a/src/apps/dashboard/features/devices/api/useDeleteDevice.ts b/src/apps/dashboard/features/devices/api/useDeleteDevice.ts index 0caefe2b18..44f5e18a25 100644 --- a/src/apps/dashboard/features/devices/api/useDeleteDevice.ts +++ b/src/apps/dashboard/features/devices/api/useDeleteDevice.ts @@ -1,5 +1,5 @@ -import type { DevicesApiDeleteDeviceRequest } from '@jellyfin/sdk/lib/generated-client/api/devices-api'; -import { getDevicesApi } from '@jellyfin/sdk/lib/utils/api/devices-api'; +import type { DeviceApiDeleteDeviceRequest } from '@jellyfin/sdk/lib/generated-client/api/device-api'; +import { getDeviceApi } from '@jellyfin/sdk/lib/utils/api/device-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -10,8 +10,8 @@ export const useDeleteDevice = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: DevicesApiDeleteDeviceRequest) => ( - getDevicesApi(api!) + mutationFn: (params: DeviceApiDeleteDeviceRequest) => ( + getDeviceApi(api!) .deleteDevice(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/devices/api/useDevices.ts b/src/apps/dashboard/features/devices/api/useDevices.ts index a97664ad3d..628b817ea8 100644 --- a/src/apps/dashboard/features/devices/api/useDevices.ts +++ b/src/apps/dashboard/features/devices/api/useDevices.ts @@ -1,7 +1,7 @@ -import type { DevicesApiGetDevicesRequest } from '@jellyfin/sdk/lib/generated-client/api/devices-api'; +import type { DeviceApiGetDevicesRequest } from '@jellyfin/sdk/lib/generated-client/api/device-api'; import type { AxiosRequestConfig } from 'axios'; import type { Api } from '@jellyfin/sdk'; -import { getDevicesApi } from '@jellyfin/sdk/lib/utils/api/devices-api'; +import { getDeviceApi } from '@jellyfin/sdk/lib/utils/api/device-api'; import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -10,10 +10,10 @@ export const QUERY_KEY = 'Devices'; const fetchDevices = async ( api: Api, - requestParams?: DevicesApiGetDevicesRequest, + requestParams?: DeviceApiGetDevicesRequest, options?: AxiosRequestConfig ) => { - const response = await getDevicesApi(api).getDevices(requestParams, { + const response = await getDeviceApi(api).getDevices(requestParams, { signal: options?.signal }); @@ -21,7 +21,7 @@ const fetchDevices = async ( }; export const useDevices = ( - requestParams: DevicesApiGetDevicesRequest + requestParams: DeviceApiGetDevicesRequest ) => { const { api } = useApi(); return useQuery({ diff --git a/src/apps/dashboard/features/devices/api/useUpdateDevice.ts b/src/apps/dashboard/features/devices/api/useUpdateDevice.ts index eb9ad7f94c..1852375c88 100644 --- a/src/apps/dashboard/features/devices/api/useUpdateDevice.ts +++ b/src/apps/dashboard/features/devices/api/useUpdateDevice.ts @@ -1,5 +1,5 @@ -import type { DevicesApiUpdateDeviceOptionsRequest } from '@jellyfin/sdk/lib/generated-client/api/devices-api'; -import { getDevicesApi } from '@jellyfin/sdk/lib/utils/api/devices-api'; +import type { DeviceApiUpdateDeviceOptionsRequest } from '@jellyfin/sdk/lib/generated-client/api/device-api'; +import { getDeviceApi } from '@jellyfin/sdk/lib/utils/api/device-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -10,8 +10,8 @@ export const useUpdateDevice = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: DevicesApiUpdateDeviceOptionsRequest) => ( - getDevicesApi(api!) + mutationFn: (params: DeviceApiUpdateDeviceOptionsRequest) => ( + getDeviceApi(api!) .updateDeviceOptions(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/devices/components/DeviceCard.tsx b/src/apps/dashboard/features/devices/components/DeviceCard.tsx index 31e5d6837d..72a250478c 100644 --- a/src/apps/dashboard/features/devices/components/DeviceCard.tsx +++ b/src/apps/dashboard/features/devices/components/DeviceCard.tsx @@ -1,5 +1,5 @@ import React, { useCallback, useMemo, useState } from 'react'; -import type { SessionInfo } from '@jellyfin/sdk/lib/generated-client/models/session-info'; +import type { SessionInfoDto } from '@jellyfin/sdk/lib/generated-client/models/session-info-dto'; import Typography from '@mui/material/Typography'; import Card from '@mui/material/Card'; import CardMedia from '@mui/material/CardMedia'; @@ -27,7 +27,7 @@ import InputDialog from 'components/InputDialog'; import { useSendMessage } from '../../sessions/api/useSendMessage'; type DeviceCardProps = { - device: SessionInfo; + device: SessionInfoDto; }; const DeviceCard = ({ device }: DeviceCardProps) => { diff --git a/src/apps/dashboard/features/keys/api/useApiKeys.ts b/src/apps/dashboard/features/keys/api/useApiKeys.ts index e8f50b545c..f4ab880466 100644 --- a/src/apps/dashboard/features/keys/api/useApiKeys.ts +++ b/src/apps/dashboard/features/keys/api/useApiKeys.ts @@ -1,5 +1,5 @@ import { Api } from '@jellyfin/sdk'; -import { getApiKeyApi } from '@jellyfin/sdk/lib/utils/api/api-key-api'; +import { getAuthenticationApi } from '@jellyfin/sdk/lib/utils/api/authentication-api'; import { useQuery } from '@tanstack/react-query'; import { AxiosRequestConfig } from 'axios'; import { useApi } from 'hooks/useApi'; @@ -7,7 +7,7 @@ import { useApi } from 'hooks/useApi'; export const QUERY_KEY = 'ApiKeys'; const fetchApiKeys = async (api: Api, options?: AxiosRequestConfig) => { - const response = await getApiKeyApi(api).getKeys(options); + const response = await getAuthenticationApi(api).getKeys(options); return response.data; }; diff --git a/src/apps/dashboard/features/keys/api/useCreateKey.ts b/src/apps/dashboard/features/keys/api/useCreateKey.ts index ec7e474778..31bf324eaf 100644 --- a/src/apps/dashboard/features/keys/api/useCreateKey.ts +++ b/src/apps/dashboard/features/keys/api/useCreateKey.ts @@ -1,5 +1,5 @@ -import { ApiKeyApiCreateKeyRequest } from '@jellyfin/sdk/lib/generated-client/api/api-key-api'; -import { getApiKeyApi } from '@jellyfin/sdk/lib/utils/api/api-key-api'; +import { AuthenticationApiCreateKeyRequest } from '@jellyfin/sdk/lib/generated-client/api/authentication-api'; +import { getAuthenticationApi } from '@jellyfin/sdk/lib/utils/api/authentication-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; @@ -9,8 +9,8 @@ export const useCreateKey = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: ApiKeyApiCreateKeyRequest) => ( - getApiKeyApi(api!) + mutationFn: (params: AuthenticationApiCreateKeyRequest) => ( + getAuthenticationApi(api!) .createKey(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/keys/api/useRevokeKey.ts b/src/apps/dashboard/features/keys/api/useRevokeKey.ts index bc7dd67754..bd646222c8 100644 --- a/src/apps/dashboard/features/keys/api/useRevokeKey.ts +++ b/src/apps/dashboard/features/keys/api/useRevokeKey.ts @@ -1,5 +1,5 @@ -import type { ApiKeyApiRevokeKeyRequest } from '@jellyfin/sdk/lib/generated-client/api/api-key-api'; -import { getApiKeyApi } from '@jellyfin/sdk/lib/utils/api/api-key-api'; +import type { AuthenticationApiRevokeKeyRequest } from '@jellyfin/sdk/lib/generated-client/api/authentication-api'; +import { getAuthenticationApi } from '@jellyfin/sdk/lib/utils/api/authentication-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; @@ -9,8 +9,8 @@ export const useRevokeKey = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: ApiKeyApiRevokeKeyRequest) => ( - getApiKeyApi(api!) + mutationFn: (params: AuthenticationApiRevokeKeyRequest) => ( + getAuthenticationApi(api!) .revokeKey(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/plugins/api/useConfigurationPages.ts b/src/apps/dashboard/features/plugins/api/useConfigurationPages.ts index 9161c89265..2d4c9695d7 100644 --- a/src/apps/dashboard/features/plugins/api/useConfigurationPages.ts +++ b/src/apps/dashboard/features/plugins/api/useConfigurationPages.ts @@ -1,6 +1,6 @@ import type { Api } from '@jellyfin/sdk'; -import type { DashboardApiGetConfigurationPagesRequest } from '@jellyfin/sdk/lib/generated-client/api/dashboard-api'; -import { getDashboardApi } from '@jellyfin/sdk/lib/utils/api/dashboard-api'; +import type { PluginApiGetConfigurationPagesRequest } from '@jellyfin/sdk/lib/generated-client/api/plugin-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -10,17 +10,17 @@ import { QueryKey } from './queryKey'; const fetchConfigurationPages = async ( api: Api, - params?: DashboardApiGetConfigurationPagesRequest, + params?: PluginApiGetConfigurationPagesRequest, options?: AxiosRequestConfig ) => { - const response = await getDashboardApi(api) + const response = await getPluginApi(api) .getConfigurationPages(params, options); return response.data; }; const getConfigurationPagesQuery = ( api?: Api, - params?: DashboardApiGetConfigurationPagesRequest + params?: PluginApiGetConfigurationPagesRequest ) => queryOptions({ queryKey: [ QueryKey.ConfigurationPages, params?.enableInMainMenu ], queryFn: ({ signal }) => fetchConfigurationPages(api!, params, { signal }), @@ -28,7 +28,7 @@ const getConfigurationPagesQuery = ( }); export const useConfigurationPages = ( - params?: DashboardApiGetConfigurationPagesRequest + params?: PluginApiGetConfigurationPagesRequest ) => { const { api } = useApi(); return useQuery(getConfigurationPagesQuery(api, params)); diff --git a/src/apps/dashboard/features/plugins/api/useDisablePlugin.ts b/src/apps/dashboard/features/plugins/api/useDisablePlugin.ts index 4285213fa8..c119300168 100644 --- a/src/apps/dashboard/features/plugins/api/useDisablePlugin.ts +++ b/src/apps/dashboard/features/plugins/api/useDisablePlugin.ts @@ -1,5 +1,5 @@ -import type { PluginsApiDisablePluginRequest } from '@jellyfin/sdk/lib/generated-client/api/plugins-api'; -import { getPluginsApi } from '@jellyfin/sdk/lib/utils/api/plugins-api'; +import type { PluginApiDisablePluginRequest } from '@jellyfin/sdk/lib/generated-client/api/plugin-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -10,8 +10,8 @@ import { QueryKey } from './queryKey'; export const useDisablePlugin = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: PluginsApiDisablePluginRequest) => ( - getPluginsApi(api!) + mutationFn: (params: PluginApiDisablePluginRequest) => ( + getPluginApi(api!) .disablePlugin(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/plugins/api/useEnablePlugin.ts b/src/apps/dashboard/features/plugins/api/useEnablePlugin.ts index a89eab5c57..f52ffa4da9 100644 --- a/src/apps/dashboard/features/plugins/api/useEnablePlugin.ts +++ b/src/apps/dashboard/features/plugins/api/useEnablePlugin.ts @@ -1,5 +1,5 @@ -import type { PluginsApiEnablePluginRequest } from '@jellyfin/sdk/lib/generated-client/api/plugins-api'; -import { getPluginsApi } from '@jellyfin/sdk/lib/utils/api/plugins-api'; +import type { PluginApiEnablePluginRequest } from '@jellyfin/sdk/lib/generated-client/api/plugin-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -10,8 +10,8 @@ import { QueryKey } from './queryKey'; export const useEnablePlugin = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: PluginsApiEnablePluginRequest) => ( - getPluginsApi(api!) + mutationFn: (params: PluginApiEnablePluginRequest) => ( + getPluginApi(api!) .enablePlugin(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/plugins/api/useInstallPackage.ts b/src/apps/dashboard/features/plugins/api/useInstallPackage.ts index 93aeb1e8e7..2c5e61a3e3 100644 --- a/src/apps/dashboard/features/plugins/api/useInstallPackage.ts +++ b/src/apps/dashboard/features/plugins/api/useInstallPackage.ts @@ -1,5 +1,5 @@ -import type { PackageApiInstallPackageRequest } from '@jellyfin/sdk/lib/generated-client/api/package-api'; -import { getPackageApi } from '@jellyfin/sdk/lib/utils/api/package-api'; +import type { PluginApiInstallPackageRequest } from '@jellyfin/sdk/lib/generated-client/api/plugin-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -10,8 +10,8 @@ import { QueryKey } from './queryKey'; export const useInstallPackage = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: PackageApiInstallPackageRequest) => ( - getPackageApi(api!) + mutationFn: (params: PluginApiInstallPackageRequest) => ( + getPluginApi(api!) .installPackage(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/plugins/api/usePackageInfo.ts b/src/apps/dashboard/features/plugins/api/usePackageInfo.ts index 43ef3f9372..726ab4a41d 100644 --- a/src/apps/dashboard/features/plugins/api/usePackageInfo.ts +++ b/src/apps/dashboard/features/plugins/api/usePackageInfo.ts @@ -1,7 +1,7 @@ import { queryOptions, useQuery } from '@tanstack/react-query'; import type { Api } from '@jellyfin/sdk'; -import type { PackageApiGetPackageInfoRequest } from '@jellyfin/sdk/lib/generated-client/api/package-api'; -import { getPackageApi } from '@jellyfin/sdk/lib/utils/api/package-api'; +import type { PluginApiGetPackageInfoRequest } from '@jellyfin/sdk/lib/generated-client/api/plugin-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; import type { AxiosRequestConfig } from 'axios'; import { useApi } from 'hooks/useApi'; @@ -12,7 +12,7 @@ import type { PackageInfo } from '@jellyfin/sdk/lib/generated-client/models/pack const fetchPackageInfo = async ( api: Api, - params: PackageApiGetPackageInfoRequest, + params: PluginApiGetPackageInfoRequest, options?: AxiosRequestConfig ) => { const packagesData = queryClient.getQueryData([ QueryKey.Packages ]) as PackageInfo[]; @@ -25,14 +25,14 @@ const fetchPackageInfo = async ( } } - const response = await getPackageApi(api) + const response = await getPluginApi(api) .getPackageInfo(params, options); return response.data; }; const getPackageInfoQuery = ( api: Api | undefined, - params?: PackageApiGetPackageInfoRequest + params?: PluginApiGetPackageInfoRequest ) => queryOptions({ // Don't retry since requests for plugins not available in repos fail retry: false, @@ -42,7 +42,7 @@ const getPackageInfoQuery = ( }); export const usePackageInfo = ( - params?: PackageApiGetPackageInfoRequest + params?: PluginApiGetPackageInfoRequest ) => { const { api } = useApi(); return useQuery(getPackageInfoQuery(api, params)); diff --git a/src/apps/dashboard/features/plugins/api/usePackages.ts b/src/apps/dashboard/features/plugins/api/usePackages.ts index 45fe3e76ed..2b5d28c6b0 100644 --- a/src/apps/dashboard/features/plugins/api/usePackages.ts +++ b/src/apps/dashboard/features/plugins/api/usePackages.ts @@ -1,5 +1,5 @@ import type { Api } from '@jellyfin/sdk'; -import { getPackageApi } from '@jellyfin/sdk/lib/utils/api/package-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -11,7 +11,7 @@ const fetchPackages = async ( api: Api, options?: AxiosRequestConfig ) => { - const response = await getPackageApi(api) + const response = await getPluginApi(api) .getPackages(options); return response.data; }; @@ -29,4 +29,3 @@ export const usePackages = () => { const { api } = useApi(); return useQuery(getPackagesQuery(api)); }; - diff --git a/src/apps/dashboard/features/plugins/api/usePlugins.ts b/src/apps/dashboard/features/plugins/api/usePlugins.ts index a44ce474ee..a23f803933 100644 --- a/src/apps/dashboard/features/plugins/api/usePlugins.ts +++ b/src/apps/dashboard/features/plugins/api/usePlugins.ts @@ -1,5 +1,5 @@ import type { Api } from '@jellyfin/sdk'; -import { getPluginsApi } from '@jellyfin/sdk/lib/utils/api/plugins-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -11,8 +11,7 @@ const fetchPlugins = async ( api: Api, options?: AxiosRequestConfig ) => { - const response = await getPluginsApi(api) - .getPlugins(options); + const response = await getPluginApi(api).getPlugins(options); return response.data; }; @@ -28,4 +27,3 @@ export const usePlugins = () => { const { api } = useApi(); return useQuery(getPluginsQuery(api)); }; - diff --git a/src/apps/dashboard/features/plugins/api/useRepositories.ts b/src/apps/dashboard/features/plugins/api/useRepositories.ts index 27c5ef1fec..59674cabba 100644 --- a/src/apps/dashboard/features/plugins/api/useRepositories.ts +++ b/src/apps/dashboard/features/plugins/api/useRepositories.ts @@ -3,13 +3,13 @@ import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; import { useApi } from 'hooks/useApi'; import { QueryKey } from './queryKey'; -import { getPackageApi } from '@jellyfin/sdk/lib/utils/api/package-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; const fetchRepositories = async ( api: Api, options?: AxiosRequestConfig ) => { - const response = await getPackageApi(api) + const response = await getPluginApi(api) .getRepositories(options); return response.data; }; @@ -26,4 +26,3 @@ export const useRepositories = () => { const { api } = useApi(); return useQuery(getRepositoriesQuery(api)); }; - diff --git a/src/apps/dashboard/features/plugins/api/useSetRepositories.ts b/src/apps/dashboard/features/plugins/api/useSetRepositories.ts index 62f9589755..1851a283a8 100644 --- a/src/apps/dashboard/features/plugins/api/useSetRepositories.ts +++ b/src/apps/dashboard/features/plugins/api/useSetRepositories.ts @@ -2,14 +2,14 @@ import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; import { QueryKey } from './queryKey'; -import { getPackageApi } from '@jellyfin/sdk/lib/utils/api/package-api'; -import { PackageApiSetRepositoriesRequest } from '@jellyfin/sdk/lib/generated-client/api/package-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; +import { PluginApiSetRepositoriesRequest } from '@jellyfin/sdk/lib/generated-client/api/plugin-api'; export const useSetRepositories = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: PackageApiSetRepositoriesRequest) => ( - getPackageApi(api!) + mutationFn: (params: PluginApiSetRepositoriesRequest) => ( + getPluginApi(api!) .setRepositories(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/plugins/api/useUninstallPlugin.ts b/src/apps/dashboard/features/plugins/api/useUninstallPlugin.ts index 99ca9ec7c9..b78e33943b 100644 --- a/src/apps/dashboard/features/plugins/api/useUninstallPlugin.ts +++ b/src/apps/dashboard/features/plugins/api/useUninstallPlugin.ts @@ -1,5 +1,5 @@ -import type { PluginsApiUninstallPluginByVersionRequest } from '@jellyfin/sdk/lib/generated-client/api/plugins-api'; -import { getPluginsApi } from '@jellyfin/sdk/lib/utils/api/plugins-api'; +import type { PluginApiUninstallPluginByVersionRequest } from '@jellyfin/sdk/lib/generated-client/api/plugin-api'; +import { getPluginApi } from '@jellyfin/sdk/lib/utils/api/plugin-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -10,8 +10,8 @@ import { QueryKey } from './queryKey'; export const useUninstallPlugin = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: PluginsApiUninstallPluginByVersionRequest) => ( - getPluginsApi(api!) + mutationFn: (params: PluginApiUninstallPluginByVersionRequest) => ( + getPluginApi(api!) .uninstallPluginByVersion(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/sessions/utils/getNowPlayingName.ts b/src/apps/dashboard/features/sessions/utils/getNowPlayingName.ts index 56e95e684b..4d9ad25123 100644 --- a/src/apps/dashboard/features/sessions/utils/getNowPlayingName.ts +++ b/src/apps/dashboard/features/sessions/utils/getNowPlayingName.ts @@ -1,4 +1,4 @@ -import type { SessionInfo } from '@jellyfin/sdk/lib/generated-client/models/session-info'; +import type { SessionInfoDto } from '@jellyfin/sdk/lib/generated-client/models/session-info-dto'; import itemHelper from 'components/itemHelper'; import formatDistanceToNow from 'date-fns/formatDistanceToNow'; import globalize from 'lib/globalize'; @@ -11,7 +11,7 @@ type NowPlayingInfo = { image?: string; }; -const getNowPlayingName = (session: SessionInfo): NowPlayingInfo => { +const getNowPlayingName = (session: SessionInfoDto): NowPlayingInfo => { let imgUrl = ''; const nowPlayingItem = session.NowPlayingItem; // FIXME: It seems that, sometimes, server sends date in the future, so date-fns displays messages like 'in less than a minute'. We should fix diff --git a/src/apps/dashboard/features/sessions/utils/getSessionNowPlayingStreamInfo.ts b/src/apps/dashboard/features/sessions/utils/getSessionNowPlayingStreamInfo.ts index 16f86d8ac7..18e690ddff 100644 --- a/src/apps/dashboard/features/sessions/utils/getSessionNowPlayingStreamInfo.ts +++ b/src/apps/dashboard/features/sessions/utils/getSessionNowPlayingStreamInfo.ts @@ -1,9 +1,9 @@ -import type { SessionInfo } from '@jellyfin/sdk/lib/generated-client/models/session-info'; +import type { SessionInfoDto } from '@jellyfin/sdk/lib/generated-client/models/session-info-dto'; import playmethodhelper from 'components/playback/playmethodhelper'; import globalize from 'lib/globalize'; // eslint-disable-next-line sonarjs/cognitive-complexity -const getSessionNowPlayingStreamInfo = (session: SessionInfo): string => { +const getSessionNowPlayingStreamInfo = (session: SessionInfoDto): string => { let text = ''; let showTranscodingInfo = false; const displayPlayMethod = playmethodhelper.getDisplayPlayMethod(session); diff --git a/src/apps/dashboard/features/sessions/utils/getSessionNowPlayingTime.ts b/src/apps/dashboard/features/sessions/utils/getSessionNowPlayingTime.ts index 07f55f8712..3564ee80f7 100644 --- a/src/apps/dashboard/features/sessions/utils/getSessionNowPlayingTime.ts +++ b/src/apps/dashboard/features/sessions/utils/getSessionNowPlayingTime.ts @@ -1,7 +1,7 @@ -import type { SessionInfo } from '@jellyfin/sdk/lib/generated-client/models/session-info'; +import type { SessionInfoDto } from '@jellyfin/sdk/lib/generated-client/models/session-info-dto'; import datetime from 'scripts/datetime'; -const getSessionNowPlayingTime = (session: SessionInfo) => { +const getSessionNowPlayingTime = (session: SessionInfoDto) => { const nowPlayingItem = session.NowPlayingItem; let start = '0:00'; diff --git a/src/apps/dashboard/features/tasks/api/useStartTask.ts b/src/apps/dashboard/features/tasks/api/useStartTask.ts index ef37b7e6e8..8b0a069207 100644 --- a/src/apps/dashboard/features/tasks/api/useStartTask.ts +++ b/src/apps/dashboard/features/tasks/api/useStartTask.ts @@ -1,5 +1,5 @@ -import { ScheduledTasksApiStartTaskRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-tasks-api'; -import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-tasks-api'; +import { ScheduledTaskApiStartTaskRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-task-api'; +import { getScheduledTaskApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; @@ -9,8 +9,8 @@ export const useStartTask = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: ScheduledTasksApiStartTaskRequest) => ( - getScheduledTasksApi(api!) + mutationFn: (params: ScheduledTaskApiStartTaskRequest) => ( + getScheduledTaskApi(api!) .startTask(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/tasks/api/useStopTask.ts b/src/apps/dashboard/features/tasks/api/useStopTask.ts index 30421ee6af..8b02333a08 100644 --- a/src/apps/dashboard/features/tasks/api/useStopTask.ts +++ b/src/apps/dashboard/features/tasks/api/useStopTask.ts @@ -1,5 +1,5 @@ -import { ScheduledTasksApiStartTaskRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-tasks-api'; -import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-tasks-api'; +import { ScheduledTaskApiStartTaskRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-task-api'; +import { getScheduledTaskApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; @@ -9,8 +9,8 @@ export const useStopTask = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: ScheduledTasksApiStartTaskRequest) => ( - getScheduledTasksApi(api!) + mutationFn: (params: ScheduledTaskApiStartTaskRequest) => ( + getScheduledTaskApi(api!) .stopTask(params) ), onSuccess: () => { diff --git a/src/apps/dashboard/features/tasks/api/useTask.ts b/src/apps/dashboard/features/tasks/api/useTask.ts index 9df4adaefa..86ab3165c5 100644 --- a/src/apps/dashboard/features/tasks/api/useTask.ts +++ b/src/apps/dashboard/features/tasks/api/useTask.ts @@ -1,7 +1,7 @@ -import type { ScheduledTasksApiGetTaskRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-tasks-api'; +import type { ScheduledTaskApiGetTaskRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-task-api'; import type { AxiosRequestConfig } from 'axios'; import type { Api } from '@jellyfin/sdk'; -import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-tasks-api'; +import { getScheduledTaskApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task-api'; import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -9,15 +9,15 @@ import { QUERY_KEY } from './useTasks'; const fetchTask = async ( api: Api, - params: ScheduledTasksApiGetTaskRequest, + params: ScheduledTaskApiGetTaskRequest, options?: AxiosRequestConfig ) => { - const response = await getScheduledTasksApi(api).getTask(params, options); + const response = await getScheduledTaskApi(api).getTask(params, options); return response.data; }; -export const useTask = (params: ScheduledTasksApiGetTaskRequest) => { +export const useTask = (params: ScheduledTaskApiGetTaskRequest) => { const { api } = useApi(); return useQuery({ diff --git a/src/apps/dashboard/features/tasks/api/useTasks.ts b/src/apps/dashboard/features/tasks/api/useTasks.ts index 7a4b6e1c4d..76114b23bc 100644 --- a/src/apps/dashboard/features/tasks/api/useTasks.ts +++ b/src/apps/dashboard/features/tasks/api/useTasks.ts @@ -1,7 +1,7 @@ -import type { ScheduledTasksApiGetTasksRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-tasks-api'; +import type { ScheduledTaskApiGetTasksRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-task-api'; import type { AxiosRequestConfig } from 'axios'; import type { Api } from '@jellyfin/sdk'; -import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-tasks-api'; +import { getScheduledTaskApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task-api'; import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -10,15 +10,15 @@ export const QUERY_KEY = 'Tasks'; const fetchTasks = async ( api: Api, - params?: ScheduledTasksApiGetTasksRequest, + params?: ScheduledTaskApiGetTasksRequest, options?: AxiosRequestConfig ) => { - const response = await getScheduledTasksApi(api).getTasks(params, options); + const response = await getScheduledTaskApi(api).getTasks(params, options); return response.data; }; -export const useTasks = (params?: ScheduledTasksApiGetTasksRequest) => { +export const useTasks = (params?: ScheduledTaskApiGetTasksRequest) => { const { api } = useApi(); return useQuery({ diff --git a/src/apps/dashboard/features/tasks/api/useUpdateTask.ts b/src/apps/dashboard/features/tasks/api/useUpdateTask.ts index dd0e8ac72b..d79f8a5268 100644 --- a/src/apps/dashboard/features/tasks/api/useUpdateTask.ts +++ b/src/apps/dashboard/features/tasks/api/useUpdateTask.ts @@ -1,5 +1,5 @@ -import { ScheduledTasksApiUpdateTaskRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-tasks-api'; -import { getScheduledTasksApi } from '@jellyfin/sdk/lib/utils/api/scheduled-tasks-api'; +import { ScheduledTaskApiUpdateTaskRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-task-api'; +import { getScheduledTaskApi } from '@jellyfin/sdk/lib/utils/api/scheduled-task-api'; import { useMutation } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import { queryClient } from 'utils/query/queryClient'; @@ -9,8 +9,8 @@ export const useUpdateTask = () => { const { api } = useApi(); return useMutation({ - mutationFn: (params: ScheduledTasksApiUpdateTaskRequest) => ( - getScheduledTasksApi(api!) + mutationFn: (params: ScheduledTaskApiUpdateTaskRequest) => ( + getScheduledTaskApi(api!) .updateTask(params) ), onSuccess: (_data, params) => { diff --git a/src/apps/dashboard/features/tasks/hooks/useLiveTasks.ts b/src/apps/dashboard/features/tasks/hooks/useLiveTasks.ts index c0e98a1030..a6f2a2fecc 100644 --- a/src/apps/dashboard/features/tasks/hooks/useLiveTasks.ts +++ b/src/apps/dashboard/features/tasks/hooks/useLiveTasks.ts @@ -1,11 +1,11 @@ import { useEffect } from 'react'; import { useApi } from 'hooks/useApi'; import { QUERY_KEY, useTasks } from '../api/useTasks'; -import type { ScheduledTasksApiGetTasksRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-tasks-api'; +import type { ScheduledTaskApiGetTasksRequest } from '@jellyfin/sdk/lib/generated-client/api/scheduled-task-api'; import { queryClient } from 'utils/query/queryClient'; import { OutboundWebSocketMessageType } from '@jellyfin/sdk/lib/websocket'; -const useLiveTasks = (params: ScheduledTasksApiGetTasksRequest) => { +const useLiveTasks = (params: ScheduledTaskApiGetTasksRequest) => { const { api } = useApi(); const tasksQuery = useTasks(params); diff --git a/src/apps/dashboard/features/users/api/useChannels.ts b/src/apps/dashboard/features/users/api/useChannels.ts index ebf2db0439..65449a178f 100644 --- a/src/apps/dashboard/features/users/api/useChannels.ts +++ b/src/apps/dashboard/features/users/api/useChannels.ts @@ -1,17 +1,17 @@ import { Api } from '@jellyfin/sdk'; import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; -import { getChannelsApi } from '@jellyfin/sdk/lib/utils/api/channels-api'; -import { ChannelsApiGetChannelsRequest } from '@jellyfin/sdk/lib/generated-client/api/channels-api'; +import { getChannelApi } from '@jellyfin/sdk/lib/utils/api/channel-api'; +import { ChannelApiGetChannelsRequest } from '@jellyfin/sdk/lib/generated-client/api/channel-api'; import type { AxiosRequestConfig } from 'axios'; -const fetchChannels = async (api: Api, params?: ChannelsApiGetChannelsRequest, options?: AxiosRequestConfig) => { - const response = await getChannelsApi(api).getChannels(params, options); +const fetchChannels = async (api: Api, params?: ChannelApiGetChannelsRequest, options?: AxiosRequestConfig) => { + const response = await getChannelApi(api).getChannels(params, options); return response.data; }; -export const useChannels = (params?: ChannelsApiGetChannelsRequest) => { +export const useChannels = (params?: ChannelApiGetChannelsRequest) => { const { api } = useApi(); return useQuery({ diff --git a/src/apps/dashboard/features/users/api/useNetworkConfig.ts b/src/apps/dashboard/features/users/api/useNetworkConfig.ts index 9b06ca64f9..8993135d88 100644 --- a/src/apps/dashboard/features/users/api/useNetworkConfig.ts +++ b/src/apps/dashboard/features/users/api/useNetworkConfig.ts @@ -1,12 +1,12 @@ import { Api } from '@jellyfin/sdk'; import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import type { AxiosRequestConfig } from 'axios'; import type { NetworkConfiguration } from '@jellyfin/sdk/lib/generated-client/models/network-configuration'; const fetchNetworkConfig = async (api: Api, options?: AxiosRequestConfig) => { - const response = await getConfigurationApi(api).getNamedConfiguration({ key: 'network' }, options); + const response = await getSystemApi(api).getNamedConfiguration({ key: 'network' }, options); return response.data as NetworkConfiguration; }; diff --git a/src/apps/dashboard/routes/branding/index.tsx b/src/apps/dashboard/routes/branding/index.tsx index b087a1c901..6918ef089c 100644 --- a/src/apps/dashboard/routes/branding/index.tsx +++ b/src/apps/dashboard/routes/branding/index.tsx @@ -1,5 +1,5 @@ -import type { BrandingOptions } from '@jellyfin/sdk/lib/generated-client/models/branding-options'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import type { BrandingOptionsDto } from '@jellyfin/sdk/lib/generated-client/models/branding-options-dto'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { getImageApi } from '@jellyfin/sdk/lib/utils/api/image-api'; import Delete from '@mui/icons-material/Delete'; import Upload from '@mui/icons-material/Upload'; @@ -39,13 +39,13 @@ export const action = async ({ request }: ActionFunctionArgs) => { const formData = await request.formData(); const data = Object.fromEntries(formData); - const brandingOptions: BrandingOptions = { + const brandingOptions: BrandingOptionsDto = { CustomCss: data.CustomCss?.toString(), LoginDisclaimer: data.LoginDisclaimer?.toString(), SplashscreenEnabled: data.SplashscreenEnabled?.toString() === 'on' }; - await getConfigurationApi(api) + await getSystemApi(api) .updateNamedConfiguration({ key: BRANDING_CONFIG_KEY, body: JSON.stringify(brandingOptions) @@ -150,7 +150,7 @@ export const Component = () => { const setSplashscreenEnabled = useCallback(async (_: React.ChangeEvent, isEnabled: boolean) => { setIsSplashscreenEnabled(isEnabled); - await getConfigurationApi(api!) + await getSystemApi(api!) .updateNamedConfiguration({ key: BRANDING_CONFIG_KEY, body: JSON.stringify({ diff --git a/src/apps/dashboard/routes/devices/index.tsx b/src/apps/dashboard/routes/devices/index.tsx index 42a3b1b6a8..46f656f1ef 100644 --- a/src/apps/dashboard/routes/devices/index.tsx +++ b/src/apps/dashboard/routes/devices/index.tsx @@ -77,7 +77,7 @@ export const Component = () => { const onConfirmDelete = useCallback(() => { if (pendingDeleteDeviceId) { deleteDevice.mutate({ - id: pendingDeleteDeviceId + id: [pendingDeleteDeviceId] }, { onSettled: onCloseDeleteConfirmDialog }); @@ -97,7 +97,7 @@ export const Component = () => { Promise .all(devices.map(item => { if (api && item.Id && api.deviceInfo.id === item.Id) { - return deleteDevice.mutateAsync({ id: item.Id }); + return deleteDevice.mutateAsync({ id: [item.Id] }); } return Promise.resolve(); })) diff --git a/src/apps/dashboard/routes/libraries/display.tsx b/src/apps/dashboard/routes/libraries/display.tsx index 06cb6eb5de..26a977b17b 100644 --- a/src/apps/dashboard/routes/libraries/display.tsx +++ b/src/apps/dashboard/routes/libraries/display.tsx @@ -12,7 +12,7 @@ import TextField from '@mui/material/TextField'; import Typography from '@mui/material/Typography'; import Loading from 'components/loading/LoadingComponent'; import Page from 'components/Page'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { QUERY_KEY as CONFIG_QUERY_KEY, useConfiguration } from 'hooks/useConfiguration'; import { QUERY_KEY as NAMED_CONFIG_QUERY_KEY, useNamedConfiguration } from 'hooks/useNamedConfiguration'; import globalize from 'lib/globalize'; @@ -31,7 +31,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { const formData = await request.formData(); const data = Object.fromEntries(formData); - const { data: config } = await getConfigurationApi(api).getConfiguration(); + const { data: config } = await getSystemApi(api).getConfiguration(); const metadataConfig: MetadataConfiguration = { UseFileCreationTimeForDateAdded: data.DateAddedBehavior.toString() === '1' @@ -43,10 +43,10 @@ export const action = async ({ request }: ActionFunctionArgs) => { config.EnableGroupingShowsIntoCollections = data.GroupShowsIntoCollections?.toString() === 'on'; config.EnableExternalContentInSuggestions = data.EnableExternalContentInSuggestions?.toString() === 'on'; - await getConfigurationApi(api) + await getSystemApi(api) .updateConfiguration({ serverConfiguration: config }); - await getConfigurationApi(api) + await getSystemApi(api) .updateNamedConfiguration({ key: CONFIG_KEY, body: metadataConfig }); void queryClient.invalidateQueries({ diff --git a/src/apps/dashboard/routes/libraries/metadata.tsx b/src/apps/dashboard/routes/libraries/metadata.tsx index a1d7c69a3d..4b6ad4d71f 100644 --- a/src/apps/dashboard/routes/libraries/metadata.tsx +++ b/src/apps/dashboard/routes/libraries/metadata.tsx @@ -1,5 +1,5 @@ import { ImageResolution } from '@jellyfin/sdk/lib/generated-client/models/image-resolution'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import Alert from '@mui/material/Alert'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; @@ -27,14 +27,14 @@ export const action = async ({ request }: ActionFunctionArgs) => { const formData = await request.formData(); const data = Object.fromEntries(formData); - const { data: config } = await getConfigurationApi(api).getConfiguration(); + const { data: config } = await getSystemApi(api).getConfiguration(); config.PreferredMetadataLanguage = data.Language.toString(); config.MetadataCountryCode = data.Country.toString(); config.DummyChapterDuration = parseInt(data.DummyChapterDuration.toString(), 10); config.ChapterImageResolution = data.ChapterImageResolution.toString() as ImageResolution; - await getConfigurationApi(api) + await getSystemApi(api) .updateConfiguration({ serverConfiguration: config }); void queryClient.invalidateQueries({ diff --git a/src/apps/dashboard/routes/libraries/nfo.tsx b/src/apps/dashboard/routes/libraries/nfo.tsx index 7a108fd1b4..b282d4ac05 100644 --- a/src/apps/dashboard/routes/libraries/nfo.tsx +++ b/src/apps/dashboard/routes/libraries/nfo.tsx @@ -1,4 +1,4 @@ -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import Alert from '@mui/material/Alert'; import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; @@ -40,7 +40,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { EnableExtraThumbsDuplication: data.EnableExtraThumbsDuplication?.toString() === 'on' }; - await getConfigurationApi(api) + await getSystemApi(api) .updateNamedConfiguration({ key: CONFIG_KEY, body: newConfig }); void queryClient.invalidateQueries({ diff --git a/src/apps/dashboard/routes/livetv/recordings.tsx b/src/apps/dashboard/routes/livetv/recordings.tsx index b7da831544..7e2c6b2faf 100644 --- a/src/apps/dashboard/routes/livetv/recordings.tsx +++ b/src/apps/dashboard/routes/livetv/recordings.tsx @@ -21,7 +21,7 @@ import Checkbox from '@mui/material/Checkbox'; import FormHelperText from '@mui/material/FormHelperText'; import Button from '@mui/material/Button'; import { ServerConnections } from 'lib/jellyfin-apiclient'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { queryClient } from 'utils/query/queryClient'; import { ActionData } from 'types/actionData'; @@ -33,7 +33,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { const data = await request.json() as LiveTvOptions; - await getConfigurationApi(api) + await getSystemApi(api) .updateNamedConfiguration({ key: CONFIG_KEY, body: data }); void queryClient.invalidateQueries({ diff --git a/src/apps/dashboard/routes/logs/index.tsx b/src/apps/dashboard/routes/logs/index.tsx index f44b7a6155..113115f7ff 100644 --- a/src/apps/dashboard/routes/logs/index.tsx +++ b/src/apps/dashboard/routes/logs/index.tsx @@ -1,5 +1,5 @@ import React, { ChangeEvent, useCallback, useEffect, useState } from 'react'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import Loading from 'components/loading/LoadingComponent'; import Page from 'components/Page'; import globalize from 'lib/globalize'; @@ -24,7 +24,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { if (!api) throw new Error('No Api instance available'); const formData = await request.formData(); - const { data: config } = await getConfigurationApi(api).getConfiguration(); + const { data: config } = await getSystemApi(api).getConfiguration(); const enableWarningMessage = formData.get('EnableWarningMessage'); config.EnableSlowResponseWarning = enableWarningMessage === 'on'; @@ -34,7 +34,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { config.SlowResponseThresholdMs = parseInt(responseTime.toString(), 10); } - await getConfigurationApi(api) + await getSystemApi(api) .updateConfiguration({ serverConfiguration: config }); return { diff --git a/src/apps/dashboard/routes/networking/index.tsx b/src/apps/dashboard/routes/networking/index.tsx index ab35582567..9dcf79f47f 100644 --- a/src/apps/dashboard/routes/networking/index.tsx +++ b/src/apps/dashboard/routes/networking/index.tsx @@ -21,7 +21,7 @@ import DirectoryBrowser from 'components/directorybrowser/directorybrowser'; import MenuItem from '@mui/material/MenuItem'; import Button from '@mui/material/Button'; import { ServerConnections } from 'lib/jellyfin-apiclient'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { QUERY_KEY as CONFIG_QUERY_KEY } from 'hooks/useConfiguration'; import { queryClient } from 'utils/query/queryClient'; import { encodePublishedServerUris, getPublishedServerUris, PublishedServerUris, splitString } from 'apps/dashboard/features/networking/utils'; @@ -69,7 +69,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { newConfig.PublishedServerUriBySubnet = encodePublishedServerUris(publishedServerUri); - await getConfigurationApi(api) + await getSystemApi(api) .updateNamedConfiguration({ key: CONFIG_KEY, body: newConfig }); void queryClient.invalidateQueries({ diff --git a/src/apps/dashboard/routes/playback/resume.tsx b/src/apps/dashboard/routes/playback/resume.tsx index 981bd5b87b..709d39314a 100644 --- a/src/apps/dashboard/routes/playback/resume.tsx +++ b/src/apps/dashboard/routes/playback/resume.tsx @@ -12,14 +12,14 @@ import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'rea import { ActionData } from 'types/actionData'; import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration'; import Loading from 'components/loading/LoadingComponent'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { queryClient } from 'utils/query/queryClient'; export const action = async ({ request }: ActionFunctionArgs) => { const api = ServerConnections.getApi(); if (!api) throw new Error('No Api instance available'); - const { data: config } = await getConfigurationApi(api).getConfiguration(); + const { data: config } = await getSystemApi(api).getConfiguration(); const formData = await request.formData(); const minResumePercentage = formData.get('MinResumePercentage')?.toString(); @@ -34,7 +34,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { if (maxAudiobookResume) config.MaxAudiobookResume = parseInt(maxAudiobookResume, 10); if (minResumeDuration) config.MinResumeDurationSeconds = parseInt(minResumeDuration, 10); - await getConfigurationApi(api) + await getSystemApi(api) .updateConfiguration({ serverConfiguration: config }); void queryClient.invalidateQueries({ diff --git a/src/apps/dashboard/routes/playback/streaming.tsx b/src/apps/dashboard/routes/playback/streaming.tsx index 733f9b6904..5f05272158 100644 --- a/src/apps/dashboard/routes/playback/streaming.tsx +++ b/src/apps/dashboard/routes/playback/streaming.tsx @@ -9,7 +9,7 @@ import Stack from '@mui/material/Stack'; import TextField from '@mui/material/TextField'; import Typography from '@mui/material/Typography'; import { type ActionFunctionArgs, Form, useActionData, useNavigation } from 'react-router-dom'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { QUERY_KEY, useConfiguration } from 'hooks/useConfiguration'; import Loading from 'components/loading/LoadingComponent'; import { ActionData } from 'types/actionData'; @@ -19,13 +19,13 @@ export const action = async ({ request }: ActionFunctionArgs) => { const api = ServerConnections.getApi(); if (!api) throw new Error('No Api instance available'); - const { data: config } = await getConfigurationApi(api).getConfiguration(); + const { data: config } = await getSystemApi(api).getConfiguration(); const formData = await request.formData(); const bitrateLimit = formData.get('StreamingBitrateLimit')?.toString(); config.RemoteClientBitrateLimit = Math.trunc(1e6 * parseFloat(bitrateLimit || '0')); - await getConfigurationApi(api) + await getSystemApi(api) .updateConfiguration({ serverConfiguration: config }); void queryClient.invalidateQueries({ diff --git a/src/apps/dashboard/routes/playback/transcoding.tsx b/src/apps/dashboard/routes/playback/transcoding.tsx index 13b4a02c39..13da3e666b 100644 --- a/src/apps/dashboard/routes/playback/transcoding.tsx +++ b/src/apps/dashboard/routes/playback/transcoding.tsx @@ -24,7 +24,7 @@ import { QUERY_KEY, useNamedConfiguration } from 'hooks/useNamedConfiguration'; import type { EncodingOptions } from '@jellyfin/sdk/lib/generated-client/models/encoding-options'; import { HardwareAccelerationType } from '@jellyfin/sdk/lib/generated-client/models/hardware-acceleration-type'; import { ServerConnections } from 'lib/jellyfin-apiclient'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { queryClient } from 'utils/query/queryClient'; import { ActionData } from 'types/actionData'; import { CODECS, HEVC_REXT_DECODING_TYPES, HEVC_VP9_HW_DECODING_TYPES } from 'apps/dashboard/features/playback/constants/codecs'; @@ -38,7 +38,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { const data = await request.json() as EncodingOptions; - await getConfigurationApi(api) + await getSystemApi(api) .updateNamedConfiguration({ key: CONFIG_KEY, body: data }); void queryClient.invalidateQueries({ diff --git a/src/apps/dashboard/routes/playback/trickplay.tsx b/src/apps/dashboard/routes/playback/trickplay.tsx index dbeb723089..9d816b888b 100644 --- a/src/apps/dashboard/routes/playback/trickplay.tsx +++ b/src/apps/dashboard/routes/playback/trickplay.tsx @@ -17,7 +17,7 @@ import MenuItem from '@mui/material/MenuItem'; import TextField from '@mui/material/TextField'; import Button from '@mui/material/Button'; import Alert from '@mui/material/Alert'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { TrickplayScanBehavior } from '@jellyfin/sdk/lib/generated-client/models/trickplay-scan-behavior'; import { ProcessPriorityClass } from '@jellyfin/sdk/lib/generated-client/models/process-priority-class'; import { ActionData } from 'types/actionData'; @@ -30,7 +30,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { const formData = await request.formData(); const data = Object.fromEntries(formData); - const { data: config } = await getConfigurationApi(api).getConfiguration(); + const { data: config } = await getSystemApi(api).getConfiguration(); const options = config.TrickplayOptions; if (!options) throw new Error('Unexpected null TrickplayOptions'); @@ -48,7 +48,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { options.JpegQuality = parseInt(data.JpegQuality.toString() || '90', 10); options.ProcessThreads = parseInt(data.TrickplayThreads.toString() || '1', 10); - await getConfigurationApi(api) + await getSystemApi(api) .updateConfiguration({ serverConfiguration: config }); void queryClient.invalidateQueries({ diff --git a/src/apps/dashboard/routes/settings/index.tsx b/src/apps/dashboard/routes/settings/index.tsx index 878e346565..3a3a1417aa 100644 --- a/src/apps/dashboard/routes/settings/index.tsx +++ b/src/apps/dashboard/routes/settings/index.tsx @@ -22,7 +22,7 @@ import Checkbox from '@mui/material/Checkbox'; import Button from '@mui/material/Button'; import Link from '@mui/material/Link'; import DirectoryBrowser from 'components/directorybrowser/directorybrowser'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { queryClient } from 'utils/query/queryClient'; import { ActionData } from 'types/actionData'; @@ -30,7 +30,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { const api = ServerConnections.getApi(); if (!api) throw new Error('No Api instance available'); - const { data: config } = await getConfigurationApi(api).getConfiguration(); + const { data: config } = await getSystemApi(api).getConfiguration(); const formData = await request.formData(); config.ServerName = formData.get('ServerName')?.toString(); @@ -41,7 +41,7 @@ export const action = async ({ request }: ActionFunctionArgs) => { config.LibraryScanFanoutConcurrency = parseInt(formData.get('LibraryScanFanoutConcurrency')?.toString() || '0', 10); config.ParallelImageEncodingLimit = parseInt(formData.get('ParallelImageEncodingLimit')?.toString() || '0', 10); - await getConfigurationApi(api) + await getSystemApi(api) .updateConfiguration({ serverConfiguration: config }); void queryClient.invalidateQueries({ diff --git a/src/apps/legacy/controllers/favorites.js b/src/apps/legacy/controllers/favorites.js index 64078377ab..0d024639d9 100644 --- a/src/apps/legacy/controllers/favorites.js +++ b/src/apps/legacy/controllers/favorites.js @@ -2,7 +2,7 @@ import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-ite import { ImageType } from '@jellyfin/sdk/lib/generated-client/models/image-type'; import { ItemFields } from '@jellyfin/sdk/lib/generated-client/models/item-fields'; import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by'; -import { getStudiosApi } from '@jellyfin/sdk/lib/utils/api/studios-api'; +import { getStudioApi } from '@jellyfin/sdk/lib/utils/api/studio-api'; import cardBuilder from 'components/cardbuilder/cardBuilder'; import { getBackdropShape, getPortraitShape, getSquareShape } from 'components/cardbuilder/utils/shape'; @@ -208,7 +208,7 @@ function getFetchDataFn(section) { return Promise.resolve(undefined); } - return getStudiosApi(api) + return getStudioApi(api) .getStudios({ userId, isFavorite: true, diff --git a/src/apps/legacy/controllers/itemDetails/index.js b/src/apps/legacy/controllers/itemDetails/index.js index 9a6607bbc0..9154a47ba4 100755 --- a/src/apps/legacy/controllers/itemDetails/index.js +++ b/src/apps/legacy/controllers/itemDetails/index.js @@ -2,7 +2,6 @@ import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-ite import { ItemFields } from '@jellyfin/sdk/lib/generated-client/models/item-fields'; import { PersonKind } from '@jellyfin/sdk/lib/generated-client/models/person-kind'; import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; -import { getUserLibraryApi } from '@jellyfin/sdk/lib/utils/api/user-library-api'; import { intervalToDuration } from 'date-fns'; import DOMPurify from 'dompurify'; import escapeHtml from 'escape-html'; @@ -2170,7 +2169,7 @@ export default function (view, params) { return; } - getUserLibraryApi(api).getItem({ + getLibraryApi(api).getItem({ userId: apiClient?.getCurrentUserId(), itemId: selectedId }).then(function ({ data: altItem }) { diff --git a/src/apps/legacy/controllers/lyrics.js b/src/apps/legacy/controllers/lyrics.js index c35a35ef55..c91b7d6eea 100644 --- a/src/apps/legacy/controllers/lyrics.js +++ b/src/apps/legacy/controllers/lyrics.js @@ -1,4 +1,4 @@ -import { getLyricsApi } from '@jellyfin/sdk/lib/utils/api/lyrics-api'; +import { getLyricApi } from '@jellyfin/sdk/lib/utils/api/lyric-api'; import escapeHtml from 'escape-html'; import { AutoScroll } from 'apps/legacy/features/lyrics/constants/autoScroll'; @@ -137,7 +137,7 @@ export default function (view) { return; } - return getLyricsApi(api).getLyrics({ itemId }) + return getLyricApi(api).getLyrics({ itemId }) .then(({ data }) => { if (!data.Lyrics?.length) { throw new Error('No lyrics returned'); diff --git a/src/apps/legacy/features/libraries/api/useLatestMedia.ts b/src/apps/legacy/features/libraries/api/useLatestMedia.ts index f70b7e86e7..f2eec21ca9 100644 --- a/src/apps/legacy/features/libraries/api/useLatestMedia.ts +++ b/src/apps/legacy/features/libraries/api/useLatestMedia.ts @@ -1,6 +1,6 @@ import type { Api } from '@jellyfin/sdk/lib/api'; -import type { UserLibraryApiGetLatestMediaRequest } from '@jellyfin/sdk/lib/generated-client/api/user-library-api'; -import { getUserLibraryApi } from '@jellyfin/sdk/lib/utils/api/user-library-api'; +import type { LibraryApiGetLatestMediaRequest } from '@jellyfin/sdk/lib/generated-client/api/library-api'; +import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -8,17 +8,17 @@ import { useApi } from 'hooks/useApi'; const fetchLatestMedia = async ( api: Api, - params?: UserLibraryApiGetLatestMediaRequest, + params?: LibraryApiGetLatestMediaRequest, options?: AxiosRequestConfig ) => { - const response = await getUserLibraryApi(api) + const response = await getLibraryApi(api) .getLatestMedia(params, options); return response.data; }; export const getLatestMediaQuery = ( api?: Api, - params?: UserLibraryApiGetLatestMediaRequest + params?: LibraryApiGetLatestMediaRequest ) => queryOptions({ queryKey: [ 'User', params?.userId, 'LatestMedia', params ], queryFn: ({ signal }) => fetchLatestMedia(api!, params, { signal }), @@ -26,7 +26,7 @@ export const getLatestMediaQuery = ( }); export const useLatestMedia = ( - params?: UserLibraryApiGetLatestMediaRequest + params?: LibraryApiGetLatestMediaRequest ) => { const { api, user } = useApi(); return useQuery(getLatestMediaQuery(api, { diff --git a/src/apps/legacy/features/libraries/api/useNextUp.ts b/src/apps/legacy/features/libraries/api/useNextUp.ts index 5d0c81f66b..78c6bd1160 100644 --- a/src/apps/legacy/features/libraries/api/useNextUp.ts +++ b/src/apps/legacy/features/libraries/api/useNextUp.ts @@ -1,6 +1,6 @@ import type { Api } from '@jellyfin/sdk/lib/api'; -import type { TvShowsApiGetNextUpRequest } from '@jellyfin/sdk/lib/generated-client/api/tv-shows-api'; -import { getTvShowsApi } from '@jellyfin/sdk/lib/utils/api/tv-shows-api'; +import type { ShowApiGetNextUpRequest } from '@jellyfin/sdk/lib/generated-client/api/show-api'; +import { getShowApi } from '@jellyfin/sdk/lib/utils/api/show-api'; import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -8,17 +8,17 @@ import { useApi } from 'hooks/useApi'; const fetchNextUp = async ( api: Api, - params?: TvShowsApiGetNextUpRequest, + params?: ShowApiGetNextUpRequest, options?: AxiosRequestConfig ) => { - const response = await getTvShowsApi(api) + const response = await getShowApi(api) .getNextUp(params, options); return response.data; }; export const getNextUpQuery = ( api?: Api, - params?: TvShowsApiGetNextUpRequest + params?: ShowApiGetNextUpRequest ) => queryOptions({ queryKey: [ 'User', params?.userId, 'NextUp', params ], queryFn: ({ signal }) => fetchNextUp(api!, params, { signal }), @@ -26,7 +26,7 @@ export const getNextUpQuery = ( }); export const useNextUp = ( - params?: TvShowsApiGetNextUpRequest + params?: ShowApiGetNextUpRequest ) => { const { api, user } = useApi(); return useQuery(getNextUpQuery(api, { diff --git a/src/apps/legacy/features/libraries/api/useResumeItems.ts b/src/apps/legacy/features/libraries/api/useResumeItems.ts index 43488462dd..8470289ed6 100644 --- a/src/apps/legacy/features/libraries/api/useResumeItems.ts +++ b/src/apps/legacy/features/libraries/api/useResumeItems.ts @@ -1,6 +1,6 @@ import type { Api } from '@jellyfin/sdk/lib/api'; -import type { ItemsApiGetResumeItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/items-api'; -import { getItemsApi } from '@jellyfin/sdk/lib/utils/api/items-api'; +import type { LibraryApiGetResumeItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/library-api'; +import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -8,17 +8,17 @@ import { useApi } from 'hooks/useApi'; const fetchResumeItems = async ( api: Api, - params?: ItemsApiGetResumeItemsRequest, + params?: LibraryApiGetResumeItemsRequest, options?: AxiosRequestConfig ) => { - const response = await getItemsApi(api) + const response = await getLibraryApi(api) .getResumeItems(params, options); return response.data; }; export const getResumeItemsQuery = ( api?: Api, - params?: ItemsApiGetResumeItemsRequest + params?: LibraryApiGetResumeItemsRequest ) => queryOptions({ queryKey: [ 'User', params?.userId, 'ResumeItems', params ], queryFn: ({ signal }) => fetchResumeItems(api!, params, { signal }), @@ -26,7 +26,7 @@ export const getResumeItemsQuery = ( }); export const useResumeItems = ( - params?: ItemsApiGetResumeItemsRequest + params?: LibraryApiGetResumeItemsRequest ) => { const { api, user } = useApi(); return useQuery(getResumeItemsQuery(api, { diff --git a/src/apps/legacy/features/playback/utils/mediaSegmentManager.ts b/src/apps/legacy/features/playback/utils/mediaSegmentManager.ts index cedb71e541..6fd9198f35 100644 --- a/src/apps/legacy/features/playback/utils/mediaSegmentManager.ts +++ b/src/apps/legacy/features/playback/utils/mediaSegmentManager.ts @@ -1,7 +1,7 @@ import type { Api } from '@jellyfin/sdk/lib/api'; import type { MediaSegmentDto } from '@jellyfin/sdk/lib/generated-client/models/media-segment-dto'; import { MediaSegmentType } from '@jellyfin/sdk/lib/generated-client/models/media-segment-type'; -import { getMediaSegmentsApi } from '@jellyfin/sdk/lib/utils/api/media-segments-api'; +import { getMediaSegmentApi } from '@jellyfin/sdk/lib/utils/api/media-segment-api'; import type { PlaybackManager } from 'components/playback/playbackmanager'; import { TICKS_PER_MILLISECOND, TICKS_PER_SECOND } from 'constants/time'; @@ -25,7 +25,7 @@ class MediaSegmentManager extends PlaybackSubscriber { private async fetchMediaSegments(api: Api, itemId: string, includeSegmentTypes: MediaSegmentType[]) { try { - const { data: mediaSegments } = await getMediaSegmentsApi(api) + const { data: mediaSegments } = await getMediaSegmentApi(api) .getItemSegments({ itemId, includeSegmentTypes }); this.mediaSegments = mediaSegments.Items || []; } catch (err) { diff --git a/src/apps/legacy/features/search/api/fetchItemsByType.ts b/src/apps/legacy/features/search/api/fetchItemsByType.ts index ec52347dbf..fb65606600 100644 --- a/src/apps/legacy/features/search/api/fetchItemsByType.ts +++ b/src/apps/legacy/features/search/api/fetchItemsByType.ts @@ -1,16 +1,16 @@ import { Api } from '@jellyfin/sdk/lib/api'; -import { ItemsApiGetItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/items-api'; -import { getItemsApi } from '@jellyfin/sdk/lib/utils/api/items-api'; +import { LibraryApiGetItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/library-api'; +import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; import { AxiosRequestConfig } from 'axios'; import { QUERY_OPTIONS } from '../constants/queryOptions'; export const fetchItemsByType = async ( api: Api, userId?: string, - params?: ItemsApiGetItemsRequest, + params?: LibraryApiGetItemsRequest, options?: AxiosRequestConfig ) => { - const response = await getItemsApi(api).getItems( + const response = await getLibraryApi(api).getItems( { ...QUERY_OPTIONS, userId, diff --git a/src/apps/legacy/features/search/api/useArtistsSearch.ts b/src/apps/legacy/features/search/api/useArtistsSearch.ts index 4be8c70b57..b85c844d63 100644 --- a/src/apps/legacy/features/search/api/useArtistsSearch.ts +++ b/src/apps/legacy/features/search/api/useArtistsSearch.ts @@ -1,7 +1,7 @@ import { Api } from '@jellyfin/sdk'; -import { ArtistsApiGetArtistsRequest } from '@jellyfin/sdk/lib/generated-client/api/artists-api'; +import { ArtistApiGetArtistsRequest } from '@jellyfin/sdk/lib/generated-client/api/artist-api'; import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type'; -import { getArtistsApi } from '@jellyfin/sdk/lib/utils/api/artists-api'; +import { getArtistApi } from '@jellyfin/sdk/lib/utils/api/artist-api'; import { useQuery } from '@tanstack/react-query'; import { AxiosRequestConfig } from 'axios'; import { useApi } from 'hooks/useApi'; @@ -11,10 +11,10 @@ import { isMusic } from '../utils/search'; const fetchArtists = async ( api: Api, userId: string, - params?: ArtistsApiGetArtistsRequest, + params?: ArtistApiGetArtistsRequest, options?: AxiosRequestConfig ) => { - const response = await getArtistsApi(api).getArtists( + const response = await getArtistApi(api).getArtists( { ...QUERY_OPTIONS, userId, diff --git a/src/apps/legacy/features/search/api/usePeopleSearch.ts b/src/apps/legacy/features/search/api/usePeopleSearch.ts index 9fcad79f4e..cc78ca1681 100644 --- a/src/apps/legacy/features/search/api/usePeopleSearch.ts +++ b/src/apps/legacy/features/search/api/usePeopleSearch.ts @@ -5,17 +5,17 @@ import { AxiosRequestConfig } from 'axios'; import { useApi } from 'hooks/useApi'; import { QUERY_OPTIONS } from '../constants/queryOptions'; import { isMovies, isTVShows } from '../utils/search'; -import { PersonsApiGetPersonsRequest } from '@jellyfin/sdk/lib/generated-client/api/persons-api'; -import { getPersonsApi } from '@jellyfin/sdk/lib/utils/api/persons-api'; +import { PersonApiGetPersonsRequest } from '@jellyfin/sdk/lib/generated-client/api/person-api'; +import { getPersonApi } from '@jellyfin/sdk/lib/utils/api/person-api'; import { PersonKind } from '@jellyfin/sdk/lib/generated-client/models/person-kind'; const fetchPeople = async ( api: Api, userId: string, - params?: PersonsApiGetPersonsRequest, + params?: PersonApiGetPersonsRequest, options?: AxiosRequestConfig ) => { - const response = await getPersonsApi(api).getPersons( + const response = await getPersonApi(api).getPersons( { ...QUERY_OPTIONS, userId, diff --git a/src/apps/legacy/features/search/api/useProgramsSearch.ts b/src/apps/legacy/features/search/api/useProgramsSearch.ts index 23d91381b5..b76a238ea4 100644 --- a/src/apps/legacy/features/search/api/useProgramsSearch.ts +++ b/src/apps/legacy/features/search/api/useProgramsSearch.ts @@ -4,13 +4,13 @@ import { useQuery } from '@tanstack/react-query'; import { AxiosRequestConfig } from 'axios'; import { useApi } from 'hooks/useApi'; import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind'; -import { ItemsApiGetItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/items-api'; +import { LibraryApiGetItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/library-api'; import { fetchItemsByType } from './fetchItemsByType'; const fetchPrograms = async ( api: Api, userId: string, - params?: ItemsApiGetItemsRequest, + params?: LibraryApiGetItemsRequest, options?: AxiosRequestConfig ) => { const response = await fetchItemsByType( diff --git a/src/apps/legacy/features/search/api/useSearchSuggestions.ts b/src/apps/legacy/features/search/api/useSearchSuggestions.ts index 5e1a0a70ad..5efcaec6f2 100644 --- a/src/apps/legacy/features/search/api/useSearchSuggestions.ts +++ b/src/apps/legacy/features/search/api/useSearchSuggestions.ts @@ -2,7 +2,7 @@ import type { AxiosRequestConfig } from 'axios'; import type { Api } from '@jellyfin/sdk'; import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind'; import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by'; -import { getItemsApi } from '@jellyfin/sdk/lib/utils/api/items-api'; +import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; @@ -13,7 +13,7 @@ const fetchGetItems = async ( parentId?: string, options?: AxiosRequestConfig ) => { - const response = await getItemsApi(api).getItems( + const response = await getLibraryApi(api).getItems( { userId, sortBy: [ItemSortBy.IsFavoriteOrLiked, ItemSortBy.Random], diff --git a/src/apps/legacy/features/search/api/useStudiosSearch.ts b/src/apps/legacy/features/search/api/useStudiosSearch.ts index 42dd63bb0d..5f1c99c110 100644 --- a/src/apps/legacy/features/search/api/useStudiosSearch.ts +++ b/src/apps/legacy/features/search/api/useStudiosSearch.ts @@ -1,7 +1,7 @@ import { Api } from '@jellyfin/sdk'; import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type'; -import { StudiosApiGetStudiosRequest } from '@jellyfin/sdk/lib/generated-client/api/studios-api'; -import { getStudiosApi } from '@jellyfin/sdk/lib/utils/api/studios-api'; +import { StudioApiGetStudiosRequest } from '@jellyfin/sdk/lib/generated-client/api/studio-api'; +import { getStudioApi } from '@jellyfin/sdk/lib/utils/api/studio-api'; import { useQuery } from '@tanstack/react-query'; import { AxiosRequestConfig } from 'axios'; import { useApi } from 'hooks/useApi'; @@ -11,10 +11,10 @@ import { isMovies, isTVShows } from '../utils/search'; const fetchStudios = async ( api: Api, userId: string, - params?: StudiosApiGetStudiosRequest, + params?: StudioApiGetStudiosRequest, options?: AxiosRequestConfig ) => { - const response = await getStudiosApi(api).getStudios( + const response = await getStudioApi(api).getStudios( { ...QUERY_OPTIONS, userId, diff --git a/src/apps/legacy/features/search/api/useVideoSearch.ts b/src/apps/legacy/features/search/api/useVideoSearch.ts index 06eaaf25e7..392463040f 100644 --- a/src/apps/legacy/features/search/api/useVideoSearch.ts +++ b/src/apps/legacy/features/search/api/useVideoSearch.ts @@ -4,18 +4,18 @@ import { useQuery } from '@tanstack/react-query'; import { AxiosRequestConfig } from 'axios'; import { useApi } from 'hooks/useApi'; import { QUERY_OPTIONS } from '../constants/queryOptions'; -import { getItemsApi } from '@jellyfin/sdk/lib/utils/api/items-api'; +import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type'; import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind'; -import { ItemsApiGetItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/items-api'; +import { LibraryApiGetItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/library-api'; const fetchVideos = async ( api: Api, userId: string, - params?: ItemsApiGetItemsRequest, + params?: LibraryApiGetItemsRequest, options?: AxiosRequestConfig ) => { - const response = await getItemsApi(api).getItems( + const response = await getLibraryApi(api).getItems( { ...QUERY_OPTIONS, userId, diff --git a/src/apps/legacy/routes/quickConnect/index.tsx b/src/apps/legacy/routes/quickConnect/index.tsx index 217b900ae2..e042cf86ce 100644 --- a/src/apps/legacy/routes/quickConnect/index.tsx +++ b/src/apps/legacy/routes/quickConnect/index.tsx @@ -1,4 +1,4 @@ -import { getQuickConnectApi } from '@jellyfin/sdk/lib/utils/api/quick-connect-api'; +import { getAuthenticationApi } from '@jellyfin/sdk/lib/utils/api/authentication-api'; import React, { FC, FormEvent, useCallback, useState } from 'react'; import { Link, useSearchParams } from 'react-router-dom'; @@ -41,7 +41,7 @@ const QuickConnectPage: FC = () => { const normalizedCode = code.replace(/\s/g, ''); console.log('[QuickConnect] authorizing code %s as user %s', normalizedCode, userId); - getQuickConnectApi(api) + getAuthenticationApi(api) .authorizeQuickConnect({ code: normalizedCode, userId diff --git a/src/apps/modern/features/details/hooks/api/useGetItemByType.ts b/src/apps/modern/features/details/hooks/api/useGetItemByType.ts index c2966e97d4..5f09fa19b2 100644 --- a/src/apps/modern/features/details/hooks/api/useGetItemByType.ts +++ b/src/apps/modern/features/details/hooks/api/useGetItemByType.ts @@ -1,5 +1,5 @@ import type { AxiosRequestConfig } from 'axios'; -import { getUserLibraryApi } from '@jellyfin/sdk/lib/utils/api/user-library-api'; +import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; import { getLiveTvApi } from '@jellyfin/sdk/lib/utils/api/live-tv-api'; import { useQuery } from '@tanstack/react-query'; import { type JellyfinApiContext, useApi } from 'hooks/useApi'; @@ -33,7 +33,7 @@ const getItemByType = async ( ); break; default: { - response = await getUserLibraryApi(api).getItem( + response = await getLibraryApi(api).getItem( { userId: user.Id, itemId }, options ); diff --git a/src/components/itemHelper.js b/src/components/itemHelper.js index 0650481abb..e83d6f00ef 100644 --- a/src/components/itemHelper.js +++ b/src/components/itemHelper.js @@ -3,7 +3,7 @@ import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-ite import { LocationType } from '@jellyfin/sdk/lib/generated-client/models/location-type'; import { RecordingStatus } from '@jellyfin/sdk/lib/generated-client/models/recording-status'; import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type'; -import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api'; +import { getPlaylistApi } from '@jellyfin/sdk/lib/utils/api/playlist-api'; import { appHost } from './apphost'; import { AppFeature } from 'constants/appFeature'; @@ -167,7 +167,7 @@ export async function canEditPlaylist(user, item) { const api = ServerConnections.getApi(item.ServerId); try { - const { data: permissions } = await getPlaylistsApi(api) + const { data: permissions } = await getPlaylistApi(api) .getPlaylistUser({ userId: user.Id, playlistId: item.Id diff --git a/src/components/lyricseditor/lyricseditor.js b/src/components/lyricseditor/lyricseditor.js index 8c57c9a2fd..29f0af260c 100644 --- a/src/components/lyricseditor/lyricseditor.js +++ b/src/components/lyricseditor/lyricseditor.js @@ -1,6 +1,6 @@ import escapeHtml from 'escape-html'; -import { getLyricsApi } from '@jellyfin/sdk/lib/utils/api/lyrics-api'; +import { getLyricApi } from '@jellyfin/sdk/lib/utils/api/lyric-api'; import dialogHelper from '../dialogHelper/dialogHelper'; import layoutManager from '../layoutManager'; import globalize from 'lib/globalize'; @@ -26,7 +26,7 @@ let hasChanges; function downloadRemoteLyrics(context, id) { const api = ServerConnections.getApi(currentItem.ServerId); - getLyricsApi(api).downloadRemoteLyrics({ + getLyricApi(api).downloadRemoteLyrics({ itemId: currentItem.Id, lyricId: id }).then(function () { @@ -127,7 +127,7 @@ function searchForLyrics(context) { loading.show(); const api = ServerConnections.getApi(currentItem.ServerId); - getLyricsApi(api).searchRemoteLyrics({ + getLyricApi(api).searchRemoteLyrics({ itemId: currentItem.Id }).then(function (results) { renderSearchResults(context, results.data); @@ -294,7 +294,7 @@ function onDeleteLyrics(e) { function fillCurrentLyrics(context, apiClient, item) { const api = ServerConnections.getApi(apiClient.serverId()); - getLyricsApi(api).getLyrics({ + getLyricApi(api).getLyrics({ itemId: item.Id }).then((response) => { if (!response.data.Lyrics) { diff --git a/src/components/lyricsuploader/lyricsuploader.js b/src/components/lyricsuploader/lyricsuploader.js index e2e526264a..9688053bd5 100644 --- a/src/components/lyricsuploader/lyricsuploader.js +++ b/src/components/lyricsuploader/lyricsuploader.js @@ -1,5 +1,5 @@ import escapeHtml from 'escape-html'; -import { getLyricsApi } from '@jellyfin/sdk/lib/utils/api/lyrics-api'; +import { getLyricApi } from '@jellyfin/sdk/lib/utils/api/lyric-api'; import dialogHelper from '../../components/dialogHelper/dialogHelper'; import dom from '../../utils/dom'; @@ -92,7 +92,7 @@ async function onSubmit(e) { const api = ServerConnections.getApi(currentServerId); const data = await readFileAsText(file); - getLyricsApi(api).uploadLyrics({ + getLyricApi(api).uploadLyrics({ itemId: currentItemId, fileName: file.name, body: data diff --git a/src/components/playlisteditor/playlisteditor.ts b/src/components/playlisteditor/playlisteditor.ts index c96d8f64af..5ad8ec65fb 100644 --- a/src/components/playlisteditor/playlisteditor.ts +++ b/src/components/playlisteditor/playlisteditor.ts @@ -1,8 +1,7 @@ import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind'; import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by'; -import { getItemsApi } from '@jellyfin/sdk/lib/utils/api/items-api'; -import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api'; -import { getUserLibraryApi } from '@jellyfin/sdk/lib/utils/api/user-library-api'; +import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; +import { getPlaylistApi } from '@jellyfin/sdk/lib/utils/api/playlist-api'; import escapeHtml from 'escape-html'; import toast from 'components/toast/toast'; @@ -95,7 +94,7 @@ function createPlaylist(dlg: DialogElement) { if (!api) return Promise.reject(new Error('No Api instance available')); - return getPlaylistsApi(api) + return getPlaylistApi(api) .createPlaylist({ createPlaylistDto: { Name: name ?? '', @@ -133,7 +132,7 @@ function updatePlaylist(dlg: DialogElement) { const api = ServerConnections.getApi(currentServerId); if (!api) return Promise.reject(new Error('No Api instance available')); - return getPlaylistsApi(api) + return getPlaylistApi(api) .updatePlaylist({ playlistId: dlg.playlistId, updatePlaylistDto: { @@ -166,7 +165,7 @@ function addToPlaylist(dlg: DialogElement, id: string) { if (!api) return Promise.reject(new Error('No Api instance available')); - return getPlaylistsApi(api) + return getPlaylistApi(api) .addItemToPlaylist({ playlistId: id, ids: itemIds.split(','), @@ -199,7 +198,7 @@ function populatePlaylists(editorOptions: PlaylistEditorOptions, panel: DialogEl if (!api) return Promise.reject(new Error('No Api instance available')); - return getItemsApi(api) + return getLibraryApi(api) .getItems({ userId: apiClient?.getCurrentUserId(), includeItemTypes: [ BaseItemKind.Playlist ], @@ -217,7 +216,7 @@ function populatePlaylists(editorOptions: PlaylistEditorOptions, panel: DialogEl if (!item.Id || !userId) return playlist; - return getPlaylistsApi(api) + return getPlaylistApi(api) .getPlaylistUser({ playlistId: item.Id, userId @@ -352,9 +351,9 @@ function initEditor(content: DialogElement, options: PlaylistEditorOptions, item } Promise.all([ - getUserLibraryApi(api) + getLibraryApi(api) .getItem({ itemId: options.id }), - getPlaylistsApi(api) + getPlaylistApi(api) .getPlaylist({ playlistId: options.id }) ]) .then(([ { data: playlistItem }, { data: playlist } ]) => { diff --git a/src/components/shortcuts.js b/src/components/shortcuts.js index 376b1703d0..4c50d37fa2 100644 --- a/src/components/shortcuts.js +++ b/src/components/shortcuts.js @@ -1,7 +1,7 @@ /** * "Shortcut" action handlers for BaseItems. */ -import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api'; +import { getPlaylistApi } from '@jellyfin/sdk/lib/utils/api/playlist-api'; import { EventType } from 'constants/eventType'; import { ItemAction } from 'constants/itemAction'; @@ -141,7 +141,7 @@ function showContextMenu(card, options = {}) { apiClient?.getCurrentUser(), // Fetch playlist perms if item is a child of a playlist api && playlistId ? - getPlaylistsApi(api) + getPlaylistApi(api) .getPlaylistUser({ playlistId, userId: apiClient?.getCurrentUserId() diff --git a/src/hooks/api/useDisplayPreferences.ts b/src/hooks/api/useDisplayPreferences.ts index 617a4a6ae6..65209f4067 100644 --- a/src/hooks/api/useDisplayPreferences.ts +++ b/src/hooks/api/useDisplayPreferences.ts @@ -1,6 +1,6 @@ import type { Api } from '@jellyfin/sdk/lib/api'; -import { DisplayPreferencesApiGetDisplayPreferencesRequest } from '@jellyfin/sdk/lib/generated-client/api/display-preferences-api'; -import { getDisplayPreferencesApi } from '@jellyfin/sdk/lib/utils/api/display-preferences-api'; +import { DisplayPreferenceApiGetDisplayPreferencesRequest } from '@jellyfin/sdk/lib/generated-client/api/display-preference-api'; +import { getDisplayPreferenceApi } from '@jellyfin/sdk/lib/utils/api/display-preference-api'; import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -8,17 +8,17 @@ import { useApi } from 'hooks/useApi'; const fetchDisplayPreferences = async ( api: Api, - params: DisplayPreferencesApiGetDisplayPreferencesRequest, + params: DisplayPreferenceApiGetDisplayPreferencesRequest, options?: AxiosRequestConfig ) => { - const response = await getDisplayPreferencesApi(api) + const response = await getDisplayPreferenceApi(api) .getDisplayPreferences(params, options); return response.data; }; export const getDisplayPreferencesQuery = ( api?: Api, - params?: DisplayPreferencesApiGetDisplayPreferencesRequest + params?: DisplayPreferenceApiGetDisplayPreferencesRequest ) => queryOptions({ queryKey: [ 'User', params?.userId, 'DisplayPreferences', params?.displayPreferencesId, params?.client ], queryFn: ({ signal }) => fetchDisplayPreferences(api!, params!, { signal }), @@ -26,7 +26,7 @@ export const getDisplayPreferencesQuery = ( }); export const useDisplayPreferences = ( - params: DisplayPreferencesApiGetDisplayPreferencesRequest + params: DisplayPreferenceApiGetDisplayPreferencesRequest ) => { const { api, user } = useApi(); return useQuery(getDisplayPreferencesQuery(api, { diff --git a/src/hooks/api/useUserViews.ts b/src/hooks/api/useUserViews.ts index 2684da471b..baff3dbdf4 100644 --- a/src/hooks/api/useUserViews.ts +++ b/src/hooks/api/useUserViews.ts @@ -1,6 +1,6 @@ import type { Api } from '@jellyfin/sdk/lib/api'; -import type { UserViewsApiGetUserViewsRequest } from '@jellyfin/sdk/lib/generated-client/api/user-views-api'; -import { getUserViewsApi } from '@jellyfin/sdk/lib/utils/api/user-views-api'; +import type { UserViewApiGetUserViewsRequest } from '@jellyfin/sdk/lib/generated-client/api/user-view-api'; +import { getUserViewApi } from '@jellyfin/sdk/lib/utils/api/user-view-api'; import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -8,17 +8,17 @@ import { useApi } from '../useApi'; const fetchUserViews = async ( api: Api, - params?: UserViewsApiGetUserViewsRequest, + params?: UserViewApiGetUserViewsRequest, options?: AxiosRequestConfig ) => { - const response = await getUserViewsApi(api) + const response = await getUserViewApi(api) .getUserViews(params, options); return response.data; }; export const getUserViewsQuery = ( api?: Api, - params?: UserViewsApiGetUserViewsRequest + params?: UserViewApiGetUserViewsRequest ) => queryOptions({ queryKey: [ 'User', params?.userId, 'Views', params ], queryFn: ({ signal }) => fetchUserViews(api!, params, { signal }), @@ -26,7 +26,7 @@ export const getUserViewsQuery = ( }); export const useUserViews = ( - params?: UserViewsApiGetUserViewsRequest + params?: UserViewApiGetUserViewsRequest ) => { const { api, user } = useApi(); return useQuery(getUserViewsQuery(api, { diff --git a/src/hooks/api/videosHooks/useDeleteAlternateSources.ts b/src/hooks/api/videosHooks/useDeleteAlternateSources.ts index b1ee47ff6d..dc4dde6056 100644 --- a/src/hooks/api/videosHooks/useDeleteAlternateSources.ts +++ b/src/hooks/api/videosHooks/useDeleteAlternateSources.ts @@ -1,24 +1,24 @@ -import type { VideosApiDeleteAlternateSourcesRequest } from '@jellyfin/sdk/lib/generated-client/api/videos-api'; -import { getVideosApi } from '@jellyfin/sdk/lib/utils/api/videos-api'; +import type { VideoApiDeleteAlternateSourcesRequest } from '@jellyfin/sdk/lib/generated-client/api/video-api'; +import { getVideoApi } from '@jellyfin/sdk/lib/utils/api/video-api'; import { useMutation } from '@tanstack/react-query'; import { type JellyfinApiContext, useApi } from 'hooks/useApi'; const deleteAlternateSources = async ( apiContext: JellyfinApiContext, - params: VideosApiDeleteAlternateSourcesRequest + params: VideoApiDeleteAlternateSourcesRequest ) => { const { api } = apiContext; if (!api) throw new Error('[deleteAlternateSources] No API instance available'); - const response = await getVideosApi(api).deleteAlternateSources(params); + const response = await getVideoApi(api).deleteAlternateSources(params); return response.data; }; export const useDeleteAlternateSources = () => { const apiContext = useApi(); return useMutation({ - mutationFn: (params: VideosApiDeleteAlternateSourcesRequest) => + mutationFn: (params: VideoApiDeleteAlternateSourcesRequest) => deleteAlternateSources(apiContext, params) }); }; diff --git a/src/hooks/useConfiguration.ts b/src/hooks/useConfiguration.ts index 81ddb79f03..5d373c1739 100644 --- a/src/hooks/useConfiguration.ts +++ b/src/hooks/useConfiguration.ts @@ -1,5 +1,5 @@ import { Api } from '@jellyfin/sdk'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import type { AxiosRequestConfig } from 'axios'; @@ -7,7 +7,7 @@ import type { AxiosRequestConfig } from 'axios'; export const QUERY_KEY = 'Configuration'; export const fetchConfiguration = async (api: Api, options?: AxiosRequestConfig) => { - const response = await getConfigurationApi(api).getConfiguration(options); + const response = await getSystemApi(api).getConfiguration(options); return response.data; }; diff --git a/src/hooks/useFetchItems.ts b/src/hooks/useFetchItems.ts index 38dd298cb3..a55381f57a 100644 --- a/src/hooks/useFetchItems.ts +++ b/src/hooks/useFetchItems.ts @@ -1,6 +1,6 @@ import type { AxiosRequestConfig } from 'axios'; -import type { ItemsApiGetItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/items-api'; -import type { PlaylistsApiMoveItemRequest } from '@jellyfin/sdk/lib/generated-client/api/playlists-api'; +import type { LibraryApiGetItemsRequest } from '@jellyfin/sdk/lib/generated-client/api/library-api'; +import type { PlaylistApiMoveItemRequest } from '@jellyfin/sdk/lib/generated-client/api/playlist-api'; import type { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind'; import { ImageType } from '@jellyfin/sdk/lib/generated-client/models/image-type'; import { ItemFields } from '@jellyfin/sdk/lib/generated-client/models/item-fields'; @@ -8,18 +8,17 @@ import { ItemFilter } from '@jellyfin/sdk/lib/generated-client/models/item-filte import { PersonKind } from '@jellyfin/sdk/lib/generated-client/models/person-kind'; import { ItemSortBy } from '@jellyfin/sdk/lib/generated-client/models/item-sort-by'; import { SortOrder } from '@jellyfin/sdk/lib/generated-client/models/sort-order'; -import { getArtistsApi } from '@jellyfin/sdk/lib/utils/api/artists-api'; +import { getArtistApi } from '@jellyfin/sdk/lib/utils/api/artist-api'; import { getFilterApi } from '@jellyfin/sdk/lib/utils/api/filter-api'; -import { getGenresApi } from '@jellyfin/sdk/lib/utils/api/genres-api'; -import { getItemsApi } from '@jellyfin/sdk/lib/utils/api/items-api'; -import { getMoviesApi } from '@jellyfin/sdk/lib/utils/api/movies-api'; -import { getPersonsApi } from '@jellyfin/sdk/lib/utils/api/persons-api'; -import { getStudiosApi } from '@jellyfin/sdk/lib/utils/api/studios-api'; -import { getTvShowsApi } from '@jellyfin/sdk/lib/utils/api/tv-shows-api'; -import { getUserLibraryApi } from '@jellyfin/sdk/lib/utils/api/user-library-api'; -import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api'; +import { getGenreApi } from '@jellyfin/sdk/lib/utils/api/genre-api'; +import { getMovieApi } from '@jellyfin/sdk/lib/utils/api/movie-api'; +import { getPersonApi } from '@jellyfin/sdk/lib/utils/api/person-api'; +import { getStudioApi } from '@jellyfin/sdk/lib/utils/api/studio-api'; +import { getShowApi } from '@jellyfin/sdk/lib/utils/api/show-api'; +import { getPlaylistApi } from '@jellyfin/sdk/lib/utils/api/playlist-api'; +import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; import { getLiveTvApi } from '@jellyfin/sdk/lib/utils/api/live-tv-api'; -import { getPlaystateApi } from '@jellyfin/sdk/lib/utils/api/playstate-api'; +import { getUserDataApi } from '@jellyfin/sdk/lib/utils/api/user-data-api'; import { useMutation, useQuery } from '@tanstack/react-query'; import datetime from 'scripts/datetime'; import globalize from 'lib/globalize'; @@ -37,12 +36,12 @@ import type { ItemDto } from 'types/base/models/item-dto'; const fetchGetItems = async ( currentApi: JellyfinApiContext, - parametersOptions: ItemsApiGetItemsRequest, + parametersOptions: LibraryApiGetItemsRequest, options?: AxiosRequestConfig ) => { const { api, user } = currentApi; if (api && user?.Id) { - const response = await getItemsApi(api).getItems( + const response = await getLibraryApi(api).getItems( { userId: user.Id, ...parametersOptions @@ -55,7 +54,7 @@ const fetchGetItems = async ( } }; -export const useGetItems = (parametersOptions: ItemsApiGetItemsRequest) => { +export const useGetItems = (parametersOptions: LibraryApiGetItemsRequest) => { const currentApi = useApi(); const isRandom = Boolean(parametersOptions.sortBy?.includes(ItemSortBy.Random)); @@ -82,7 +81,7 @@ const fetchGetMovieRecommendations = async ( ) => { const { api, user } = currentApi; if (api && user?.Id) { - const response = await getMoviesApi(api).getMovieRecommendations( + const response = await getMovieApi(api).getMovieRecommendations( { userId: user.Id, fields: [ @@ -118,7 +117,7 @@ const fetchGetGenres = async ( ) => { const { api, user } = currentApi; if (api && user?.Id) { - const response = await getGenresApi(api).getGenres( + const response = await getGenreApi(api).getGenres( { userId: user.Id, sortBy: [ItemSortBy.SortName], @@ -153,7 +152,7 @@ const fetchGetStudios = async ( ) => { const { api, user } = currentApi; if (api && user?.Id) { - const response = await getStudiosApi(api).getStudios( + const response = await getStudioApi(api).getStudios( { userId: user.Id, includeItemTypes: itemType, @@ -236,7 +235,7 @@ const fetchGetItemsViewByType = async ( let response; switch (viewType) { case LibraryTab.AlbumArtists: { - response = await getArtistsApi(api).getAlbumArtists( + response = await getArtistApi(api).getAlbumArtists( { userId: user.Id, parentId: parentId ?? undefined, @@ -257,7 +256,7 @@ const fetchGetItemsViewByType = async ( break; } case LibraryTab.Artists: { - response = await getArtistsApi(api).getArtists( + response = await getArtistApi(api).getArtists( { userId: user.Id, parentId: parentId ?? undefined, @@ -278,7 +277,7 @@ const fetchGetItemsViewByType = async ( break; } case LibraryTab.Authors: { - response = await getPersonsApi(api).getPersons( + response = await getPersonApi(api).getPersons( { userId: user.Id, parentId: parentId ?? undefined, @@ -297,7 +296,7 @@ const fetchGetItemsViewByType = async ( break; } case LibraryTab.Studios: - response = await getStudiosApi(api).getStudios( + response = await getStudioApi(api).getStudios( { userId: user.Id, parentId: parentId ?? undefined, @@ -330,7 +329,7 @@ const fetchGetItemsViewByType = async ( break; } case LibraryTab.Folders: { - response = await getItemsApi(api).getItems( + response = await getLibraryApi(api).getItems( { userId: user.Id, recursive: false, @@ -366,7 +365,7 @@ const fetchGetItemsViewByType = async ( ); break; default: { - response = await getItemsApi(api).getItems( + response = await getLibraryApi(api).getItems( { userId: user.Id, recursive: true, @@ -454,11 +453,11 @@ export const useGetItemsViewByType = ( const fetchPlaylistsMoveItem = async ( currentApi: JellyfinApiContext, - requestParameters: PlaylistsApiMoveItemRequest + requestParameters: PlaylistApiMoveItemRequest ) => { const { api, user } = currentApi; if (api && user?.Id) { - const response = await getPlaylistsApi(api).moveItem({ + const response = await getPlaylistApi(api).moveItem({ ...requestParameters }); return response.data; @@ -468,7 +467,7 @@ const fetchPlaylistsMoveItem = async ( export const usePlaylistsMoveItemMutation = () => { const currentApi = useApi(); return useMutation({ - mutationFn: (requestParameters: PlaylistsApiMoveItemRequest) => + mutationFn: (requestParameters: PlaylistApiMoveItemRequest) => fetchPlaylistsMoveItem(currentApi, requestParameters ) }); }; @@ -528,7 +527,7 @@ const fetchGetGroupsUpcomingEpisodes = async ( ) => { const { api, user } = currentApi; if (api && user?.Id) { - const response = await getTvShowsApi(api).getUpcomingEpisodes( + const response = await getShowApi(api).getUpcomingEpisodes( { userId: user.Id, limit: 25, @@ -574,13 +573,13 @@ const fetchUpdateFavoriteStatus = async ( const { api, user } = currentApi; if (api && user?.Id) { if (isFavorite) { - const response = await getUserLibraryApi(api).unmarkFavoriteItem({ + const response = await getUserDataApi(api).unmarkFavoriteItem({ userId: user.Id, itemId: itemId }); return response.data.IsFavorite; } else { - const response = await getUserLibraryApi(api).markFavoriteItem({ + const response = await getUserDataApi(api).markFavoriteItem({ userId: user.Id, itemId: itemId }); @@ -610,13 +609,13 @@ const fetchUpdatePlayedState = async ( const { api, user } = currentApi; if (api && user?.Id) { if (isPlayed) { - const response = await getPlaystateApi(api).markUnplayedItem({ + const response = await getUserDataApi(api).markUnplayedItem({ userId: user.Id, itemId: itemId }); return response.data.Played; } else { - const response = await getPlaystateApi(api).markPlayedItem({ + const response = await getUserDataApi(api).markPlayedItem({ userId: user.Id, itemId: itemId }); @@ -809,7 +808,7 @@ const fetchGetSectionItems = async ( } case SectionApiMethod.NextUp: { response = ( - await getTvShowsApi(api).getNextUp( + await getShowApi(api).getNextUp( { userId: user.Id, limit: 25, @@ -836,7 +835,7 @@ const fetchGetSectionItems = async ( } case SectionApiMethod.ResumeItems: { response = ( - await getItemsApi(api).getResumeItems( + await getLibraryApi(api).getResumeItems( { userId: user.Id, parentId: parentId ?? undefined, @@ -862,7 +861,7 @@ const fetchGetSectionItems = async ( } case SectionApiMethod.LatestMedia: { response = ( - await getUserLibraryApi(api).getLatestMedia( + await getLibraryApi(api).getLatestMedia( { userId: user.Id, fields: [ @@ -883,7 +882,7 @@ const fetchGetSectionItems = async ( } default: { response = ( - await getItemsApi(api).getItems( + await getLibraryApi(api).getItems( { userId: user.Id, parentId: parentId ?? undefined, diff --git a/src/hooks/useItem.ts b/src/hooks/useItem.ts index 9312568a41..ff550cea5c 100644 --- a/src/hooks/useItem.ts +++ b/src/hooks/useItem.ts @@ -1,5 +1,5 @@ import type { Api } from '@jellyfin/sdk/lib/api'; -import { getUserLibraryApi } from '@jellyfin/sdk/lib/utils/api/user-library-api'; +import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api'; import { queryOptions, useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -12,7 +12,7 @@ const fetchItem = async ( userId: string, options?: AxiosRequestConfig ) => { - const response = await getUserLibraryApi(api) + const response = await getLibraryApi(api) .getItem({ userId, itemId }, options); return response.data as ItemDto; }; diff --git a/src/hooks/useNamedConfiguration.ts b/src/hooks/useNamedConfiguration.ts index c789a50910..2107dd43d6 100644 --- a/src/hooks/useNamedConfiguration.ts +++ b/src/hooks/useNamedConfiguration.ts @@ -1,5 +1,5 @@ import { Api } from '@jellyfin/sdk'; -import { getConfigurationApi } from '@jellyfin/sdk/lib/utils/api/configuration-api'; +import { getSystemApi } from '@jellyfin/sdk/lib/utils/api/system-api'; import { useQuery } from '@tanstack/react-query'; import { useApi } from 'hooks/useApi'; import type { AxiosRequestConfig } from 'axios'; @@ -11,7 +11,7 @@ export interface NamedConfiguration { } const fetchNamedConfiguration = async (api: Api, key: string, options?: AxiosRequestConfig) => { - const response = await getConfigurationApi(api).getNamedConfiguration({ key }, options); + const response = await getSystemApi(api).getNamedConfiguration({ key }, options); return response.data; }; diff --git a/src/hooks/useQuickConnect.ts b/src/hooks/useQuickConnect.ts index 2ac8fa74a9..2c3b687539 100644 --- a/src/hooks/useQuickConnect.ts +++ b/src/hooks/useQuickConnect.ts @@ -1,4 +1,4 @@ -import { getQuickConnectApi } from '@jellyfin/sdk/lib/utils/api/quick-connect-api'; +import { getAuthenticationApi } from '@jellyfin/sdk/lib/utils/api/authentication-api'; import { useQuery } from '@tanstack/react-query'; import type { AxiosRequestConfig } from 'axios'; @@ -11,7 +11,7 @@ const fetchQuickConnectEnabled = async ( const { api } = apiContext; if (!api) throw new Error('No API instance available'); - const response = await getQuickConnectApi(api) + const response = await getAuthenticationApi(api) .getQuickConnectEnabled(options); return response.data; }; diff --git a/src/scripts/playlistViewer.js b/src/scripts/playlistViewer.js index d6eccdceec..079af07bda 100644 --- a/src/scripts/playlistViewer.js +++ b/src/scripts/playlistViewer.js @@ -1,4 +1,4 @@ -import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api'; +import { getPlaylistApi } from '@jellyfin/sdk/lib/utils/api/playlist-api'; import listView from 'components/listview/listview'; import { ServerConnections } from 'lib/jellyfin-apiclient'; @@ -39,7 +39,7 @@ async function init(page, item) { } let isEditable = false; - const { data } = await getPlaylistsApi(api) + const { data } = await getPlaylistApi(api) .getPlaylistUser({ playlistId: item.Id, userId: apiClient.getCurrentUserId() diff --git a/src/utils/image.ts b/src/utils/image.ts index 72b56abd73..633cba94ae 100644 --- a/src/utils/image.ts +++ b/src/utils/image.ts @@ -1,7 +1,7 @@ import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type'; import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind'; -import type { DeviceInfo } from '@jellyfin/sdk/lib/generated-client/models/device-info'; -import type { SessionInfo } from '@jellyfin/sdk/lib/generated-client/models/session-info'; +import type { DeviceInfoDto } from '@jellyfin/sdk/lib/generated-client/models/device-info-dto'; +import type { SessionInfoDto } from '@jellyfin/sdk/lib/generated-client/models/session-info-dto'; const BASE_DEVICE_IMAGE_URL = 'assets/img/devices/'; @@ -40,8 +40,8 @@ function getWebDeviceIcon(browser: string | null | undefined) { } } -export function getDeviceIcon(info: DeviceInfo | SessionInfo) { - switch ((info as DeviceInfo).AppName || (info as SessionInfo).Client) { +export function getDeviceIcon(info: DeviceInfoDto | SessionInfoDto) { + switch ((info as DeviceInfoDto).AppName || (info as SessionInfoDto).Client) { case 'Samsung Smart TV': return BASE_DEVICE_IMAGE_URL + 'samsungtv.svg'; case 'Xbox One': @@ -82,7 +82,7 @@ export function getDeviceIcon(info: DeviceInfo | SessionInfo) { case 'Finamp': return BASE_DEVICE_IMAGE_URL + 'finamp.svg'; case 'Jellyfin Web': - return getWebDeviceIcon((info as DeviceInfo).Name || (info as SessionInfo).DeviceName); + return getWebDeviceIcon((info as DeviceInfoDto).Name || (info as SessionInfoDto).DeviceName); default: if (info.Capabilities?.IconUrl) { try {