From 06d86a34b5869d4412cfc21c4252d856823c4c5b Mon Sep 17 00:00:00 2001 From: nickp10 Date: Mon, 26 Feb 2018 12:05:58 -0700 Subject: [PATCH 1/2] Add types for jamon/playmusic --- types/playmusic/index.d.ts | 325 ++++++++++++++++++++++++++ types/playmusic/playmusic-tests.ts | 357 +++++++++++++++++++++++++++++ types/playmusic/tsconfig.json | 24 ++ types/playmusic/tslint.json | 3 + 4 files changed, 709 insertions(+) create mode 100644 types/playmusic/index.d.ts create mode 100644 types/playmusic/playmusic-tests.ts create mode 100644 types/playmusic/tsconfig.json create mode 100644 types/playmusic/tslint.json diff --git a/types/playmusic/index.d.ts b/types/playmusic/index.d.ts new file mode 100644 index 0000000000..e7ffa3d3b7 --- /dev/null +++ b/types/playmusic/index.d.ts @@ -0,0 +1,325 @@ +// Type definitions for playmusic 2.3 +// Project: https://www.github.com/jamon/playmusic +// Definitions by: Nick Paddock +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +export interface InitOptions { + androidId?: string; + email?: string; + password?: string; + masterToken?: string; +} + +export interface LoginOptions { + androidId?: string; + email?: string; + password?: string; +} + +export interface LoginResponse { + androidId: string; + masterToken: string; +} + +export interface LibraryOptions { + limit?: number; + nextPageToken?: string; +} + +export interface LibraryResponse { + data?: LibraryData; + kind?: string; + nextPageToken?: string; +} + +export interface LibraryData { + items?: LibraryItem[]; +} + +export interface LibraryItem { + album?: string; + albumArtist?: string; + albumArtRef?: ArtRef[]; + artist?: string; + artistArtRef?: ArtRef[]; + artistId?: string[]; + beatsPerMinute?: number; + clientId?: string; + comment?: string; + composer?: string; + creationTimestamp?: string; + deleted?: boolean; + discNumber?: number; + durationMillis?: string; + estimatedSize?: string; + genre?: string; + id?: string; + kind?: string; + lastModifiedTimestamp?: string; + nid?: string; + playCount?: number; + rating?: string; + recentTimestamp?: string; + storeId?: string; + title?: string; + totalDiscCount?: number; + totalTrackCount?: number; + trackNumber?: number; + year?: number; +} + +export interface ArtRef { + url?: string; +} + +export interface PlaylistListResponse { + data?: PlaylistListData; + kind?: string; +} + +export interface PlaylistListData { + items?: PlaylistListItem[]; +} + +export interface PlaylistListItem { + accessControlled?: boolean; + creationTimestamp?: string; + deleted?: boolean; + description?: string; + id?: string; + kind?: string; + lastModifiedTimestamp?: string; + name?: string; + ownerName?: string; + ownerProfilePhotoUrl?: string; + recentTimestamp?: string; + shareToken?: string; + type?: string; +} + +export interface PlaylistOptions { + limit?: number; + nextPageToken?: string; +} + +export interface PlaylistResponse { + data?: PlaylistData; + kind?: string; + nextPageToken?: string; +} + +export interface PlaylistData { + items?: PlaylistItem[]; +} + +export interface PlaylistItem { + absolutePosition?: string; + clientId?: string; + creationTimestamp?: string; + deleted?: boolean; + id?: string; + kind?: string; + lastModifiedTimestamp?: string; + playlistId?: string; + source?: string; + track?: PlaylistTrack; + trackId?: string; +} + +export interface PlaylistTrack { + album?: string; + albumArtist?: string; + albumArtRef?: ArtRef[]; + albumAvailableForPurchase?: boolean; + albumId?: string; + artist?: string; + artistArtRef?: ArtRef[]; + artistId?: string[]; + composer?: string; + contentType?: string; + discNumber?: number; + durationMillis?: string; + estimatedSize?: string; + genre?: string; + kind?: string; + nid?: string; + playCount?: number; + storeId?: string; + title?: string; + trackAvailableForPurchase?: boolean; + trackAvailableForSubscription?: boolean; + trackNumber?: number; + trackType?: string; + year?: number; +} + +export interface PlaylistMeta { + name?: string; + description?: string; + shareState?: string; +} + +export interface MutateResponses { + mutate_response?: MutateResponse[]; +} + +export interface MutateResponse { + client_id?: string; + id?: string; + response_code?: string; +} + +export default class PlayMusic { + constructor(); + init(options: InitOptions, callback: (error: Error) => void): void; + login(options: LoginOptions, callback: (error: Error, response: LoginResponse) => void): void; + + /** + * Returns settings / device ids authorized for account. + * + * @param callback function(error, response) - success callback + */ + getSettings(callback: (error: Error, response: any) => void): void; + + /** + * Returns list of all tracks. + * + * @param callback function(error, response) - success callback + */ + getLibrary(callback: (error: Error, response: LibraryResponse) => void): void; + + /** + * Returns list of all tracks. + * + * @param options object - parameters + * @param callback function(error, response) - success callback + */ + getLibrary(options: LibraryOptions, callback: (error: Error, response: LibraryResponse) => void): void; + + /** + * Returns stream URL for a track. + * + * @param id string - track id, hyphenated is preferred, but "nid" will work for all access tracks (not uploaded ones) + * @param callback function(err, streamUrl) - success callback + */ + getStreamUrl(id: string, callback: (error: Error, streamUrl: string) => void): void; + + /** + * Opens and returns a stream object + * + * @param id string - track id, hyphenated is preferred, but "nid" will work for all access tracks (not uploaded ones) + * @param callback function(stream) - success callback + */ + getStream(id: string, callback: (error: Error, stream: any) => void): void; + + /** + * Searches for All Access tracks. + * + * @param text string - search text + * @param maxResults int - max number of results to return + * @param callback function(err, searchResults) - success callback + */ + search(text: string, maxResults: number, callback: (error: Error, searchResults: any) => void): void; + + /** + * Returns list of all playlists. + * + * @param callback function(error, playlists) - success callback + */ + getPlayLists(callback: (error: Error, response: PlaylistListResponse) => void): void; + + /** + * Creates a new playlist. + * + * @param playlistName string - the playlist name + * @param callback function(error, mutateResponses) - success callback + */ + addPlayList(playlistName: string, callback: (error: Error, mutateResponses: MutateResponses) => void): void; + + /** + * Deletes a playlist + * + * @param playlistId string - the playlist id + * @param callback function(err, mutationStatus) - success callback + */ + deletePlaylist(playlistId: string, callback: (error: Error, mutationStatus: MutateResponses) => void): void; + + /** + * Updates a playlist's metadata + * + * @param playlistId string - the playlist id + * @param updates object - data to update the playlist with + * @param callback function(err, mutationStatus) - success callback + */ + updatePlayListMeta(playlistId: string, updates: PlaylistMeta, callback: (error: Error, mutationStatus: MutateResponses) => void): void; + + /** + * Adds a track to end of a playlist. + * + * @param songId string or array of string - the song id(s) + * @param playlistId string - the playlist id + * @param callback function(error, mutateResponses) - success callback + * @param entryBeforeClientId - optional clientId of playlist entry where to add song after + * @param entryAfterClientId - optional clientId of playlist entry where to add song before + */ + addTrackToPlayList( + songIds: string | string[], + playlistId: string, + callback: (error: Error, mutateResponses: MutateResponses) => void, + entryBeforeClientId?: string, + entryAfterClientId?: string): void; + + /** + * Move the specified entry inbetween two specified entries (identified by their clientIds) + * + * @param entryToMove string - the song id to move + * @param entryBeforeClientId - optional clientId of playlist entry where to move song after + * @param entryAfterClientId - optional clientId of playlist entry where to move song before + * @param callback function(err, playlistEntries) - success callback + */ + movePlayListEntry(entryToMove: string, entryBeforeClientId: string, entryAfterClientId: string, callback: (error: Error, mutateResponses: MutateResponses) => void): void; + + /** + * Increments track's playcount + * + * @param songId int - the song id. See http://bit.ly/1L4U6oK for id requirements. + * @param callback function(err, mutationStatus) - success callback + */ + incrementTrackPlaycount(songId: string, callback: (error: Error, mutationStatus: MutateResponses) => void): void; + + /** + * Change metadata of a track a library + * Currently only support changing rating + * You need to change a song object with a different rating value: + * 5 = thumb up, 1 = thumb down, 0 = no thumb + * + * @param song object - the track dictionary. You can get from getAllAccessTrack or from getLibrary + * @param callback function(err, success) - success callback + */ + changeTrackMetadata(song: any, callback: (error: Error, success: MutateResponses) => void): void; + + /** + * Removes given entry ids from playlist entries. + * + * @param playlistItemIds string or array of string - the entry id(s). You can get this from getPlayListEntries or PlaylistItem#id. + * @param callback function(error, mutateResponses) - success callback + */ + removePlayListEntry(playlistItemIds: string | string[], callback: (error: Error, mutateResponses: MutateResponses) => void): void; + + /** + * Returns tracks on all playlists. + * + * @param callback function(error, response) - success callback + */ + getPlayListEntries(callback: (error: Error, response: PlaylistResponse) => void): void; + + /** + * Returns tracks on all playlists. + * + * @param options object - parameters + * @param callback function(error, response) - success callback + */ + getPlayListEntries(options: PlaylistOptions, callback: (error: Error, response: PlaylistResponse) => void): void; +} diff --git a/types/playmusic/playmusic-tests.ts b/types/playmusic/playmusic-tests.ts new file mode 100644 index 0000000000..5cf98b35c0 --- /dev/null +++ b/types/playmusic/playmusic-tests.ts @@ -0,0 +1,357 @@ +import PlayMusic, * as pm from "playmusic"; + +const instance = new PlayMusic(); + +instance.init({ + androidId: "androidId", + email: "email", + password: "password", + masterToken: "masterToken" +}, (error: Error) => { + console.log(error.message); + console.log(error.name); +}); + +instance.login({ + androidId: "androidId", + email: "email", + password: "password" +}, (error: Error, loginResponse: pm.LoginResponse) => { + console.log(error.message); + console.log(error.name); + console.log(loginResponse.androidId); + console.log(loginResponse.masterToken); +}); + +instance.getSettings((error: Error, response: any) => { + console.log(error.message); + console.log(error.name); +}); + +instance.getLibrary((error: Error, response: pm.LibraryResponse) => { + console.log(error.message); + console.log(error.name); +}); + +instance.getLibrary({ + limit: 123, + nextPageToken: "nextPageToken" +}, (error: Error, response: pm.LibraryResponse) => { + console.log(error.message); + console.log(error.name); + if (response && response.data && response.data.items) { + response.data.items.forEach((item: pm.LibraryItem) => { + console.log(item.album); + console.log(item.albumArtist); + if (item.albumArtRef) { + console.log(item.albumArtRef[0].url); + } + console.log(item.artist); + if (item.artistArtRef) { + console.log(item.artistArtRef[0].url); + } + if (item.artistId) { + console.log(item.artistId.length); + } + console.log(item.beatsPerMinute); + console.log(item.clientId); + console.log(item.comment); + console.log(item.composer); + console.log(item.creationTimestamp); + console.log(item.deleted); + console.log(item.discNumber); + console.log(item.durationMillis); + console.log(item.estimatedSize); + console.log(item.genre); + console.log(item.id); + console.log(item.kind); + console.log(item.lastModifiedTimestamp); + console.log(item.nid); + console.log(item.playCount); + console.log(item.rating); + console.log(item.recentTimestamp); + console.log(item.storeId); + console.log(item.title); + console.log(item.totalDiscCount); + console.log(item.totalTrackCount); + console.log(item.trackNumber); + console.log(item.year); + }); + } + console.log(response.kind); + console.log(response.nextPageToken); +}); + +instance.getStreamUrl("id", (error: Error, streamUrl: string) => { + console.log(error.message); + console.log(error.name); + console.log(streamUrl); +}); + +instance.getStream("id", (error: Error, stream: any) => { + console.log(error.message); + console.log(error.name); + console.log(stream); +}); + +instance.search("text", 123, (error: Error, searchResults: any) => { + console.log(error.message); + console.log(error.name); + console.log(searchResults); +}); + +instance.getPlayLists((error: Error, response: pm.PlaylistListResponse) => { + console.log(error.message); + console.log(error.name); + if (response && response.data && response.data.items) { + response.data.items.forEach((item: pm.PlaylistListItem) => { + console.log(item.accessControlled); + console.log(item.creationTimestamp); + console.log(item.deleted); + console.log(item.description); + console.log(item.id); + console.log(item.kind); + console.log(item.lastModifiedTimestamp); + console.log(item.name); + console.log(item.ownerName); + console.log(item.ownerProfilePhotoUrl); + console.log(item.recentTimestamp); + console.log(item.shareToken); + console.log(item.type); + }); + } + console.log(response.kind); +}); + +instance.addPlayList("playlistName", (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}); + +instance.deletePlaylist("playlistId", (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}); + +instance.updatePlayListMeta("playlistId", { + name: "name", + description: "description", + shareState: "shareState" +}, (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}); + +instance.addTrackToPlayList("songId", "playlistId", (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}, "entryBeforeClientId", "entryAfterClientId"); + +instance.addTrackToPlayList(["songId1", "songId2"], "playlistId", (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}, "entryBeforeClientId", "entryAfterClientId"); + +instance.movePlayListEntry("entryToMove", "entryBeforeClientId", "entryAfterClientId", (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}); + +instance.incrementTrackPlaycount("songId", (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}); + +instance.changeTrackMetadata({ }, (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}); + +instance.removePlayListEntry("playlistItemId", (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}); + +instance.removePlayListEntry(["playlistItemId1", "playlistItemId2"], (error: Error, mutateResponses: pm.MutateResponses) => { + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } +}); + +instance.getPlayListEntries((error: Error, response: pm.PlaylistResponse) => { + console.log(error.message); + console.log(error.name); + if (response && response.data && response.data.items) { + response.data.items.forEach((item: pm.PlaylistItem) => { + console.log(item.absolutePosition); + console.log(item.clientId); + console.log(item.creationTimestamp); + console.log(item.deleted); + console.log(item.id); + console.log(item.kind); + console.log(item.lastModifiedTimestamp); + console.log(item.playlistId); + console.log(item.source); + if (item.track) { + console.log(item.track.album); + console.log(item.track.albumArtist); + if (item.track.albumArtRef) { + console.log(item.track.albumArtRef[0].url); + } + console.log(item.track.albumAvailableForPurchase); + console.log(item.track.albumId); + console.log(item.track.artist); + if (item.track.artistArtRef) { + console.log(item.track.artistArtRef[0].url); + } + if (item.track.artistId) { + console.log(item.track.artistId.length); + } + console.log(item.track.composer); + console.log(item.track.contentType); + console.log(item.track.discNumber); + console.log(item.track.durationMillis); + console.log(item.track.estimatedSize); + console.log(item.track.genre); + console.log(item.track.kind); + console.log(item.track.nid); + console.log(item.track.playCount); + console.log(item.track.storeId); + console.log(item.track.title); + console.log(item.track.trackAvailableForPurchase); + console.log(item.track.trackAvailableForSubscription); + console.log(item.track.trackNumber); + console.log(item.track.trackType); + console.log(item.track.year); + } + console.log(item.trackId); + }); + } + console.log(response.kind); + console.log(response.nextPageToken); +}); + +instance.getPlayListEntries({ + limit: 123, + nextPageToken: "nextPageToken" +}, (error: Error, response: pm.PlaylistResponse) => { + console.log(error.message); + console.log(error.name); + if (response && response.data && response.data.items) { + response.data.items.forEach((item: pm.PlaylistItem) => { + console.log(item.absolutePosition); + console.log(item.clientId); + console.log(item.creationTimestamp); + console.log(item.deleted); + console.log(item.id); + console.log(item.kind); + console.log(item.lastModifiedTimestamp); + console.log(item.playlistId); + console.log(item.source); + if (item.track) { + console.log(item.track.album); + console.log(item.track.albumArtist); + if (item.track.albumArtRef) { + console.log(item.track.albumArtRef[0].url); + } + console.log(item.track.albumAvailableForPurchase); + console.log(item.track.albumId); + console.log(item.track.artist); + if (item.track.artistArtRef) { + console.log(item.track.artistArtRef[0].url); + } + if (item.track.artistId) { + console.log(item.track.artistId.length); + } + console.log(item.track.composer); + console.log(item.track.contentType); + console.log(item.track.discNumber); + console.log(item.track.durationMillis); + console.log(item.track.estimatedSize); + console.log(item.track.genre); + console.log(item.track.kind); + console.log(item.track.nid); + console.log(item.track.playCount); + console.log(item.track.storeId); + console.log(item.track.title); + console.log(item.track.trackAvailableForPurchase); + console.log(item.track.trackAvailableForSubscription); + console.log(item.track.trackNumber); + console.log(item.track.trackType); + console.log(item.track.year); + } + console.log(item.trackId); + }); + } + console.log(response.kind); + console.log(response.nextPageToken); +}); diff --git a/types/playmusic/tsconfig.json b/types/playmusic/tsconfig.json new file mode 100644 index 0000000000..7ea1bb4321 --- /dev/null +++ b/types/playmusic/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "target": "es6", + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "playmusic-tests.ts" + ] +} diff --git a/types/playmusic/tslint.json b/types/playmusic/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/playmusic/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} From 6be85b1054a88172f4ae370b30171118b9fb8e58 Mon Sep 17 00:00:00 2001 From: nickp10 Date: Mon, 26 Feb 2018 12:08:11 -0700 Subject: [PATCH 2/2] Fix tabs to spaces --- types/playmusic/index.d.ts | 484 ++++++++++++------------ types/playmusic/playmusic-tests.ts | 572 ++++++++++++++--------------- 2 files changed, 528 insertions(+), 528 deletions(-) diff --git a/types/playmusic/index.d.ts b/types/playmusic/index.d.ts index e7ffa3d3b7..fda4a582c5 100644 --- a/types/playmusic/index.d.ts +++ b/types/playmusic/index.d.ts @@ -6,320 +6,320 @@ /// export interface InitOptions { - androidId?: string; - email?: string; - password?: string; - masterToken?: string; + androidId?: string; + email?: string; + password?: string; + masterToken?: string; } export interface LoginOptions { - androidId?: string; - email?: string; - password?: string; + androidId?: string; + email?: string; + password?: string; } export interface LoginResponse { - androidId: string; - masterToken: string; + androidId: string; + masterToken: string; } export interface LibraryOptions { - limit?: number; - nextPageToken?: string; + limit?: number; + nextPageToken?: string; } export interface LibraryResponse { - data?: LibraryData; - kind?: string; - nextPageToken?: string; + data?: LibraryData; + kind?: string; + nextPageToken?: string; } export interface LibraryData { - items?: LibraryItem[]; + items?: LibraryItem[]; } export interface LibraryItem { - album?: string; - albumArtist?: string; - albumArtRef?: ArtRef[]; - artist?: string; - artistArtRef?: ArtRef[]; - artistId?: string[]; - beatsPerMinute?: number; - clientId?: string; - comment?: string; - composer?: string; - creationTimestamp?: string; - deleted?: boolean; - discNumber?: number; - durationMillis?: string; - estimatedSize?: string; - genre?: string; - id?: string; - kind?: string; - lastModifiedTimestamp?: string; - nid?: string; - playCount?: number; - rating?: string; - recentTimestamp?: string; - storeId?: string; - title?: string; - totalDiscCount?: number; - totalTrackCount?: number; - trackNumber?: number; - year?: number; + album?: string; + albumArtist?: string; + albumArtRef?: ArtRef[]; + artist?: string; + artistArtRef?: ArtRef[]; + artistId?: string[]; + beatsPerMinute?: number; + clientId?: string; + comment?: string; + composer?: string; + creationTimestamp?: string; + deleted?: boolean; + discNumber?: number; + durationMillis?: string; + estimatedSize?: string; + genre?: string; + id?: string; + kind?: string; + lastModifiedTimestamp?: string; + nid?: string; + playCount?: number; + rating?: string; + recentTimestamp?: string; + storeId?: string; + title?: string; + totalDiscCount?: number; + totalTrackCount?: number; + trackNumber?: number; + year?: number; } export interface ArtRef { - url?: string; + url?: string; } export interface PlaylistListResponse { - data?: PlaylistListData; - kind?: string; + data?: PlaylistListData; + kind?: string; } export interface PlaylistListData { - items?: PlaylistListItem[]; + items?: PlaylistListItem[]; } export interface PlaylistListItem { - accessControlled?: boolean; - creationTimestamp?: string; - deleted?: boolean; - description?: string; - id?: string; - kind?: string; - lastModifiedTimestamp?: string; - name?: string; - ownerName?: string; - ownerProfilePhotoUrl?: string; - recentTimestamp?: string; - shareToken?: string; - type?: string; + accessControlled?: boolean; + creationTimestamp?: string; + deleted?: boolean; + description?: string; + id?: string; + kind?: string; + lastModifiedTimestamp?: string; + name?: string; + ownerName?: string; + ownerProfilePhotoUrl?: string; + recentTimestamp?: string; + shareToken?: string; + type?: string; } export interface PlaylistOptions { - limit?: number; - nextPageToken?: string; + limit?: number; + nextPageToken?: string; } export interface PlaylistResponse { - data?: PlaylistData; - kind?: string; - nextPageToken?: string; + data?: PlaylistData; + kind?: string; + nextPageToken?: string; } export interface PlaylistData { - items?: PlaylistItem[]; + items?: PlaylistItem[]; } export interface PlaylistItem { - absolutePosition?: string; - clientId?: string; - creationTimestamp?: string; - deleted?: boolean; - id?: string; - kind?: string; - lastModifiedTimestamp?: string; - playlistId?: string; - source?: string; - track?: PlaylistTrack; - trackId?: string; + absolutePosition?: string; + clientId?: string; + creationTimestamp?: string; + deleted?: boolean; + id?: string; + kind?: string; + lastModifiedTimestamp?: string; + playlistId?: string; + source?: string; + track?: PlaylistTrack; + trackId?: string; } export interface PlaylistTrack { - album?: string; - albumArtist?: string; - albumArtRef?: ArtRef[]; - albumAvailableForPurchase?: boolean; - albumId?: string; - artist?: string; - artistArtRef?: ArtRef[]; - artistId?: string[]; - composer?: string; - contentType?: string; - discNumber?: number; - durationMillis?: string; - estimatedSize?: string; - genre?: string; - kind?: string; - nid?: string; - playCount?: number; - storeId?: string; - title?: string; - trackAvailableForPurchase?: boolean; - trackAvailableForSubscription?: boolean; - trackNumber?: number; - trackType?: string; - year?: number; + album?: string; + albumArtist?: string; + albumArtRef?: ArtRef[]; + albumAvailableForPurchase?: boolean; + albumId?: string; + artist?: string; + artistArtRef?: ArtRef[]; + artistId?: string[]; + composer?: string; + contentType?: string; + discNumber?: number; + durationMillis?: string; + estimatedSize?: string; + genre?: string; + kind?: string; + nid?: string; + playCount?: number; + storeId?: string; + title?: string; + trackAvailableForPurchase?: boolean; + trackAvailableForSubscription?: boolean; + trackNumber?: number; + trackType?: string; + year?: number; } export interface PlaylistMeta { - name?: string; - description?: string; - shareState?: string; + name?: string; + description?: string; + shareState?: string; } export interface MutateResponses { - mutate_response?: MutateResponse[]; + mutate_response?: MutateResponse[]; } export interface MutateResponse { - client_id?: string; - id?: string; - response_code?: string; + client_id?: string; + id?: string; + response_code?: string; } export default class PlayMusic { - constructor(); - init(options: InitOptions, callback: (error: Error) => void): void; - login(options: LoginOptions, callback: (error: Error, response: LoginResponse) => void): void; + constructor(); + init(options: InitOptions, callback: (error: Error) => void): void; + login(options: LoginOptions, callback: (error: Error, response: LoginResponse) => void): void; - /** - * Returns settings / device ids authorized for account. - * - * @param callback function(error, response) - success callback - */ - getSettings(callback: (error: Error, response: any) => void): void; + /** + * Returns settings / device ids authorized for account. + * + * @param callback function(error, response) - success callback + */ + getSettings(callback: (error: Error, response: any) => void): void; - /** - * Returns list of all tracks. - * - * @param callback function(error, response) - success callback - */ - getLibrary(callback: (error: Error, response: LibraryResponse) => void): void; + /** + * Returns list of all tracks. + * + * @param callback function(error, response) - success callback + */ + getLibrary(callback: (error: Error, response: LibraryResponse) => void): void; - /** - * Returns list of all tracks. - * - * @param options object - parameters - * @param callback function(error, response) - success callback - */ - getLibrary(options: LibraryOptions, callback: (error: Error, response: LibraryResponse) => void): void; + /** + * Returns list of all tracks. + * + * @param options object - parameters + * @param callback function(error, response) - success callback + */ + getLibrary(options: LibraryOptions, callback: (error: Error, response: LibraryResponse) => void): void; - /** - * Returns stream URL for a track. - * - * @param id string - track id, hyphenated is preferred, but "nid" will work for all access tracks (not uploaded ones) - * @param callback function(err, streamUrl) - success callback - */ - getStreamUrl(id: string, callback: (error: Error, streamUrl: string) => void): void; + /** + * Returns stream URL for a track. + * + * @param id string - track id, hyphenated is preferred, but "nid" will work for all access tracks (not uploaded ones) + * @param callback function(err, streamUrl) - success callback + */ + getStreamUrl(id: string, callback: (error: Error, streamUrl: string) => void): void; - /** - * Opens and returns a stream object - * - * @param id string - track id, hyphenated is preferred, but "nid" will work for all access tracks (not uploaded ones) - * @param callback function(stream) - success callback - */ - getStream(id: string, callback: (error: Error, stream: any) => void): void; + /** + * Opens and returns a stream object + * + * @param id string - track id, hyphenated is preferred, but "nid" will work for all access tracks (not uploaded ones) + * @param callback function(stream) - success callback + */ + getStream(id: string, callback: (error: Error, stream: any) => void): void; - /** - * Searches for All Access tracks. - * - * @param text string - search text - * @param maxResults int - max number of results to return - * @param callback function(err, searchResults) - success callback - */ - search(text: string, maxResults: number, callback: (error: Error, searchResults: any) => void): void; + /** + * Searches for All Access tracks. + * + * @param text string - search text + * @param maxResults int - max number of results to return + * @param callback function(err, searchResults) - success callback + */ + search(text: string, maxResults: number, callback: (error: Error, searchResults: any) => void): void; - /** - * Returns list of all playlists. - * - * @param callback function(error, playlists) - success callback - */ - getPlayLists(callback: (error: Error, response: PlaylistListResponse) => void): void; + /** + * Returns list of all playlists. + * + * @param callback function(error, playlists) - success callback + */ + getPlayLists(callback: (error: Error, response: PlaylistListResponse) => void): void; - /** - * Creates a new playlist. - * - * @param playlistName string - the playlist name - * @param callback function(error, mutateResponses) - success callback - */ - addPlayList(playlistName: string, callback: (error: Error, mutateResponses: MutateResponses) => void): void; + /** + * Creates a new playlist. + * + * @param playlistName string - the playlist name + * @param callback function(error, mutateResponses) - success callback + */ + addPlayList(playlistName: string, callback: (error: Error, mutateResponses: MutateResponses) => void): void; - /** - * Deletes a playlist - * - * @param playlistId string - the playlist id - * @param callback function(err, mutationStatus) - success callback - */ - deletePlaylist(playlistId: string, callback: (error: Error, mutationStatus: MutateResponses) => void): void; + /** + * Deletes a playlist + * + * @param playlistId string - the playlist id + * @param callback function(err, mutationStatus) - success callback + */ + deletePlaylist(playlistId: string, callback: (error: Error, mutationStatus: MutateResponses) => void): void; - /** - * Updates a playlist's metadata - * - * @param playlistId string - the playlist id - * @param updates object - data to update the playlist with - * @param callback function(err, mutationStatus) - success callback - */ - updatePlayListMeta(playlistId: string, updates: PlaylistMeta, callback: (error: Error, mutationStatus: MutateResponses) => void): void; + /** + * Updates a playlist's metadata + * + * @param playlistId string - the playlist id + * @param updates object - data to update the playlist with + * @param callback function(err, mutationStatus) - success callback + */ + updatePlayListMeta(playlistId: string, updates: PlaylistMeta, callback: (error: Error, mutationStatus: MutateResponses) => void): void; - /** - * Adds a track to end of a playlist. - * - * @param songId string or array of string - the song id(s) - * @param playlistId string - the playlist id - * @param callback function(error, mutateResponses) - success callback - * @param entryBeforeClientId - optional clientId of playlist entry where to add song after - * @param entryAfterClientId - optional clientId of playlist entry where to add song before - */ - addTrackToPlayList( - songIds: string | string[], - playlistId: string, - callback: (error: Error, mutateResponses: MutateResponses) => void, - entryBeforeClientId?: string, - entryAfterClientId?: string): void; + /** + * Adds a track to end of a playlist. + * + * @param songId string or array of string - the song id(s) + * @param playlistId string - the playlist id + * @param callback function(error, mutateResponses) - success callback + * @param entryBeforeClientId - optional clientId of playlist entry where to add song after + * @param entryAfterClientId - optional clientId of playlist entry where to add song before + */ + addTrackToPlayList( + songIds: string | string[], + playlistId: string, + callback: (error: Error, mutateResponses: MutateResponses) => void, + entryBeforeClientId?: string, + entryAfterClientId?: string): void; - /** - * Move the specified entry inbetween two specified entries (identified by their clientIds) - * - * @param entryToMove string - the song id to move - * @param entryBeforeClientId - optional clientId of playlist entry where to move song after - * @param entryAfterClientId - optional clientId of playlist entry where to move song before - * @param callback function(err, playlistEntries) - success callback - */ - movePlayListEntry(entryToMove: string, entryBeforeClientId: string, entryAfterClientId: string, callback: (error: Error, mutateResponses: MutateResponses) => void): void; + /** + * Move the specified entry inbetween two specified entries (identified by their clientIds) + * + * @param entryToMove string - the song id to move + * @param entryBeforeClientId - optional clientId of playlist entry where to move song after + * @param entryAfterClientId - optional clientId of playlist entry where to move song before + * @param callback function(err, playlistEntries) - success callback + */ + movePlayListEntry(entryToMove: string, entryBeforeClientId: string, entryAfterClientId: string, callback: (error: Error, mutateResponses: MutateResponses) => void): void; - /** - * Increments track's playcount - * - * @param songId int - the song id. See http://bit.ly/1L4U6oK for id requirements. - * @param callback function(err, mutationStatus) - success callback - */ - incrementTrackPlaycount(songId: string, callback: (error: Error, mutationStatus: MutateResponses) => void): void; + /** + * Increments track's playcount + * + * @param songId int - the song id. See http://bit.ly/1L4U6oK for id requirements. + * @param callback function(err, mutationStatus) - success callback + */ + incrementTrackPlaycount(songId: string, callback: (error: Error, mutationStatus: MutateResponses) => void): void; - /** - * Change metadata of a track a library - * Currently only support changing rating - * You need to change a song object with a different rating value: - * 5 = thumb up, 1 = thumb down, 0 = no thumb - * - * @param song object - the track dictionary. You can get from getAllAccessTrack or from getLibrary - * @param callback function(err, success) - success callback - */ - changeTrackMetadata(song: any, callback: (error: Error, success: MutateResponses) => void): void; + /** + * Change metadata of a track a library + * Currently only support changing rating + * You need to change a song object with a different rating value: + * 5 = thumb up, 1 = thumb down, 0 = no thumb + * + * @param song object - the track dictionary. You can get from getAllAccessTrack or from getLibrary + * @param callback function(err, success) - success callback + */ + changeTrackMetadata(song: any, callback: (error: Error, success: MutateResponses) => void): void; - /** - * Removes given entry ids from playlist entries. - * - * @param playlistItemIds string or array of string - the entry id(s). You can get this from getPlayListEntries or PlaylistItem#id. - * @param callback function(error, mutateResponses) - success callback - */ - removePlayListEntry(playlistItemIds: string | string[], callback: (error: Error, mutateResponses: MutateResponses) => void): void; + /** + * Removes given entry ids from playlist entries. + * + * @param playlistItemIds string or array of string - the entry id(s). You can get this from getPlayListEntries or PlaylistItem#id. + * @param callback function(error, mutateResponses) - success callback + */ + removePlayListEntry(playlistItemIds: string | string[], callback: (error: Error, mutateResponses: MutateResponses) => void): void; - /** - * Returns tracks on all playlists. - * - * @param callback function(error, response) - success callback - */ - getPlayListEntries(callback: (error: Error, response: PlaylistResponse) => void): void; + /** + * Returns tracks on all playlists. + * + * @param callback function(error, response) - success callback + */ + getPlayListEntries(callback: (error: Error, response: PlaylistResponse) => void): void; - /** - * Returns tracks on all playlists. - * - * @param options object - parameters - * @param callback function(error, response) - success callback - */ - getPlayListEntries(options: PlaylistOptions, callback: (error: Error, response: PlaylistResponse) => void): void; + /** + * Returns tracks on all playlists. + * + * @param options object - parameters + * @param callback function(error, response) - success callback + */ + getPlayListEntries(options: PlaylistOptions, callback: (error: Error, response: PlaylistResponse) => void): void; } diff --git a/types/playmusic/playmusic-tests.ts b/types/playmusic/playmusic-tests.ts index 5cf98b35c0..1f8e49e0ab 100644 --- a/types/playmusic/playmusic-tests.ts +++ b/types/playmusic/playmusic-tests.ts @@ -3,355 +3,355 @@ import PlayMusic, * as pm from "playmusic"; const instance = new PlayMusic(); instance.init({ - androidId: "androidId", - email: "email", - password: "password", - masterToken: "masterToken" + androidId: "androidId", + email: "email", + password: "password", + masterToken: "masterToken" }, (error: Error) => { - console.log(error.message); - console.log(error.name); + console.log(error.message); + console.log(error.name); }); instance.login({ - androidId: "androidId", - email: "email", - password: "password" + androidId: "androidId", + email: "email", + password: "password" }, (error: Error, loginResponse: pm.LoginResponse) => { - console.log(error.message); - console.log(error.name); - console.log(loginResponse.androidId); - console.log(loginResponse.masterToken); + console.log(error.message); + console.log(error.name); + console.log(loginResponse.androidId); + console.log(loginResponse.masterToken); }); instance.getSettings((error: Error, response: any) => { - console.log(error.message); - console.log(error.name); + console.log(error.message); + console.log(error.name); }); instance.getLibrary((error: Error, response: pm.LibraryResponse) => { - console.log(error.message); - console.log(error.name); + console.log(error.message); + console.log(error.name); }); instance.getLibrary({ - limit: 123, - nextPageToken: "nextPageToken" + limit: 123, + nextPageToken: "nextPageToken" }, (error: Error, response: pm.LibraryResponse) => { - console.log(error.message); - console.log(error.name); - if (response && response.data && response.data.items) { - response.data.items.forEach((item: pm.LibraryItem) => { - console.log(item.album); - console.log(item.albumArtist); - if (item.albumArtRef) { - console.log(item.albumArtRef[0].url); - } - console.log(item.artist); - if (item.artistArtRef) { - console.log(item.artistArtRef[0].url); - } - if (item.artistId) { - console.log(item.artistId.length); - } - console.log(item.beatsPerMinute); - console.log(item.clientId); - console.log(item.comment); - console.log(item.composer); - console.log(item.creationTimestamp); - console.log(item.deleted); - console.log(item.discNumber); - console.log(item.durationMillis); - console.log(item.estimatedSize); - console.log(item.genre); - console.log(item.id); - console.log(item.kind); - console.log(item.lastModifiedTimestamp); - console.log(item.nid); - console.log(item.playCount); - console.log(item.rating); - console.log(item.recentTimestamp); - console.log(item.storeId); - console.log(item.title); - console.log(item.totalDiscCount); - console.log(item.totalTrackCount); - console.log(item.trackNumber); - console.log(item.year); - }); - } - console.log(response.kind); - console.log(response.nextPageToken); + console.log(error.message); + console.log(error.name); + if (response && response.data && response.data.items) { + response.data.items.forEach((item: pm.LibraryItem) => { + console.log(item.album); + console.log(item.albumArtist); + if (item.albumArtRef) { + console.log(item.albumArtRef[0].url); + } + console.log(item.artist); + if (item.artistArtRef) { + console.log(item.artistArtRef[0].url); + } + if (item.artistId) { + console.log(item.artistId.length); + } + console.log(item.beatsPerMinute); + console.log(item.clientId); + console.log(item.comment); + console.log(item.composer); + console.log(item.creationTimestamp); + console.log(item.deleted); + console.log(item.discNumber); + console.log(item.durationMillis); + console.log(item.estimatedSize); + console.log(item.genre); + console.log(item.id); + console.log(item.kind); + console.log(item.lastModifiedTimestamp); + console.log(item.nid); + console.log(item.playCount); + console.log(item.rating); + console.log(item.recentTimestamp); + console.log(item.storeId); + console.log(item.title); + console.log(item.totalDiscCount); + console.log(item.totalTrackCount); + console.log(item.trackNumber); + console.log(item.year); + }); + } + console.log(response.kind); + console.log(response.nextPageToken); }); instance.getStreamUrl("id", (error: Error, streamUrl: string) => { - console.log(error.message); - console.log(error.name); - console.log(streamUrl); + console.log(error.message); + console.log(error.name); + console.log(streamUrl); }); instance.getStream("id", (error: Error, stream: any) => { - console.log(error.message); - console.log(error.name); - console.log(stream); + console.log(error.message); + console.log(error.name); + console.log(stream); }); instance.search("text", 123, (error: Error, searchResults: any) => { - console.log(error.message); - console.log(error.name); - console.log(searchResults); + console.log(error.message); + console.log(error.name); + console.log(searchResults); }); instance.getPlayLists((error: Error, response: pm.PlaylistListResponse) => { - console.log(error.message); - console.log(error.name); - if (response && response.data && response.data.items) { - response.data.items.forEach((item: pm.PlaylistListItem) => { - console.log(item.accessControlled); - console.log(item.creationTimestamp); - console.log(item.deleted); - console.log(item.description); - console.log(item.id); - console.log(item.kind); - console.log(item.lastModifiedTimestamp); - console.log(item.name); - console.log(item.ownerName); - console.log(item.ownerProfilePhotoUrl); - console.log(item.recentTimestamp); - console.log(item.shareToken); - console.log(item.type); - }); - } - console.log(response.kind); + console.log(error.message); + console.log(error.name); + if (response && response.data && response.data.items) { + response.data.items.forEach((item: pm.PlaylistListItem) => { + console.log(item.accessControlled); + console.log(item.creationTimestamp); + console.log(item.deleted); + console.log(item.description); + console.log(item.id); + console.log(item.kind); + console.log(item.lastModifiedTimestamp); + console.log(item.name); + console.log(item.ownerName); + console.log(item.ownerProfilePhotoUrl); + console.log(item.recentTimestamp); + console.log(item.shareToken); + console.log(item.type); + }); + } + console.log(response.kind); }); instance.addPlayList("playlistName", (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }); instance.deletePlaylist("playlistId", (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }); instance.updatePlayListMeta("playlistId", { - name: "name", - description: "description", - shareState: "shareState" + name: "name", + description: "description", + shareState: "shareState" }, (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }); instance.addTrackToPlayList("songId", "playlistId", (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }, "entryBeforeClientId", "entryAfterClientId"); instance.addTrackToPlayList(["songId1", "songId2"], "playlistId", (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }, "entryBeforeClientId", "entryAfterClientId"); instance.movePlayListEntry("entryToMove", "entryBeforeClientId", "entryAfterClientId", (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }); instance.incrementTrackPlaycount("songId", (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }); instance.changeTrackMetadata({ }, (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }); instance.removePlayListEntry("playlistItemId", (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }); instance.removePlayListEntry(["playlistItemId1", "playlistItemId2"], (error: Error, mutateResponses: pm.MutateResponses) => { - console.log(error.message); - console.log(error.name); - if (mutateResponses && mutateResponses.mutate_response) { - mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { - console.log(mutateResponse.client_id); - console.log(mutateResponse.id); - console.log(mutateResponse.response_code); - }); - } + console.log(error.message); + console.log(error.name); + if (mutateResponses && mutateResponses.mutate_response) { + mutateResponses.mutate_response.forEach((mutateResponse: pm.MutateResponse) => { + console.log(mutateResponse.client_id); + console.log(mutateResponse.id); + console.log(mutateResponse.response_code); + }); + } }); instance.getPlayListEntries((error: Error, response: pm.PlaylistResponse) => { - console.log(error.message); - console.log(error.name); - if (response && response.data && response.data.items) { - response.data.items.forEach((item: pm.PlaylistItem) => { - console.log(item.absolutePosition); - console.log(item.clientId); - console.log(item.creationTimestamp); - console.log(item.deleted); - console.log(item.id); - console.log(item.kind); - console.log(item.lastModifiedTimestamp); - console.log(item.playlistId); - console.log(item.source); - if (item.track) { - console.log(item.track.album); - console.log(item.track.albumArtist); - if (item.track.albumArtRef) { - console.log(item.track.albumArtRef[0].url); - } - console.log(item.track.albumAvailableForPurchase); - console.log(item.track.albumId); - console.log(item.track.artist); - if (item.track.artistArtRef) { - console.log(item.track.artistArtRef[0].url); - } - if (item.track.artistId) { - console.log(item.track.artistId.length); - } - console.log(item.track.composer); - console.log(item.track.contentType); - console.log(item.track.discNumber); - console.log(item.track.durationMillis); - console.log(item.track.estimatedSize); - console.log(item.track.genre); - console.log(item.track.kind); - console.log(item.track.nid); - console.log(item.track.playCount); - console.log(item.track.storeId); - console.log(item.track.title); - console.log(item.track.trackAvailableForPurchase); - console.log(item.track.trackAvailableForSubscription); - console.log(item.track.trackNumber); - console.log(item.track.trackType); - console.log(item.track.year); - } - console.log(item.trackId); - }); - } - console.log(response.kind); - console.log(response.nextPageToken); + console.log(error.message); + console.log(error.name); + if (response && response.data && response.data.items) { + response.data.items.forEach((item: pm.PlaylistItem) => { + console.log(item.absolutePosition); + console.log(item.clientId); + console.log(item.creationTimestamp); + console.log(item.deleted); + console.log(item.id); + console.log(item.kind); + console.log(item.lastModifiedTimestamp); + console.log(item.playlistId); + console.log(item.source); + if (item.track) { + console.log(item.track.album); + console.log(item.track.albumArtist); + if (item.track.albumArtRef) { + console.log(item.track.albumArtRef[0].url); + } + console.log(item.track.albumAvailableForPurchase); + console.log(item.track.albumId); + console.log(item.track.artist); + if (item.track.artistArtRef) { + console.log(item.track.artistArtRef[0].url); + } + if (item.track.artistId) { + console.log(item.track.artistId.length); + } + console.log(item.track.composer); + console.log(item.track.contentType); + console.log(item.track.discNumber); + console.log(item.track.durationMillis); + console.log(item.track.estimatedSize); + console.log(item.track.genre); + console.log(item.track.kind); + console.log(item.track.nid); + console.log(item.track.playCount); + console.log(item.track.storeId); + console.log(item.track.title); + console.log(item.track.trackAvailableForPurchase); + console.log(item.track.trackAvailableForSubscription); + console.log(item.track.trackNumber); + console.log(item.track.trackType); + console.log(item.track.year); + } + console.log(item.trackId); + }); + } + console.log(response.kind); + console.log(response.nextPageToken); }); instance.getPlayListEntries({ - limit: 123, - nextPageToken: "nextPageToken" + limit: 123, + nextPageToken: "nextPageToken" }, (error: Error, response: pm.PlaylistResponse) => { - console.log(error.message); - console.log(error.name); - if (response && response.data && response.data.items) { - response.data.items.forEach((item: pm.PlaylistItem) => { - console.log(item.absolutePosition); - console.log(item.clientId); - console.log(item.creationTimestamp); - console.log(item.deleted); - console.log(item.id); - console.log(item.kind); - console.log(item.lastModifiedTimestamp); - console.log(item.playlistId); - console.log(item.source); - if (item.track) { - console.log(item.track.album); - console.log(item.track.albumArtist); - if (item.track.albumArtRef) { - console.log(item.track.albumArtRef[0].url); - } - console.log(item.track.albumAvailableForPurchase); - console.log(item.track.albumId); - console.log(item.track.artist); - if (item.track.artistArtRef) { - console.log(item.track.artistArtRef[0].url); - } - if (item.track.artistId) { - console.log(item.track.artistId.length); - } - console.log(item.track.composer); - console.log(item.track.contentType); - console.log(item.track.discNumber); - console.log(item.track.durationMillis); - console.log(item.track.estimatedSize); - console.log(item.track.genre); - console.log(item.track.kind); - console.log(item.track.nid); - console.log(item.track.playCount); - console.log(item.track.storeId); - console.log(item.track.title); - console.log(item.track.trackAvailableForPurchase); - console.log(item.track.trackAvailableForSubscription); - console.log(item.track.trackNumber); - console.log(item.track.trackType); - console.log(item.track.year); - } - console.log(item.trackId); - }); - } - console.log(response.kind); - console.log(response.nextPageToken); + console.log(error.message); + console.log(error.name); + if (response && response.data && response.data.items) { + response.data.items.forEach((item: pm.PlaylistItem) => { + console.log(item.absolutePosition); + console.log(item.clientId); + console.log(item.creationTimestamp); + console.log(item.deleted); + console.log(item.id); + console.log(item.kind); + console.log(item.lastModifiedTimestamp); + console.log(item.playlistId); + console.log(item.source); + if (item.track) { + console.log(item.track.album); + console.log(item.track.albumArtist); + if (item.track.albumArtRef) { + console.log(item.track.albumArtRef[0].url); + } + console.log(item.track.albumAvailableForPurchase); + console.log(item.track.albumId); + console.log(item.track.artist); + if (item.track.artistArtRef) { + console.log(item.track.artistArtRef[0].url); + } + if (item.track.artistId) { + console.log(item.track.artistId.length); + } + console.log(item.track.composer); + console.log(item.track.contentType); + console.log(item.track.discNumber); + console.log(item.track.durationMillis); + console.log(item.track.estimatedSize); + console.log(item.track.genre); + console.log(item.track.kind); + console.log(item.track.nid); + console.log(item.track.playCount); + console.log(item.track.storeId); + console.log(item.track.title); + console.log(item.track.trackAvailableForPurchase); + console.log(item.track.trackAvailableForSubscription); + console.log(item.track.trackNumber); + console.log(item.track.trackType); + console.log(item.track.year); + } + console.log(item.trackId); + }); + } + console.log(response.kind); + console.log(response.nextPageToken); });