/* tslint:disable */ // @ts-nocheck /* eslint-disable */ /** * Audius API * * The version of the OpenAPI document: 1.0 * * * 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 { AccessInfoResponse, CreatePlaylistRequestBody, CreatePlaylistResponse, FavoriteRequestBody, FollowingResponse, PlaylistResponse, PlaylistSearchResult, PlaylistTracksResponse, RepostRequestBody, TrendingPlaylistsResponse, UpdatePlaylistRequestBody, WriteResponse, } from '../models'; import { AccessInfoResponseFromJSON, AccessInfoResponseToJSON, CreatePlaylistRequestBodyFromJSON, CreatePlaylistRequestBodyToJSON, CreatePlaylistResponseFromJSON, CreatePlaylistResponseToJSON, FavoriteRequestBodyFromJSON, FavoriteRequestBodyToJSON, FollowingResponseFromJSON, FollowingResponseToJSON, PlaylistResponseFromJSON, PlaylistResponseToJSON, PlaylistSearchResultFromJSON, PlaylistSearchResultToJSON, PlaylistTracksResponseFromJSON, PlaylistTracksResponseToJSON, RepostRequestBodyFromJSON, RepostRequestBodyToJSON, TrendingPlaylistsResponseFromJSON, TrendingPlaylistsResponseToJSON, UpdatePlaylistRequestBodyFromJSON, UpdatePlaylistRequestBodyToJSON, WriteResponseFromJSON, WriteResponseToJSON, } from '../models'; export interface CreatePlaylistRequest { userId: string; metadata: CreatePlaylistRequestBody; } export interface DeletePlaylistRequest { playlistId: string; userId: string; } export interface FavoritePlaylistRequest { playlistId: string; userId: string; metadata?: FavoriteRequestBody; } export interface GetBulkPlaylistsRequest { userId?: string; id?: Array; permalink?: Array; upc?: Array; } export interface GetPlaylistRequest { playlistId: string; userId?: string; } export interface GetPlaylistAccessInfoRequest { playlistId: string; userId?: string; } export interface GetPlaylistTracksRequest { playlistId: string; } export interface GetTrendingPlaylistsRequest { offset?: number; limit?: number; userId?: string; time?: GetTrendingPlaylistsTimeEnum; type?: GetTrendingPlaylistsTypeEnum; omitTracks?: boolean; } export interface GetTrendingPlaylistsWithVersionRequest { version: string; offset?: number; limit?: number; userId?: string; time?: GetTrendingPlaylistsWithVersionTimeEnum; } export interface GetUsersFromPlaylistFavoritesRequest { playlistId: string; offset?: number; limit?: number; userId?: string; } export interface GetUsersFromPlaylistRepostsRequest { playlistId: string; offset?: number; limit?: number; userId?: string; } export interface RepostPlaylistRequest { playlistId: string; userId: string; repostRequestBody?: RepostRequestBody; } export interface SearchPlaylistsRequest { offset?: number; limit?: number; query?: string; genre?: Array; sortMethod?: SearchPlaylistsSortMethodEnum; mood?: Array; includePurchaseable?: string; hasDownloads?: string; } export interface SharePlaylistRequest { playlistId: string; userId: string; } export interface UnfavoritePlaylistRequest { playlistId: string; userId: string; } export interface UnrepostPlaylistRequest { playlistId: string; userId: string; } export interface UpdatePlaylistRequest { playlistId: string; userId: string; metadata: UpdatePlaylistRequestBody; } /** * */ export class PlaylistsApi extends runtime.BaseAPI { /** * @hidden * Creates a new playlist or album */ async createPlaylistRaw(params: CreatePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.userId === null || params.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter params.userId was null or undefined when calling createPlaylist.'); } if (params.metadata === null || params.metadata === undefined) { throw new runtime.RequiredError('metadata','Required parameter params.metadata was null or undefined when calling createPlaylist.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["write"]); if (token) { headerParameters["Authorization"] = token; } } if (!headerParameters["Authorization"] && this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("BearerAuth", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/playlists`, method: 'POST', headers: headerParameters, query: queryParameters, body: CreatePlaylistRequestBodyToJSON(params.metadata), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => CreatePlaylistResponseFromJSON(jsonValue)); } /** * Creates a new playlist or album */ async createPlaylist(params: CreatePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.createPlaylistRaw(params, initOverrides); return await response.value(); } /** * @hidden * Deletes a playlist or album */ async deletePlaylistRaw(params: DeletePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling deletePlaylist.'); } if (params.userId === null || params.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter params.userId was null or undefined when calling deletePlaylist.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["write"]); if (token) { headerParameters["Authorization"] = token; } } if (!headerParameters["Authorization"] && this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("BearerAuth", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/playlists/{playlist_id}`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => WriteResponseFromJSON(jsonValue)); } /** * Deletes a playlist or album */ async deletePlaylist(params: DeletePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.deletePlaylistRaw(params, initOverrides); return await response.value(); } /** * @hidden * Favorite a playlist */ async favoritePlaylistRaw(params: FavoritePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling favoritePlaylist.'); } if (params.userId === null || params.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter params.userId was null or undefined when calling favoritePlaylist.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["write"]); if (token) { headerParameters["Authorization"] = token; } } if (!headerParameters["Authorization"] && this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("BearerAuth", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/playlists/{playlist_id}/favorites`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'POST', headers: headerParameters, query: queryParameters, body: FavoriteRequestBodyToJSON(params.metadata), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => WriteResponseFromJSON(jsonValue)); } /** * Favorite a playlist */ async favoritePlaylist(params: FavoritePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.favoritePlaylistRaw(params, initOverrides); return await response.value(); } /** * @hidden * Gets a list of playlists by ID, UPC, or permalink */ async getBulkPlaylistsRaw(params: GetBulkPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } if (params.id) { queryParameters['id'] = params.id; } if (params.permalink) { queryParameters['permalink'] = params.permalink; } if (params.upc) { queryParameters['upc'] = params.upc; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["read"]); if (token) { headerParameters["Authorization"] = token; } } const response = await this.request({ path: `/playlists`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => PlaylistResponseFromJSON(jsonValue)); } /** * Gets a list of playlists by ID, UPC, or permalink */ async getBulkPlaylists(params: GetBulkPlaylistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getBulkPlaylistsRaw(params, initOverrides); return await response.value(); } /** * @hidden * Get a playlist by ID */ async getPlaylistRaw(params: GetPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling getPlaylist.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["read"]); if (token) { headerParameters["Authorization"] = token; } } const response = await this.request({ path: `/playlists/{playlist_id}`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => PlaylistResponseFromJSON(jsonValue)); } /** * Get a playlist by ID */ async getPlaylist(params: GetPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getPlaylistRaw(params, initOverrides); return await response.value(); } /** * @hidden * Gets the information necessary to access the playlist and what access the given user has. */ async getPlaylistAccessInfoRaw(params: GetPlaylistAccessInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling getPlaylistAccessInfo.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["read"]); if (token) { headerParameters["Authorization"] = token; } } const response = await this.request({ path: `/playlists/{playlist_id}/access-info`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => AccessInfoResponseFromJSON(jsonValue)); } /** * Gets the information necessary to access the playlist and what access the given user has. */ async getPlaylistAccessInfo(params: GetPlaylistAccessInfoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getPlaylistAccessInfoRaw(params, initOverrides); return await response.value(); } /** * @hidden * Fetch tracks within a playlist. */ async getPlaylistTracksRaw(params: GetPlaylistTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling getPlaylistTracks.'); } const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; const response = await this.request({ path: `/playlists/{playlist_id}/tracks`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => PlaylistTracksResponseFromJSON(jsonValue)); } /** * Fetch tracks within a playlist. */ async getPlaylistTracks(params: GetPlaylistTracksRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getPlaylistTracksRaw(params, initOverrides); return await response.value(); } /** * @hidden * Returns trending playlists for a time period */ async getTrendingPlaylistsRaw(params: GetTrendingPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; if (params.offset !== undefined) { queryParameters['offset'] = params.offset; } if (params.limit !== undefined) { queryParameters['limit'] = params.limit; } if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } if (params.time !== undefined) { queryParameters['time'] = params.time; } if (params.type !== undefined) { queryParameters['type'] = params.type; } if (params.omitTracks !== undefined) { queryParameters['omit_tracks'] = params.omitTracks; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["read"]); if (token) { headerParameters["Authorization"] = token; } } const response = await this.request({ path: `/playlists/trending`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => TrendingPlaylistsResponseFromJSON(jsonValue)); } /** * Returns trending playlists for a time period */ async getTrendingPlaylists(params: GetTrendingPlaylistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getTrendingPlaylistsRaw(params, initOverrides); return await response.value(); } /** * @hidden * Returns trending playlists for a time period based on the given trending version */ async getTrendingPlaylistsWithVersionRaw(params: GetTrendingPlaylistsWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.version === null || params.version === undefined) { throw new runtime.RequiredError('version','Required parameter params.version was null or undefined when calling getTrendingPlaylistsWithVersion.'); } const queryParameters: any = {}; if (params.offset !== undefined) { queryParameters['offset'] = params.offset; } if (params.limit !== undefined) { queryParameters['limit'] = params.limit; } if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } if (params.time !== undefined) { queryParameters['time'] = params.time; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["read"]); if (token) { headerParameters["Authorization"] = token; } } const response = await this.request({ path: `/playlists/trending/{version}`.replace(`{${"version"}}`, encodeURIComponent(String(params.version))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => TrendingPlaylistsResponseFromJSON(jsonValue)); } /** * Returns trending playlists for a time period based on the given trending version */ async getTrendingPlaylistsWithVersion(params: GetTrendingPlaylistsWithVersionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getTrendingPlaylistsWithVersionRaw(params, initOverrides); return await response.value(); } /** * @hidden * Get users that favorited a playlist */ async getUsersFromPlaylistFavoritesRaw(params: GetUsersFromPlaylistFavoritesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling getUsersFromPlaylistFavorites.'); } const queryParameters: any = {}; if (params.offset !== undefined) { queryParameters['offset'] = params.offset; } if (params.limit !== undefined) { queryParameters['limit'] = params.limit; } if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["read"]); if (token) { headerParameters["Authorization"] = token; } } const response = await this.request({ path: `/playlists/{playlist_id}/favorites`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => FollowingResponseFromJSON(jsonValue)); } /** * Get users that favorited a playlist */ async getUsersFromPlaylistFavorites(params: GetUsersFromPlaylistFavoritesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getUsersFromPlaylistFavoritesRaw(params, initOverrides); return await response.value(); } /** * @hidden * Get users that reposted a playlist */ async getUsersFromPlaylistRepostsRaw(params: GetUsersFromPlaylistRepostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling getUsersFromPlaylistReposts.'); } const queryParameters: any = {}; if (params.offset !== undefined) { queryParameters['offset'] = params.offset; } if (params.limit !== undefined) { queryParameters['limit'] = params.limit; } if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["read"]); if (token) { headerParameters["Authorization"] = token; } } const response = await this.request({ path: `/playlists/{playlist_id}/reposts`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => FollowingResponseFromJSON(jsonValue)); } /** * Get users that reposted a playlist */ async getUsersFromPlaylistReposts(params: GetUsersFromPlaylistRepostsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.getUsersFromPlaylistRepostsRaw(params, initOverrides); return await response.value(); } /** * @hidden * Repost a playlist */ async repostPlaylistRaw(params: RepostPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling repostPlaylist.'); } if (params.userId === null || params.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter params.userId was null or undefined when calling repostPlaylist.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["write"]); if (token) { headerParameters["Authorization"] = token; } } if (!headerParameters["Authorization"] && this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("BearerAuth", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/playlists/{playlist_id}/reposts`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'POST', headers: headerParameters, query: queryParameters, body: RepostRequestBodyToJSON(params.repostRequestBody), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => WriteResponseFromJSON(jsonValue)); } /** * Repost a playlist */ async repostPlaylist(params: RepostPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.repostPlaylistRaw(params, initOverrides); return await response.value(); } /** * @hidden * Search for a playlist */ async searchPlaylistsRaw(params: SearchPlaylistsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { const queryParameters: any = {}; if (params.offset !== undefined) { queryParameters['offset'] = params.offset; } if (params.limit !== undefined) { queryParameters['limit'] = params.limit; } if (params.query !== undefined) { queryParameters['query'] = params.query; } if (params.genre) { queryParameters['genre'] = params.genre; } if (params.sortMethod !== undefined) { queryParameters['sort_method'] = params.sortMethod; } if (params.mood) { queryParameters['mood'] = params.mood; } if (params.includePurchaseable !== undefined) { queryParameters['includePurchaseable'] = params.includePurchaseable; } if (params.hasDownloads !== undefined) { queryParameters['has_downloads'] = params.hasDownloads; } const headerParameters: runtime.HTTPHeaders = {}; const response = await this.request({ path: `/playlists/search`, method: 'GET', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => PlaylistSearchResultFromJSON(jsonValue)); } /** * Search for a playlist */ async searchPlaylists(params: SearchPlaylistsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.searchPlaylistsRaw(params, initOverrides); return await response.value(); } /** * @hidden * Record a playlist share event */ async sharePlaylistRaw(params: SharePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling sharePlaylist.'); } if (params.userId === null || params.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter params.userId was null or undefined when calling sharePlaylist.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["write"]); if (token) { headerParameters["Authorization"] = token; } } if (!headerParameters["Authorization"] && this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("BearerAuth", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/playlists/{playlist_id}/shares`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'POST', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => WriteResponseFromJSON(jsonValue)); } /** * Record a playlist share event */ async sharePlaylist(params: SharePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.sharePlaylistRaw(params, initOverrides); return await response.value(); } /** * @hidden * Unfavorite a playlist */ async unfavoritePlaylistRaw(params: UnfavoritePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling unfavoritePlaylist.'); } if (params.userId === null || params.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter params.userId was null or undefined when calling unfavoritePlaylist.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["write"]); if (token) { headerParameters["Authorization"] = token; } } if (!headerParameters["Authorization"] && this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("BearerAuth", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/playlists/{playlist_id}/favorites`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => WriteResponseFromJSON(jsonValue)); } /** * Unfavorite a playlist */ async unfavoritePlaylist(params: UnfavoritePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.unfavoritePlaylistRaw(params, initOverrides); return await response.value(); } /** * @hidden * Unrepost a playlist */ async unrepostPlaylistRaw(params: UnrepostPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling unrepostPlaylist.'); } if (params.userId === null || params.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter params.userId was null or undefined when calling unrepostPlaylist.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["write"]); if (token) { headerParameters["Authorization"] = token; } } if (!headerParameters["Authorization"] && this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("BearerAuth", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/playlists/{playlist_id}/reposts`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'DELETE', headers: headerParameters, query: queryParameters, }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => WriteResponseFromJSON(jsonValue)); } /** * Unrepost a playlist */ async unrepostPlaylist(params: UnrepostPlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.unrepostPlaylistRaw(params, initOverrides); return await response.value(); } /** * @hidden * Updates an existing playlist or album */ async updatePlaylistRaw(params: UpdatePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise> { if (params.playlistId === null || params.playlistId === undefined) { throw new runtime.RequiredError('playlistId','Required parameter params.playlistId was null or undefined when calling updatePlaylist.'); } if (params.userId === null || params.userId === undefined) { throw new runtime.RequiredError('userId','Required parameter params.userId was null or undefined when calling updatePlaylist.'); } if (params.metadata === null || params.metadata === undefined) { throw new runtime.RequiredError('metadata','Required parameter params.metadata was null or undefined when calling updatePlaylist.'); } const queryParameters: any = {}; if (params.userId !== undefined) { queryParameters['user_id'] = params.userId; } const headerParameters: runtime.HTTPHeaders = {}; headerParameters['Content-Type'] = 'application/json'; if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = await this.configuration.accessToken("OAuth2", ["write"]); if (token) { headerParameters["Authorization"] = token; } } if (!headerParameters["Authorization"] && this.configuration && (this.configuration.username !== undefined || this.configuration.password !== undefined)) { headerParameters["Authorization"] = "Basic " + btoa(this.configuration.username + ":" + this.configuration.password); } if (!headerParameters["Authorization"] && this.configuration && this.configuration.accessToken) { const token = this.configuration.accessToken; const tokenString = await token("BearerAuth", []); if (tokenString) { headerParameters["Authorization"] = `Bearer ${tokenString}`; } } const response = await this.request({ path: `/playlists/{playlist_id}`.replace(`{${"playlist_id"}}`, encodeURIComponent(String(params.playlistId))), method: 'PUT', headers: headerParameters, query: queryParameters, body: UpdatePlaylistRequestBodyToJSON(params.metadata), }, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => WriteResponseFromJSON(jsonValue)); } /** * Updates an existing playlist or album */ async updatePlaylist(params: UpdatePlaylistRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const response = await this.updatePlaylistRaw(params, initOverrides); return await response.value(); } } /** * @export */ export const GetTrendingPlaylistsTimeEnum = { Week: 'week', Month: 'month', Year: 'year', AllTime: 'allTime' } as const; export type GetTrendingPlaylistsTimeEnum = typeof GetTrendingPlaylistsTimeEnum[keyof typeof GetTrendingPlaylistsTimeEnum]; /** * @export */ export const GetTrendingPlaylistsTypeEnum = { Playlist: 'playlist', Album: 'album' } as const; export type GetTrendingPlaylistsTypeEnum = typeof GetTrendingPlaylistsTypeEnum[keyof typeof GetTrendingPlaylistsTypeEnum]; /** * @export */ export const GetTrendingPlaylistsWithVersionTimeEnum = { Week: 'week', Month: 'month', Year: 'year', AllTime: 'allTime' } as const; export type GetTrendingPlaylistsWithVersionTimeEnum = typeof GetTrendingPlaylistsWithVersionTimeEnum[keyof typeof GetTrendingPlaylistsWithVersionTimeEnum]; /** * @export */ export const SearchPlaylistsSortMethodEnum = { Relevant: 'relevant', Popular: 'popular', Recent: 'recent' } as const; export type SearchPlaylistsSortMethodEnum = typeof SearchPlaylistsSortMethodEnum[keyof typeof SearchPlaylistsSortMethodEnum];