spotify-api-sdk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (178) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +30 -0
  3. data/README.md +107 -0
  4. data/lib/spotify_web_api/api_helper.rb +10 -0
  5. data/lib/spotify_web_api/client.rb +154 -0
  6. data/lib/spotify_web_api/configuration.rb +180 -0
  7. data/lib/spotify_web_api/controllers/albums_controller.rb +295 -0
  8. data/lib/spotify_web_api/controllers/artists_controller.rb +187 -0
  9. data/lib/spotify_web_api/controllers/audiobooks_controller.rb +258 -0
  10. data/lib/spotify_web_api/controllers/base_controller.rb +66 -0
  11. data/lib/spotify_web_api/controllers/categories_controller.rb +83 -0
  12. data/lib/spotify_web_api/controllers/chapters_controller.rb +82 -0
  13. data/lib/spotify_web_api/controllers/episodes_controller.rb +239 -0
  14. data/lib/spotify_web_api/controllers/genres_controller.rb +39 -0
  15. data/lib/spotify_web_api/controllers/markets_controller.rb +38 -0
  16. data/lib/spotify_web_api/controllers/o_auth_authorization_controller.rb +82 -0
  17. data/lib/spotify_web_api/controllers/player_controller.rb +509 -0
  18. data/lib/spotify_web_api/controllers/playlists_controller.rb +521 -0
  19. data/lib/spotify_web_api/controllers/search_controller.rb +60 -0
  20. data/lib/spotify_web_api/controllers/shows_controller.rb +261 -0
  21. data/lib/spotify_web_api/controllers/tracks_controller.rb +491 -0
  22. data/lib/spotify_web_api/controllers/users_controller.rb +396 -0
  23. data/lib/spotify_web_api/exceptions/api_exception.rb +10 -0
  24. data/lib/spotify_web_api/exceptions/bad_request_exception.rb +32 -0
  25. data/lib/spotify_web_api/exceptions/forbidden_exception.rb +32 -0
  26. data/lib/spotify_web_api/exceptions/not_found_exception.rb +32 -0
  27. data/lib/spotify_web_api/exceptions/o_auth_provider_exception.rb +48 -0
  28. data/lib/spotify_web_api/exceptions/too_many_requests_exception.rb +32 -0
  29. data/lib/spotify_web_api/exceptions/unauthorized_exception.rb +32 -0
  30. data/lib/spotify_web_api/http/api_response.rb +21 -0
  31. data/lib/spotify_web_api/http/auth/o_auth2.rb +146 -0
  32. data/lib/spotify_web_api/http/http_call_back.rb +10 -0
  33. data/lib/spotify_web_api/http/http_method_enum.rb +10 -0
  34. data/lib/spotify_web_api/http/http_request.rb +10 -0
  35. data/lib/spotify_web_api/http/http_response.rb +10 -0
  36. data/lib/spotify_web_api/models/album_base.rb +168 -0
  37. data/lib/spotify_web_api/models/album_group_enum.rb +29 -0
  38. data/lib/spotify_web_api/models/album_object.rb +247 -0
  39. data/lib/spotify_web_api/models/album_restriction_object.rb +53 -0
  40. data/lib/spotify_web_api/models/album_type_enum.rb +26 -0
  41. data/lib/spotify_web_api/models/artist_discography_album_object.rb +194 -0
  42. data/lib/spotify_web_api/models/artist_object.rb +147 -0
  43. data/lib/spotify_web_api/models/audio_analysis_object.rb +156 -0
  44. data/lib/spotify_web_api/models/audio_features_object.rb +249 -0
  45. data/lib/spotify_web_api/models/audiobook_base.rb +245 -0
  46. data/lib/spotify_web_api/models/audiobook_object.rb +253 -0
  47. data/lib/spotify_web_api/models/author_object.rb +50 -0
  48. data/lib/spotify_web_api/models/base_model.rb +62 -0
  49. data/lib/spotify_web_api/models/categories.rb +110 -0
  50. data/lib/spotify_web_api/models/category_object.rb +82 -0
  51. data/lib/spotify_web_api/models/chapter_base.rb +237 -0
  52. data/lib/spotify_web_api/models/chapter_object.rb +245 -0
  53. data/lib/spotify_web_api/models/chapter_restriction_object.rb +59 -0
  54. data/lib/spotify_web_api/models/context_object.rb +78 -0
  55. data/lib/spotify_web_api/models/copyright_object.rb +60 -0
  56. data/lib/spotify_web_api/models/currently_playing_context_object.rb +137 -0
  57. data/lib/spotify_web_api/models/currently_playing_object.rb +109 -0
  58. data/lib/spotify_web_api/models/cursor_object.rb +59 -0
  59. data/lib/spotify_web_api/models/cursor_paged_artists.rb +48 -0
  60. data/lib/spotify_web_api/models/cursor_paging_object.rb +88 -0
  61. data/lib/spotify_web_api/models/cursor_paging_play_history_object.rb +106 -0
  62. data/lib/spotify_web_api/models/cursor_paging_simplified_artist_object.rb +106 -0
  63. data/lib/spotify_web_api/models/device_object.rb +126 -0
  64. data/lib/spotify_web_api/models/disallows_object.rb +140 -0
  65. data/lib/spotify_web_api/models/episode_base.rb +237 -0
  66. data/lib/spotify_web_api/models/episode_object.rb +246 -0
  67. data/lib/spotify_web_api/models/episode_restriction_object.rb +58 -0
  68. data/lib/spotify_web_api/models/error_object.rb +59 -0
  69. data/lib/spotify_web_api/models/explicit_content_settings_object.rb +61 -0
  70. data/lib/spotify_web_api/models/external_id_object.rb +72 -0
  71. data/lib/spotify_web_api/models/external_url_object.rb +51 -0
  72. data/lib/spotify_web_api/models/followers_object.rb +62 -0
  73. data/lib/spotify_web_api/models/image_object.rb +67 -0
  74. data/lib/spotify_web_api/models/include_external_enum.rb +23 -0
  75. data/lib/spotify_web_api/models/item_type1_enum.rb +20 -0
  76. data/lib/spotify_web_api/models/item_type2_enum.rb +23 -0
  77. data/lib/spotify_web_api/models/item_type3_enum.rb +23 -0
  78. data/lib/spotify_web_api/models/item_type_enum.rb +38 -0
  79. data/lib/spotify_web_api/models/linked_track_object.rb +89 -0
  80. data/lib/spotify_web_api/models/many_albums.rb +57 -0
  81. data/lib/spotify_web_api/models/many_artists.rb +57 -0
  82. data/lib/spotify_web_api/models/many_audio_features.rb +57 -0
  83. data/lib/spotify_web_api/models/many_audiobooks.rb +57 -0
  84. data/lib/spotify_web_api/models/many_chapters.rb +57 -0
  85. data/lib/spotify_web_api/models/many_devices.rb +57 -0
  86. data/lib/spotify_web_api/models/many_episodes.rb +57 -0
  87. data/lib/spotify_web_api/models/many_genres.rb +48 -0
  88. data/lib/spotify_web_api/models/many_simplified_shows.rb +57 -0
  89. data/lib/spotify_web_api/models/many_tracks.rb +57 -0
  90. data/lib/spotify_web_api/models/markets.rb +50 -0
  91. data/lib/spotify_web_api/models/me_albums_request.rb +55 -0
  92. data/lib/spotify_web_api/models/me_episodes_request.rb +52 -0
  93. data/lib/spotify_web_api/models/me_episodes_request1.rb +54 -0
  94. data/lib/spotify_web_api/models/me_following_request.rb +53 -0
  95. data/lib/spotify_web_api/models/me_following_request1.rb +55 -0
  96. data/lib/spotify_web_api/models/me_player_play_request.rb +89 -0
  97. data/lib/spotify_web_api/models/me_player_request.rb +63 -0
  98. data/lib/spotify_web_api/models/me_shows_request.rb +55 -0
  99. data/lib/spotify_web_api/models/me_tracks_request.rb +53 -0
  100. data/lib/spotify_web_api/models/me_tracks_request1.rb +55 -0
  101. data/lib/spotify_web_api/models/meta.rb +110 -0
  102. data/lib/spotify_web_api/models/mode_enum.rb +30 -0
  103. data/lib/spotify_web_api/models/narrator_object.rb +50 -0
  104. data/lib/spotify_web_api/models/o_auth_provider_error_enum.rb +45 -0
  105. data/lib/spotify_web_api/models/o_auth_scope_enum.rb +94 -0
  106. data/lib/spotify_web_api/models/o_auth_token.rb +96 -0
  107. data/lib/spotify_web_api/models/paged_albums.rb +48 -0
  108. data/lib/spotify_web_api/models/paged_categories.rb +48 -0
  109. data/lib/spotify_web_api/models/paging_artist_discography_album_object.rb +110 -0
  110. data/lib/spotify_web_api/models/paging_artist_object.rb +110 -0
  111. data/lib/spotify_web_api/models/paging_featured_playlist_object.rb +59 -0
  112. data/lib/spotify_web_api/models/paging_object.rb +93 -0
  113. data/lib/spotify_web_api/models/paging_playlist_object.rb +110 -0
  114. data/lib/spotify_web_api/models/paging_playlist_track_object.rb +110 -0
  115. data/lib/spotify_web_api/models/paging_saved_album_object.rb +110 -0
  116. data/lib/spotify_web_api/models/paging_saved_audiobook_object.rb +110 -0
  117. data/lib/spotify_web_api/models/paging_saved_episode_object.rb +110 -0
  118. data/lib/spotify_web_api/models/paging_saved_show_object.rb +110 -0
  119. data/lib/spotify_web_api/models/paging_saved_track_object.rb +110 -0
  120. data/lib/spotify_web_api/models/paging_simplified_album_object.rb +110 -0
  121. data/lib/spotify_web_api/models/paging_simplified_audiobook_object.rb +110 -0
  122. data/lib/spotify_web_api/models/paging_simplified_chapter_object.rb +110 -0
  123. data/lib/spotify_web_api/models/paging_simplified_episode_object.rb +110 -0
  124. data/lib/spotify_web_api/models/paging_simplified_show_object.rb +110 -0
  125. data/lib/spotify_web_api/models/paging_simplified_track_object.rb +110 -0
  126. data/lib/spotify_web_api/models/paging_track_object.rb +110 -0
  127. data/lib/spotify_web_api/models/play_history_object.rb +77 -0
  128. data/lib/spotify_web_api/models/playlist_object.rb +193 -0
  129. data/lib/spotify_web_api/models/playlist_owner_object.rb +109 -0
  130. data/lib/spotify_web_api/models/playlist_snapshot_id.rb +50 -0
  131. data/lib/spotify_web_api/models/playlist_track_object.rb +90 -0
  132. data/lib/spotify_web_api/models/playlist_tracks_ref_object.rb +60 -0
  133. data/lib/spotify_web_api/models/playlist_user_object.rb +98 -0
  134. data/lib/spotify_web_api/models/playlists_followers_request.rb +51 -0
  135. data/lib/spotify_web_api/models/playlists_request.rb +82 -0
  136. data/lib/spotify_web_api/models/playlists_tracks_request.rb +72 -0
  137. data/lib/spotify_web_api/models/playlists_tracks_request1.rb +97 -0
  138. data/lib/spotify_web_api/models/playlists_tracks_request2.rb +75 -0
  139. data/lib/spotify_web_api/models/private_user_object.rb +181 -0
  140. data/lib/spotify_web_api/models/public_user_object.rb +128 -0
  141. data/lib/spotify_web_api/models/queue_object.rb +60 -0
  142. data/lib/spotify_web_api/models/reason_enum.rb +29 -0
  143. data/lib/spotify_web_api/models/recommendation_seed_object.rb +104 -0
  144. data/lib/spotify_web_api/models/recommendations_object.rb +74 -0
  145. data/lib/spotify_web_api/models/release_date_precision_enum.rb +26 -0
  146. data/lib/spotify_web_api/models/resume_point_object.rb +60 -0
  147. data/lib/spotify_web_api/models/saved_album_object.rb +73 -0
  148. data/lib/spotify_web_api/models/saved_audiobook_object.rb +73 -0
  149. data/lib/spotify_web_api/models/saved_episode_object.rb +70 -0
  150. data/lib/spotify_web_api/models/saved_show_object.rb +73 -0
  151. data/lib/spotify_web_api/models/saved_track_object.rb +73 -0
  152. data/lib/spotify_web_api/models/search_items.rb +107 -0
  153. data/lib/spotify_web_api/models/section_object.rb +180 -0
  154. data/lib/spotify_web_api/models/segment_object.rb +166 -0
  155. data/lib/spotify_web_api/models/show_base.rb +211 -0
  156. data/lib/spotify_web_api/models/show_object.rb +219 -0
  157. data/lib/spotify_web_api/models/simplified_album_object.rb +186 -0
  158. data/lib/spotify_web_api/models/simplified_artist_object.rb +98 -0
  159. data/lib/spotify_web_api/models/simplified_playlist_object.rb +184 -0
  160. data/lib/spotify_web_api/models/simplified_track_object.rb +227 -0
  161. data/lib/spotify_web_api/models/time_interval_object.rb +68 -0
  162. data/lib/spotify_web_api/models/track.rb +331 -0
  163. data/lib/spotify_web_api/models/track1.rb +50 -0
  164. data/lib/spotify_web_api/models/track_object.rb +265 -0
  165. data/lib/spotify_web_api/models/track_restriction_object.rb +58 -0
  166. data/lib/spotify_web_api/models/type2_enum.rb +20 -0
  167. data/lib/spotify_web_api/models/type3_enum.rb +20 -0
  168. data/lib/spotify_web_api/models/type4_enum.rb +20 -0
  169. data/lib/spotify_web_api/models/type6_enum.rb +20 -0
  170. data/lib/spotify_web_api/models/type7_enum.rb +20 -0
  171. data/lib/spotify_web_api/models/type8_enum.rb +20 -0
  172. data/lib/spotify_web_api/models/type9_enum.rb +20 -0
  173. data/lib/spotify_web_api/models/type_enum.rb +20 -0
  174. data/lib/spotify_web_api/models/users_playlists_request.rb +87 -0
  175. data/lib/spotify_web_api/utilities/date_time_helper.rb +11 -0
  176. data/lib/spotify_web_api/utilities/file_wrapper.rb +16 -0
  177. data/lib/spotify_web_api.rb +198 -0
  178. metadata +264 -0
@@ -0,0 +1,521 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # PlaylistsController
8
+ class PlaylistsController < BaseController
9
+ # Get a playlist owned by a Spotify user.
10
+ # @param [String] playlist_id Required parameter: Example:
11
+ # @param [String] market Optional parameter: Example:
12
+ # @param [String] fields Optional parameter: Example:
13
+ # @param [String] additional_types Optional parameter: Example:
14
+ # @return [PlaylistObject] response from the API call
15
+ def get_playlist(playlist_id,
16
+ market: nil,
17
+ fields: nil,
18
+ additional_types: nil)
19
+ new_api_call_builder
20
+ .request(new_request_builder(HttpMethodEnum::GET,
21
+ '/playlists/{playlist_id}',
22
+ Server::DEFAULT)
23
+ .template_param(new_parameter(playlist_id, key: 'playlist_id')
24
+ .should_encode(true))
25
+ .query_param(new_parameter(market, key: 'market'))
26
+ .query_param(new_parameter(fields, key: 'fields'))
27
+ .query_param(new_parameter(additional_types, key: 'additional_types'))
28
+ .header_param(new_parameter('application/json', key: 'accept'))
29
+ .auth(Single.new('oauth_2_0')))
30
+ .response(new_response_handler
31
+ .deserializer(APIHelper.method(:custom_type_deserializer))
32
+ .deserialize_into(PlaylistObject.method(:from_hash))
33
+ .is_api_response(true)
34
+ .local_error('401',
35
+ "Bad or expired token. This can happen if the user revoked a'\
36
+ ' token or\nthe access token has expired. You should'\
37
+ ' re-authenticate the user.\n",
38
+ UnauthorizedException)
39
+ .local_error('403',
40
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
41
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
42
+ ' won't help here.\n",
43
+ ForbiddenException)
44
+ .local_error('429',
45
+ "The app has exceeded its rate limits.\n",
46
+ TooManyRequestsException))
47
+ .execute
48
+ end
49
+
50
+ # Change a playlist's name and public/private state. (The user must, of
51
+ # course, own the playlist.)
52
+ # @param [String] playlist_id Required parameter: Example:
53
+ # @param [PlaylistsRequest] body Optional parameter: Example:
54
+ # @return [void] response from the API call
55
+ def change_playlist_details(playlist_id,
56
+ body: nil)
57
+ new_api_call_builder
58
+ .request(new_request_builder(HttpMethodEnum::PUT,
59
+ '/playlists/{playlist_id}',
60
+ Server::DEFAULT)
61
+ .template_param(new_parameter(playlist_id, key: 'playlist_id')
62
+ .should_encode(true))
63
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
64
+ .body_param(new_parameter(body))
65
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
66
+ .auth(Single.new('oauth_2_0')))
67
+ .response(new_response_handler
68
+ .is_response_void(true)
69
+ .is_api_response(true)
70
+ .local_error('401',
71
+ "Bad or expired token. This can happen if the user revoked a'\
72
+ ' token or\nthe access token has expired. You should'\
73
+ ' re-authenticate the user.\n",
74
+ UnauthorizedException)
75
+ .local_error('403',
76
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
77
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
78
+ ' won't help here.\n",
79
+ ForbiddenException)
80
+ .local_error('429',
81
+ "The app has exceeded its rate limits.\n",
82
+ TooManyRequestsException))
83
+ .execute
84
+ end
85
+
86
+ # Get full details of the items of a playlist owned by a Spotify user.
87
+ # @param [String] playlist_id Required parameter: Example:
88
+ # @param [String] market Optional parameter: Example:
89
+ # @param [String] fields Optional parameter: Example:
90
+ # @param [Integer] limit Optional parameter: Example:20
91
+ # @param [Integer] offset Optional parameter: Example:0
92
+ # @param [String] additional_types Optional parameter: Example:
93
+ # @return [PagingPlaylistTrackObject] response from the API call
94
+ def get_playlists_tracks(playlist_id,
95
+ market: nil,
96
+ fields: nil,
97
+ limit: 20,
98
+ offset: 0,
99
+ additional_types: nil)
100
+ new_api_call_builder
101
+ .request(new_request_builder(HttpMethodEnum::GET,
102
+ '/playlists/{playlist_id}/tracks',
103
+ Server::DEFAULT)
104
+ .template_param(new_parameter(playlist_id, key: 'playlist_id')
105
+ .should_encode(true))
106
+ .query_param(new_parameter(market, key: 'market'))
107
+ .query_param(new_parameter(fields, key: 'fields'))
108
+ .query_param(new_parameter(limit, key: 'limit'))
109
+ .query_param(new_parameter(offset, key: 'offset'))
110
+ .query_param(new_parameter(additional_types, key: 'additional_types'))
111
+ .header_param(new_parameter('application/json', key: 'accept'))
112
+ .auth(Single.new('oauth_2_0')))
113
+ .response(new_response_handler
114
+ .deserializer(APIHelper.method(:custom_type_deserializer))
115
+ .deserialize_into(PagingPlaylistTrackObject.method(:from_hash))
116
+ .is_api_response(true)
117
+ .local_error('401',
118
+ "Bad or expired token. This can happen if the user revoked a'\
119
+ ' token or\nthe access token has expired. You should'\
120
+ ' re-authenticate the user.\n",
121
+ UnauthorizedException)
122
+ .local_error('403',
123
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
124
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
125
+ ' won't help here.\n",
126
+ ForbiddenException)
127
+ .local_error('429',
128
+ "The app has exceeded its rate limits.\n",
129
+ TooManyRequestsException))
130
+ .execute
131
+ end
132
+
133
+ # Add one or more items to a user's playlist.
134
+ # @param [String] playlist_id Required parameter: Example:
135
+ # @param [Integer] position Optional parameter: Example:
136
+ # @param [String] uris Optional parameter: Example:
137
+ # @param [PlaylistsTracksRequest] body Optional parameter: Example:
138
+ # @return [PlaylistSnapshotId] response from the API call
139
+ def add_tracks_to_playlist(playlist_id,
140
+ position: nil,
141
+ uris: nil,
142
+ body: nil)
143
+ new_api_call_builder
144
+ .request(new_request_builder(HttpMethodEnum::POST,
145
+ '/playlists/{playlist_id}/tracks',
146
+ Server::DEFAULT)
147
+ .template_param(new_parameter(playlist_id, key: 'playlist_id')
148
+ .should_encode(true))
149
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
150
+ .query_param(new_parameter(position, key: 'position'))
151
+ .query_param(new_parameter(uris, key: 'uris'))
152
+ .body_param(new_parameter(body))
153
+ .header_param(new_parameter('application/json', key: 'accept'))
154
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
155
+ .auth(Single.new('oauth_2_0')))
156
+ .response(new_response_handler
157
+ .deserializer(APIHelper.method(:custom_type_deserializer))
158
+ .deserialize_into(PlaylistSnapshotId.method(:from_hash))
159
+ .is_api_response(true)
160
+ .local_error('401',
161
+ "Bad or expired token. This can happen if the user revoked a'\
162
+ ' token or\nthe access token has expired. You should'\
163
+ ' re-authenticate the user.\n",
164
+ UnauthorizedException)
165
+ .local_error('403',
166
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
167
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
168
+ ' won't help here.\n",
169
+ ForbiddenException)
170
+ .local_error('429',
171
+ "The app has exceeded its rate limits.\n",
172
+ TooManyRequestsException))
173
+ .execute
174
+ end
175
+
176
+ # Either reorder or replace items in a playlist depending on the request's
177
+ # parameters.
178
+ # To reorder items, include `range_start`, `insert_before`, `range_length`
179
+ # and `snapshot_id` in the request's body.
180
+ # To replace items, include `uris` as either a query parameter or in the
181
+ # request's body.
182
+ # Replacing items in a playlist will overwrite its existing items. This
183
+ # operation can be used for replacing or clearing items in a playlist.
184
+ # <br/>
185
+ # **Note**: Replace and reorder are mutually exclusive operations which
186
+ # share the same endpoint, but have different parameters.
187
+ # These operations can't be applied together in a single request.
188
+ # @param [String] playlist_id Required parameter: Example:
189
+ # @param [String] uris Optional parameter: Example:
190
+ # @param [PlaylistsTracksRequest1] body Optional parameter: Example:
191
+ # @return [PlaylistSnapshotId] response from the API call
192
+ def reorder_or_replace_playlists_tracks(playlist_id,
193
+ uris: nil,
194
+ body: nil)
195
+ new_api_call_builder
196
+ .request(new_request_builder(HttpMethodEnum::PUT,
197
+ '/playlists/{playlist_id}/tracks',
198
+ Server::DEFAULT)
199
+ .template_param(new_parameter(playlist_id, key: 'playlist_id')
200
+ .should_encode(true))
201
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
202
+ .query_param(new_parameter(uris, key: 'uris'))
203
+ .body_param(new_parameter(body))
204
+ .header_param(new_parameter('application/json', key: 'accept'))
205
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
206
+ .auth(Single.new('oauth_2_0')))
207
+ .response(new_response_handler
208
+ .deserializer(APIHelper.method(:custom_type_deserializer))
209
+ .deserialize_into(PlaylistSnapshotId.method(:from_hash))
210
+ .is_api_response(true)
211
+ .local_error('401',
212
+ "Bad or expired token. This can happen if the user revoked a'\
213
+ ' token or\nthe access token has expired. You should'\
214
+ ' re-authenticate the user.\n",
215
+ UnauthorizedException)
216
+ .local_error('403',
217
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
218
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
219
+ ' won't help here.\n",
220
+ ForbiddenException)
221
+ .local_error('429',
222
+ "The app has exceeded its rate limits.\n",
223
+ TooManyRequestsException))
224
+ .execute
225
+ end
226
+
227
+ # Remove one or more items from a user's playlist.
228
+ # @param [String] playlist_id Required parameter: Example:
229
+ # @param [PlaylistsTracksRequest2] body Optional parameter: Example:
230
+ # @return [PlaylistSnapshotId] response from the API call
231
+ def remove_tracks_playlist(playlist_id,
232
+ body: nil)
233
+ new_api_call_builder
234
+ .request(new_request_builder(HttpMethodEnum::DELETE,
235
+ '/playlists/{playlist_id}/tracks',
236
+ Server::DEFAULT)
237
+ .template_param(new_parameter(playlist_id, key: 'playlist_id')
238
+ .should_encode(true))
239
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
240
+ .body_param(new_parameter(body))
241
+ .header_param(new_parameter('application/json', key: 'accept'))
242
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
243
+ .auth(Single.new('oauth_2_0')))
244
+ .response(new_response_handler
245
+ .deserializer(APIHelper.method(:custom_type_deserializer))
246
+ .deserialize_into(PlaylistSnapshotId.method(:from_hash))
247
+ .is_api_response(true)
248
+ .local_error('401',
249
+ "Bad or expired token. This can happen if the user revoked a'\
250
+ ' token or\nthe access token has expired. You should'\
251
+ ' re-authenticate the user.\n",
252
+ UnauthorizedException)
253
+ .local_error('403',
254
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
255
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
256
+ ' won't help here.\n",
257
+ ForbiddenException)
258
+ .local_error('429',
259
+ "The app has exceeded its rate limits.\n",
260
+ TooManyRequestsException))
261
+ .execute
262
+ end
263
+
264
+ # Get a list of the playlists owned or followed by the current Spotify
265
+ # user.
266
+ # @param [Integer] limit Optional parameter: Example:20
267
+ # @param [Integer] offset Optional parameter: Example:0
268
+ # @return [PagingPlaylistObject] response from the API call
269
+ def get_a_list_of_current_users_playlists(limit: 20,
270
+ offset: 0)
271
+ new_api_call_builder
272
+ .request(new_request_builder(HttpMethodEnum::GET,
273
+ '/me/playlists',
274
+ Server::DEFAULT)
275
+ .query_param(new_parameter(limit, key: 'limit'))
276
+ .query_param(new_parameter(offset, key: 'offset'))
277
+ .header_param(new_parameter('application/json', key: 'accept'))
278
+ .auth(Single.new('oauth_2_0')))
279
+ .response(new_response_handler
280
+ .deserializer(APIHelper.method(:custom_type_deserializer))
281
+ .deserialize_into(PagingPlaylistObject.method(:from_hash))
282
+ .is_api_response(true)
283
+ .local_error('401',
284
+ "Bad or expired token. This can happen if the user revoked a'\
285
+ ' token or\nthe access token has expired. You should'\
286
+ ' re-authenticate the user.\n",
287
+ UnauthorizedException)
288
+ .local_error('403',
289
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
290
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
291
+ ' won't help here.\n",
292
+ ForbiddenException)
293
+ .local_error('429',
294
+ "The app has exceeded its rate limits.\n",
295
+ TooManyRequestsException))
296
+ .execute
297
+ end
298
+
299
+ # Get a list of the playlists owned or followed by a Spotify user.
300
+ # @param [String] user_id Required parameter: Example:
301
+ # @param [Integer] limit Optional parameter: Example:20
302
+ # @param [Integer] offset Optional parameter: Example:0
303
+ # @return [PagingPlaylistObject] response from the API call
304
+ def get_list_users_playlists(user_id,
305
+ limit: 20,
306
+ offset: 0)
307
+ new_api_call_builder
308
+ .request(new_request_builder(HttpMethodEnum::GET,
309
+ '/users/{user_id}/playlists',
310
+ Server::DEFAULT)
311
+ .template_param(new_parameter(user_id, key: 'user_id')
312
+ .should_encode(true))
313
+ .query_param(new_parameter(limit, key: 'limit'))
314
+ .query_param(new_parameter(offset, key: 'offset'))
315
+ .header_param(new_parameter('application/json', key: 'accept'))
316
+ .auth(Single.new('oauth_2_0')))
317
+ .response(new_response_handler
318
+ .deserializer(APIHelper.method(:custom_type_deserializer))
319
+ .deserialize_into(PagingPlaylistObject.method(:from_hash))
320
+ .is_api_response(true)
321
+ .local_error('401',
322
+ "Bad or expired token. This can happen if the user revoked a'\
323
+ ' token or\nthe access token has expired. You should'\
324
+ ' re-authenticate the user.\n",
325
+ UnauthorizedException)
326
+ .local_error('403',
327
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
328
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
329
+ ' won't help here.\n",
330
+ ForbiddenException)
331
+ .local_error('429',
332
+ "The app has exceeded its rate limits.\n",
333
+ TooManyRequestsException))
334
+ .execute
335
+ end
336
+
337
+ # Create a playlist for a Spotify user. (The playlist will be empty until
338
+ # you [add
339
+ # tracks](/documentation/web-api/reference/add-tracks-to-playlist).)
340
+ # Each user is generally limited to a maximum of 11000 playlists.
341
+ # @param [String] user_id Required parameter: Example:
342
+ # @param [UsersPlaylistsRequest] body Optional parameter: Example:
343
+ # @return [PlaylistObject] response from the API call
344
+ def create_playlist(user_id,
345
+ body: nil)
346
+ new_api_call_builder
347
+ .request(new_request_builder(HttpMethodEnum::POST,
348
+ '/users/{user_id}/playlists',
349
+ Server::DEFAULT)
350
+ .template_param(new_parameter(user_id, key: 'user_id')
351
+ .should_encode(true))
352
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
353
+ .body_param(new_parameter(body))
354
+ .header_param(new_parameter('application/json', key: 'accept'))
355
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
356
+ .auth(Single.new('oauth_2_0')))
357
+ .response(new_response_handler
358
+ .deserializer(APIHelper.method(:custom_type_deserializer))
359
+ .deserialize_into(PlaylistObject.method(:from_hash))
360
+ .is_api_response(true)
361
+ .local_error('401',
362
+ "Bad or expired token. This can happen if the user revoked a'\
363
+ ' token or\nthe access token has expired. You should'\
364
+ ' re-authenticate the user.\n",
365
+ UnauthorizedException)
366
+ .local_error('403',
367
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
368
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
369
+ ' won't help here.\n",
370
+ ForbiddenException)
371
+ .local_error('429',
372
+ "The app has exceeded its rate limits.\n",
373
+ TooManyRequestsException))
374
+ .execute
375
+ end
376
+
377
+ # Get a list of Spotify featured playlists (shown, for example, on a Spotify
378
+ # player's 'Browse' tab).
379
+ # @param [String] locale Optional parameter: Example:
380
+ # @param [Integer] limit Optional parameter: Example:20
381
+ # @param [Integer] offset Optional parameter: Example:0
382
+ # @return [PagingFeaturedPlaylistObject] response from the API call
383
+ def get_featured_playlists(locale: nil,
384
+ limit: 20,
385
+ offset: 0)
386
+ new_api_call_builder
387
+ .request(new_request_builder(HttpMethodEnum::GET,
388
+ '/browse/featured-playlists',
389
+ Server::DEFAULT)
390
+ .query_param(new_parameter(locale, key: 'locale'))
391
+ .query_param(new_parameter(limit, key: 'limit'))
392
+ .query_param(new_parameter(offset, key: 'offset'))
393
+ .header_param(new_parameter('application/json', key: 'accept'))
394
+ .auth(Single.new('oauth_2_0')))
395
+ .response(new_response_handler
396
+ .deserializer(APIHelper.method(:custom_type_deserializer))
397
+ .deserialize_into(PagingFeaturedPlaylistObject.method(:from_hash))
398
+ .is_api_response(true)
399
+ .local_error('401',
400
+ "Bad or expired token. This can happen if the user revoked a'\
401
+ ' token or\nthe access token has expired. You should'\
402
+ ' re-authenticate the user.\n",
403
+ UnauthorizedException)
404
+ .local_error('403',
405
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
406
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
407
+ ' won't help here.\n",
408
+ ForbiddenException)
409
+ .local_error('429',
410
+ "The app has exceeded its rate limits.\n",
411
+ TooManyRequestsException))
412
+ .execute
413
+ end
414
+
415
+ # Get a list of Spotify playlists tagged with a particular category.
416
+ # @param [String] category_id Required parameter: Example:
417
+ # @param [Integer] limit Optional parameter: Example:20
418
+ # @param [Integer] offset Optional parameter: Example:0
419
+ # @return [PagingFeaturedPlaylistObject] response from the API call
420
+ def get_a_categories_playlists(category_id,
421
+ limit: 20,
422
+ offset: 0)
423
+ new_api_call_builder
424
+ .request(new_request_builder(HttpMethodEnum::GET,
425
+ '/browse/categories/{category_id}/playlists',
426
+ Server::DEFAULT)
427
+ .template_param(new_parameter(category_id, key: 'category_id')
428
+ .should_encode(true))
429
+ .query_param(new_parameter(limit, key: 'limit'))
430
+ .query_param(new_parameter(offset, key: 'offset'))
431
+ .header_param(new_parameter('application/json', key: 'accept'))
432
+ .auth(Single.new('oauth_2_0')))
433
+ .response(new_response_handler
434
+ .deserializer(APIHelper.method(:custom_type_deserializer))
435
+ .deserialize_into(PagingFeaturedPlaylistObject.method(:from_hash))
436
+ .is_api_response(true)
437
+ .local_error('401',
438
+ "Bad or expired token. This can happen if the user revoked a'\
439
+ ' token or\nthe access token has expired. You should'\
440
+ ' re-authenticate the user.\n",
441
+ UnauthorizedException)
442
+ .local_error('403',
443
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
444
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
445
+ ' won't help here.\n",
446
+ ForbiddenException)
447
+ .local_error('429',
448
+ "The app has exceeded its rate limits.\n",
449
+ TooManyRequestsException))
450
+ .execute
451
+ end
452
+
453
+ # Get the current image associated with a specific playlist.
454
+ # @param [String] playlist_id Required parameter: Example:
455
+ # @return [Array[ImageObject]] response from the API call
456
+ def get_playlist_cover(playlist_id)
457
+ new_api_call_builder
458
+ .request(new_request_builder(HttpMethodEnum::GET,
459
+ '/playlists/{playlist_id}/images',
460
+ Server::DEFAULT)
461
+ .template_param(new_parameter(playlist_id, key: 'playlist_id')
462
+ .should_encode(true))
463
+ .header_param(new_parameter('application/json', key: 'accept'))
464
+ .auth(Single.new('oauth_2_0')))
465
+ .response(new_response_handler
466
+ .deserializer(APIHelper.method(:custom_type_deserializer))
467
+ .deserialize_into(ImageObject.method(:from_hash))
468
+ .is_api_response(true)
469
+ .is_response_array(true)
470
+ .local_error('401',
471
+ "Bad or expired token. This can happen if the user revoked a'\
472
+ ' token or\nthe access token has expired. You should'\
473
+ ' re-authenticate the user.\n",
474
+ UnauthorizedException)
475
+ .local_error('403',
476
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
477
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
478
+ ' won't help here.\n",
479
+ ForbiddenException)
480
+ .local_error('429',
481
+ "The app has exceeded its rate limits.\n",
482
+ TooManyRequestsException))
483
+ .execute
484
+ end
485
+
486
+ # Replace the image used to represent a specific playlist.
487
+ # @param [String] playlist_id Required parameter: Example:
488
+ # @param [Object] body Required parameter: Example:
489
+ # @return [void] response from the API call
490
+ def upload_custom_playlist_cover(playlist_id,
491
+ body)
492
+ new_api_call_builder
493
+ .request(new_request_builder(HttpMethodEnum::PUT,
494
+ '/playlists/{playlist_id}/images',
495
+ Server::DEFAULT)
496
+ .template_param(new_parameter(playlist_id, key: 'playlist_id')
497
+ .should_encode(true))
498
+ .body_param(new_parameter(body))
499
+ .header_param(new_parameter('application/json; charset=utf-8', key: 'content-type'))
500
+ .body_serializer(APIHelper.method(:json_serialize))
501
+ .auth(Single.new('oauth_2_0')))
502
+ .response(new_response_handler
503
+ .is_response_void(true)
504
+ .is_api_response(true)
505
+ .local_error('401',
506
+ "Bad or expired token. This can happen if the user revoked a'\
507
+ ' token or\nthe access token has expired. You should'\
508
+ ' re-authenticate the user.\n",
509
+ UnauthorizedException)
510
+ .local_error('403',
511
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
512
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
513
+ ' won't help here.\n",
514
+ ForbiddenException)
515
+ .local_error('429',
516
+ "The app has exceeded its rate limits.\n",
517
+ TooManyRequestsException))
518
+ .execute
519
+ end
520
+ end
521
+ end
@@ -0,0 +1,60 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # SearchController
8
+ class SearchController < BaseController
9
+ # Get Spotify catalog information about albums, artists, playlists, tracks,
10
+ # shows, episodes or audiobooks
11
+ # that match a keyword string. Audiobooks are only available within the US,
12
+ # UK, Canada, Ireland, New Zealand and Australia markets.
13
+ # @param [String] q Required parameter: Example:
14
+ # @param [Array[ItemTypeEnum]] type Required parameter: Example:
15
+ # @param [String] market Optional parameter: Example:
16
+ # @param [Integer] limit Optional parameter: Example:20
17
+ # @param [Integer] offset Optional parameter: Example:0
18
+ # @param [IncludeExternalEnum] include_external Optional parameter:
19
+ # Example:
20
+ # @return [SearchItems] response from the API call
21
+ def search(q,
22
+ type,
23
+ market: nil,
24
+ limit: 20,
25
+ offset: 0,
26
+ include_external: nil)
27
+ new_api_call_builder
28
+ .request(new_request_builder(HttpMethodEnum::GET,
29
+ '/search',
30
+ Server::DEFAULT)
31
+ .query_param(new_parameter(q, key: 'q'))
32
+ .query_param(new_parameter(type, key: 'type'))
33
+ .query_param(new_parameter(market, key: 'market'))
34
+ .query_param(new_parameter(limit, key: 'limit'))
35
+ .query_param(new_parameter(offset, key: 'offset'))
36
+ .query_param(new_parameter(include_external, key: 'include_external'))
37
+ .header_param(new_parameter('application/json', key: 'accept'))
38
+ .auth(Single.new('oauth_2_0'))
39
+ .array_serialization_format(ArraySerializationFormat::CSV))
40
+ .response(new_response_handler
41
+ .deserializer(APIHelper.method(:custom_type_deserializer))
42
+ .deserialize_into(SearchItems.method(:from_hash))
43
+ .is_api_response(true)
44
+ .local_error('401',
45
+ "Bad or expired token. This can happen if the user revoked a'\
46
+ ' token or\nthe access token has expired. You should'\
47
+ ' re-authenticate the user.\n",
48
+ UnauthorizedException)
49
+ .local_error('403',
50
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
51
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
52
+ ' won't help here.\n",
53
+ ForbiddenException)
54
+ .local_error('429',
55
+ "The app has exceeded its rate limits.\n",
56
+ TooManyRequestsException))
57
+ .execute
58
+ end
59
+ end
60
+ end