/* tslint:disable */ /* eslint-disable */ /** * Jellyfin API * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) * * The version of the OpenAPI document: 10.8.9 * * * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). * https://openapi-generator.tech * Do not edit the class manually. */ import * as runtime from '../runtime'; import type { PlayMethod, RepeatMode, ReportPlaybackProgressRequest, ReportPlaybackStartRequest, ReportPlaybackStoppedRequest, UserItemDataDto, } from '../models'; import { PlayMethodFromJSON, PlayMethodToJSON, RepeatModeFromJSON, RepeatModeToJSON, ReportPlaybackProgressRequestFromJSON, ReportPlaybackProgressRequestToJSON, ReportPlaybackStartRequestFromJSON, ReportPlaybackStartRequestToJSON, ReportPlaybackStoppedRequestFromJSON, ReportPlaybackStoppedRequestToJSON, UserItemDataDtoFromJSON, UserItemDataDtoToJSON, } from '../models'; export interface MarkPlayedItemRequest { userId: string; itemId: string; datePlayed?: Date; } export interface MarkUnplayedItemRequest { userId: string; itemId: string; } export interface OnPlaybackProgressRequest { userId: string; itemId: string; mediaSourceId?: string; positionTicks?: number; audioStreamIndex?: number; subtitleStreamIndex?: number; volumeLevel?: number; playMethod?: PlayMethod; liveStreamId?: string; playSessionId?: string; repeatMode?: RepeatMode; isPaused?: boolean; isMuted?: boolean; } export interface OnPlaybackStartRequest { userId: string; itemId: string; mediaSourceId?: string; audioStreamIndex?: number; subtitleStreamIndex?: number; playMethod?: PlayMethod; liveStreamId?: string; playSessionId?: string; canSeek?: boolean; } export interface OnPlaybackStoppedRequest { userId: string; itemId: string; mediaSourceId?: string; nextMediaType?: string; positionTicks?: number; liveStreamId?: string; playSessionId?: string; } export interface PingPlaybackSessionRequest { playSessionId: string; } export interface ReportPlaybackProgressOperationRequest { reportPlaybackProgressRequest?: ReportPlaybackProgressRequest; } export interface ReportPlaybackStartOperationRequest { reportPlaybackStartRequest?: ReportPlaybackStartRequest; } export interface ReportPlaybackStoppedOperationRequest { reportPlaybackStoppedRequest?: ReportPlaybackStoppedRequest; } /** * */ export class PlaystateApi extends runtime.BaseAPI { /** * Marks an item as played for user. */ async markPlayedItemRaw(requestParameters: MarkPlayedItemRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.userId === null || requestParameters.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter requestParameters.userId was null or undefined when calling markPlayedItem.'); } if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling markPlayedItem.'); } const queryParameters: any = {}; if (requestParameters.datePlayed !== undefined) { queryParameters['datePlayed'] = (requestParameters.datePlayed as any).toISOString(); } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Users/{userId}/PlayedItems/{itemId}`.replace(`{${"userId"}}`, encodeURIComponent(String(requestParameters.userId))).replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))), method: 'POST', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => UserItemDataDtoFromJSON(jsonValue)); } /** * Marks an item as played for user. */ async markPlayedItem(requestParameters: MarkPlayedItemRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.markPlayedItemRaw(requestParameters, initOverrides); return await response.value(); } /** * Marks an item as unplayed for user. */ async markUnplayedItemRaw(requestParameters: MarkUnplayedItemRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.userId === null || requestParameters.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter requestParameters.userId was null or undefined when calling markUnplayedItem.'); } if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling markUnplayedItem.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Users/{userId}/PlayedItems/{itemId}`.replace(`{${"userId"}}`, encodeURIComponent(String(requestParameters.userId))).replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => UserItemDataDtoFromJSON(jsonValue)); } /** * Marks an item as unplayed for user. */ async markUnplayedItem(requestParameters: MarkUnplayedItemRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.markUnplayedItemRaw(requestParameters, initOverrides); return await response.value(); } /** * Reports a user\'s playback progress. */ async onPlaybackProgressRaw(requestParameters: OnPlaybackProgressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.userId === null || requestParameters.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter requestParameters.userId was null or undefined when calling onPlaybackProgress.'); } if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling onPlaybackProgress.'); } const queryParameters: any = {}; if (requestParameters.mediaSourceId !== undefined) { queryParameters['mediaSourceId'] = requestParameters.mediaSourceId; } if (requestParameters.positionTicks !== undefined) { queryParameters['positionTicks'] = requestParameters.positionTicks; } if (requestParameters.audioStreamIndex !== undefined) { queryParameters['audioStreamIndex'] = requestParameters.audioStreamIndex; } if (requestParameters.subtitleStreamIndex !== undefined) { queryParameters['subtitleStreamIndex'] = requestParameters.subtitleStreamIndex; } if (requestParameters.volumeLevel !== undefined) { queryParameters['volumeLevel'] = requestParameters.volumeLevel; } if (requestParameters.playMethod !== undefined) { queryParameters['playMethod'] = requestParameters.playMethod; } if (requestParameters.liveStreamId !== undefined) { queryParameters['liveStreamId'] = requestParameters.liveStreamId; } if (requestParameters.playSessionId !== undefined) { queryParameters['playSessionId'] = requestParameters.playSessionId; } if (requestParameters.repeatMode !== undefined) { queryParameters['repeatMode'] = requestParameters.repeatMode; } if (requestParameters.isPaused !== undefined) { queryParameters['isPaused'] = requestParameters.isPaused; } if (requestParameters.isMuted !== undefined) { queryParameters['isMuted'] = requestParameters.isMuted; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Users/{userId}/PlayingItems/{itemId}/Progress`.replace(`{${"userId"}}`, encodeURIComponent(String(requestParameters.userId))).replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))), method: 'POST', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Reports a user\'s playback progress. */ async onPlaybackProgress(requestParameters: OnPlaybackProgressRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.onPlaybackProgressRaw(requestParameters, initOverrides); } /** * Reports that a user has begun playing an item. */ async onPlaybackStartRaw(requestParameters: OnPlaybackStartRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.userId === null || requestParameters.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter requestParameters.userId was null or undefined when calling onPlaybackStart.'); } if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling onPlaybackStart.'); } const queryParameters: any = {}; if (requestParameters.mediaSourceId !== undefined) { queryParameters['mediaSourceId'] = requestParameters.mediaSourceId; } if (requestParameters.audioStreamIndex !== undefined) { queryParameters['audioStreamIndex'] = requestParameters.audioStreamIndex; } if (requestParameters.subtitleStreamIndex !== undefined) { queryParameters['subtitleStreamIndex'] = requestParameters.subtitleStreamIndex; } if (requestParameters.playMethod !== undefined) { queryParameters['playMethod'] = requestParameters.playMethod; } if (requestParameters.liveStreamId !== undefined) { queryParameters['liveStreamId'] = requestParameters.liveStreamId; } if (requestParameters.playSessionId !== undefined) { queryParameters['playSessionId'] = requestParameters.playSessionId; } if (requestParameters.canSeek !== undefined) { queryParameters['canSeek'] = requestParameters.canSeek; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Users/{userId}/PlayingItems/{itemId}`.replace(`{${"userId"}}`, encodeURIComponent(String(requestParameters.userId))).replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))), method: 'POST', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Reports that a user has begun playing an item. */ async onPlaybackStart(requestParameters: OnPlaybackStartRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.onPlaybackStartRaw(requestParameters, initOverrides); } /** * Reports that a user has stopped playing an item. */ async onPlaybackStoppedRaw(requestParameters: OnPlaybackStoppedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.userId === null || requestParameters.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter requestParameters.userId was null or undefined when calling onPlaybackStopped.'); } if (requestParameters.itemId === null || requestParameters.itemId === undefined) { throw new runtime.RequiredError('itemId','Required parameter requestParameters.itemId was null or undefined when calling onPlaybackStopped.'); } const queryParameters: any = {}; if (requestParameters.mediaSourceId !== undefined) { queryParameters['mediaSourceId'] = requestParameters.mediaSourceId; } if (requestParameters.nextMediaType !== undefined) { queryParameters['nextMediaType'] = requestParameters.nextMediaType; } if (requestParameters.positionTicks !== undefined) { queryParameters['positionTicks'] = requestParameters.positionTicks; } if (requestParameters.liveStreamId !== undefined) { queryParameters['liveStreamId'] = requestParameters.liveStreamId; } if (requestParameters.playSessionId !== undefined) { queryParameters['playSessionId'] = requestParameters.playSessionId; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Users/{userId}/PlayingItems/{itemId}`.replace(`{${"userId"}}`, encodeURIComponent(String(requestParameters.userId))).replace(`{${"itemId"}}`, encodeURIComponent(String(requestParameters.itemId))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Reports that a user has stopped playing an item. */ async onPlaybackStopped(requestParameters: OnPlaybackStoppedRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.onPlaybackStoppedRaw(requestParameters, initOverrides); } /** * Pings a playback session. */ async pingPlaybackSessionRaw(requestParameters: PingPlaybackSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (requestParameters.playSessionId === null || requestParameters.playSessionId === undefined) { throw new runtime.RequiredError('playSessionId','Required parameter requestParameters.playSessionId was null or undefined when calling pingPlaybackSession.'); } const queryParameters: any = {}; if (requestParameters.playSessionId !== undefined) { queryParameters['playSessionId'] = requestParameters.playSessionId; } const headerParameters: runtime.HTTPHeaders = {}; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Sessions/Playing/Ping`, method: 'POST', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Pings a playback session. */ async pingPlaybackSession(requestParameters: PingPlaybackSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.pingPlaybackSessionRaw(requestParameters, initOverrides); } /** * Reports playback progress within a session. */ async reportPlaybackProgressRaw(requestParameters: ReportPlaybackProgressOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Sessions/Playing/Progress`, method: 'POST', headers: headerParameters, query: queryParameters, body: ReportPlaybackProgressRequestToJSON(requestParameters.reportPlaybackProgressRequest), }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Reports playback progress within a session. */ async reportPlaybackProgress(requestParameters: ReportPlaybackProgressOperationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.reportPlaybackProgressRaw(requestParameters, initOverrides); } /** * Reports playback has started within a session. */ async reportPlaybackStartRaw(requestParameters: ReportPlaybackStartOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Sessions/Playing`, method: 'POST', headers: headerParameters, query: queryParameters, body: ReportPlaybackStartRequestToJSON(requestParameters.reportPlaybackStartRequest), }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Reports playback has started within a session. */ async reportPlaybackStart(requestParameters: ReportPlaybackStartOperationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.reportPlaybackStartRaw(requestParameters, initOverrides); } /** * Reports playback has stopped within a session. */ async reportPlaybackStoppedRaw(requestParameters: ReportPlaybackStoppedOperationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (this.configuration && this.configuration.apiKey) { headerParameters["Authorization"] = this.configuration.apiKey("Authorization"); // CustomAuthentication authentication } const response = await this.request({ path: `/Sessions/Playing/Stopped`, method: 'POST', headers: headerParameters, query: queryParameters, body: ReportPlaybackStoppedRequestToJSON(requestParameters.reportPlaybackStoppedRequest), }, initOverrides); return new runtime.VoidApiResponse(response); } /** * Reports playback has stopped within a session. */ async reportPlaybackStopped(requestParameters: ReportPlaybackStoppedOperationRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { await this.reportPlaybackStoppedRaw(requestParameters, initOverrides); } }