spotify-api-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,261 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # ShowsController
8
+ class ShowsController < BaseController
9
+ # Get Spotify catalog information for a single show identified by its
10
+ # unique Spotify ID.
11
+ # @param [String] id Required parameter: Example:
12
+ # @param [String] market Optional parameter: Example:
13
+ # @return [ShowObject] response from the API call
14
+ def get_a_show(id,
15
+ market: nil)
16
+ new_api_call_builder
17
+ .request(new_request_builder(HttpMethodEnum::GET,
18
+ '/shows/{id}',
19
+ Server::DEFAULT)
20
+ .template_param(new_parameter(id, key: 'id')
21
+ .should_encode(true))
22
+ .query_param(new_parameter(market, key: 'market'))
23
+ .header_param(new_parameter('application/json', key: 'accept'))
24
+ .auth(Single.new('oauth_2_0')))
25
+ .response(new_response_handler
26
+ .deserializer(APIHelper.method(:custom_type_deserializer))
27
+ .deserialize_into(ShowObject.method(:from_hash))
28
+ .is_api_response(true)
29
+ .local_error('401',
30
+ "Bad or expired token. This can happen if the user revoked a'\
31
+ ' token or\nthe access token has expired. You should'\
32
+ ' re-authenticate the user.\n",
33
+ UnauthorizedException)
34
+ .local_error('403',
35
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
36
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
37
+ ' won't help here.\n",
38
+ ForbiddenException)
39
+ .local_error('429',
40
+ "The app has exceeded its rate limits.\n",
41
+ TooManyRequestsException))
42
+ .execute
43
+ end
44
+
45
+ # Get Spotify catalog information for several shows based on their Spotify
46
+ # IDs.
47
+ # @param [String] ids Required parameter: Example:
48
+ # @param [String] market Optional parameter: Example:
49
+ # @return [ManySimplifiedShows] response from the API call
50
+ def get_multiple_shows(ids,
51
+ market: nil)
52
+ new_api_call_builder
53
+ .request(new_request_builder(HttpMethodEnum::GET,
54
+ '/shows',
55
+ Server::DEFAULT)
56
+ .query_param(new_parameter(ids, key: 'ids'))
57
+ .query_param(new_parameter(market, key: 'market'))
58
+ .header_param(new_parameter('application/json', key: 'accept'))
59
+ .auth(Single.new('oauth_2_0')))
60
+ .response(new_response_handler
61
+ .deserializer(APIHelper.method(:custom_type_deserializer))
62
+ .deserialize_into(ManySimplifiedShows.method(:from_hash))
63
+ .is_api_response(true)
64
+ .local_error('401',
65
+ "Bad or expired token. This can happen if the user revoked a'\
66
+ ' token or\nthe access token has expired. You should'\
67
+ ' re-authenticate the user.\n",
68
+ UnauthorizedException)
69
+ .local_error('403',
70
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
71
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
72
+ ' won't help here.\n",
73
+ ForbiddenException)
74
+ .local_error('429',
75
+ "The app has exceeded its rate limits.\n",
76
+ TooManyRequestsException))
77
+ .execute
78
+ end
79
+
80
+ # Get Spotify catalog information about an show’s episodes. Optional
81
+ # parameters can be used to limit the number of episodes returned.
82
+ # @param [String] id Required parameter: Example:
83
+ # @param [String] market Optional parameter: Example:
84
+ # @param [Integer] limit Optional parameter: Example:20
85
+ # @param [Integer] offset Optional parameter: Example:0
86
+ # @return [PagingSimplifiedEpisodeObject] response from the API call
87
+ def get_a_shows_episodes(id,
88
+ market: nil,
89
+ limit: 20,
90
+ offset: 0)
91
+ new_api_call_builder
92
+ .request(new_request_builder(HttpMethodEnum::GET,
93
+ '/shows/{id}/episodes',
94
+ Server::DEFAULT)
95
+ .template_param(new_parameter(id, key: 'id')
96
+ .should_encode(true))
97
+ .query_param(new_parameter(market, key: 'market'))
98
+ .query_param(new_parameter(limit, key: 'limit'))
99
+ .query_param(new_parameter(offset, key: 'offset'))
100
+ .header_param(new_parameter('application/json', key: 'accept'))
101
+ .auth(Single.new('oauth_2_0')))
102
+ .response(new_response_handler
103
+ .deserializer(APIHelper.method(:custom_type_deserializer))
104
+ .deserialize_into(PagingSimplifiedEpisodeObject.method(:from_hash))
105
+ .is_api_response(true)
106
+ .local_error('401',
107
+ "Bad or expired token. This can happen if the user revoked a'\
108
+ ' token or\nthe access token has expired. You should'\
109
+ ' re-authenticate the user.\n",
110
+ UnauthorizedException)
111
+ .local_error('403',
112
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
113
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
114
+ ' won't help here.\n",
115
+ ForbiddenException)
116
+ .local_error('429',
117
+ "The app has exceeded its rate limits.\n",
118
+ TooManyRequestsException))
119
+ .execute
120
+ end
121
+
122
+ # Get a list of shows saved in the current Spotify user's library. Optional
123
+ # parameters can be used to limit the number of shows returned.
124
+ # @param [Integer] limit Optional parameter: Example:20
125
+ # @param [Integer] offset Optional parameter: Example:0
126
+ # @return [PagingSavedShowObject] response from the API call
127
+ def get_users_saved_shows(limit: 20,
128
+ offset: 0)
129
+ new_api_call_builder
130
+ .request(new_request_builder(HttpMethodEnum::GET,
131
+ '/me/shows',
132
+ Server::DEFAULT)
133
+ .query_param(new_parameter(limit, key: 'limit'))
134
+ .query_param(new_parameter(offset, key: 'offset'))
135
+ .header_param(new_parameter('application/json', key: 'accept'))
136
+ .auth(Single.new('oauth_2_0')))
137
+ .response(new_response_handler
138
+ .deserializer(APIHelper.method(:custom_type_deserializer))
139
+ .deserialize_into(PagingSavedShowObject.method(:from_hash))
140
+ .is_api_response(true)
141
+ .local_error('401',
142
+ "Bad or expired token. This can happen if the user revoked a'\
143
+ ' token or\nthe access token has expired. You should'\
144
+ ' re-authenticate the user.\n",
145
+ UnauthorizedException)
146
+ .local_error('403',
147
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
148
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
149
+ ' won't help here.\n",
150
+ ForbiddenException)
151
+ .local_error('429',
152
+ "The app has exceeded its rate limits.\n",
153
+ TooManyRequestsException))
154
+ .execute
155
+ end
156
+
157
+ # Save one or more shows to current Spotify user's library.
158
+ # @param [String] ids Required parameter: Example:
159
+ # @param [MeShowsRequest] body Optional parameter: Example:
160
+ # @return [void] response from the API call
161
+ def save_shows_user(ids,
162
+ body: nil)
163
+ new_api_call_builder
164
+ .request(new_request_builder(HttpMethodEnum::PUT,
165
+ '/me/shows',
166
+ Server::DEFAULT)
167
+ .query_param(new_parameter(ids, key: 'ids'))
168
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
169
+ .body_param(new_parameter(body))
170
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
171
+ .auth(Single.new('oauth_2_0')))
172
+ .response(new_response_handler
173
+ .is_response_void(true)
174
+ .is_api_response(true)
175
+ .local_error('401',
176
+ "Bad or expired token. This can happen if the user revoked a'\
177
+ ' token or\nthe access token has expired. You should'\
178
+ ' re-authenticate the user.\n",
179
+ UnauthorizedException)
180
+ .local_error('403',
181
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
182
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
183
+ ' won't help here.\n",
184
+ ForbiddenException)
185
+ .local_error('429',
186
+ "The app has exceeded its rate limits.\n",
187
+ TooManyRequestsException))
188
+ .execute
189
+ end
190
+
191
+ # Delete one or more shows from current Spotify user's library.
192
+ # @param [String] ids Required parameter: Example:
193
+ # @param [String] market Optional parameter: Example:
194
+ # @param [MeShowsRequest] body Optional parameter: Example:
195
+ # @return [void] response from the API call
196
+ def remove_shows_user(ids,
197
+ market: nil,
198
+ body: nil)
199
+ new_api_call_builder
200
+ .request(new_request_builder(HttpMethodEnum::DELETE,
201
+ '/me/shows',
202
+ Server::DEFAULT)
203
+ .query_param(new_parameter(ids, key: 'ids'))
204
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
205
+ .query_param(new_parameter(market, key: 'market'))
206
+ .body_param(new_parameter(body))
207
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
208
+ .auth(Single.new('oauth_2_0')))
209
+ .response(new_response_handler
210
+ .is_response_void(true)
211
+ .is_api_response(true)
212
+ .local_error('401',
213
+ "Bad or expired token. This can happen if the user revoked a'\
214
+ ' token or\nthe access token has expired. You should'\
215
+ ' re-authenticate the user.\n",
216
+ UnauthorizedException)
217
+ .local_error('403',
218
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
219
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
220
+ ' won't help here.\n",
221
+ ForbiddenException)
222
+ .local_error('429',
223
+ "The app has exceeded its rate limits.\n",
224
+ TooManyRequestsException))
225
+ .execute
226
+ end
227
+
228
+ # Check if one or more shows is already saved in the current Spotify user's
229
+ # library.
230
+ # @param [String] ids Required parameter: Example:
231
+ # @return [Array[TrueClass | FalseClass]] response from the API call
232
+ def check_users_saved_shows(ids)
233
+ new_api_call_builder
234
+ .request(new_request_builder(HttpMethodEnum::GET,
235
+ '/me/shows/contains',
236
+ Server::DEFAULT)
237
+ .query_param(new_parameter(ids, key: 'ids'))
238
+ .header_param(new_parameter('application/json', key: 'accept'))
239
+ .auth(Single.new('oauth_2_0')))
240
+ .response(new_response_handler
241
+ .deserializer(APIHelper.method(:deserialize_primitive_types))
242
+ .is_api_response(true)
243
+ .is_response_array(true)
244
+ .is_primitive_response(true)
245
+ .local_error('401',
246
+ "Bad or expired token. This can happen if the user revoked a'\
247
+ ' token or\nthe access token has expired. You should'\
248
+ ' re-authenticate the user.\n",
249
+ UnauthorizedException)
250
+ .local_error('403',
251
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
252
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
253
+ ' won't help here.\n",
254
+ ForbiddenException)
255
+ .local_error('429',
256
+ "The app has exceeded its rate limits.\n",
257
+ TooManyRequestsException))
258
+ .execute
259
+ end
260
+ end
261
+ end