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,239 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # EpisodesController
8
+ class EpisodesController < BaseController
9
+ # Get Spotify catalog information for a single episode identified by its
10
+ # unique Spotify ID.
11
+ # @param [String] id Required parameter: Example:
12
+ # @param [String] market Optional parameter: Example:
13
+ # @return [EpisodeObject] response from the API call
14
+ def get_an_episode(id,
15
+ market: nil)
16
+ new_api_call_builder
17
+ .request(new_request_builder(HttpMethodEnum::GET,
18
+ '/episodes/{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(EpisodeObject.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 episodes based on their
46
+ # Spotify IDs.
47
+ # @param [String] ids Required parameter: Example:
48
+ # @param [String] market Optional parameter: Example:
49
+ # @return [ManyEpisodes] response from the API call
50
+ def get_multiple_episodes(ids,
51
+ market: nil)
52
+ new_api_call_builder
53
+ .request(new_request_builder(HttpMethodEnum::GET,
54
+ '/episodes',
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(ManyEpisodes.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 a list of the episodes saved in the current Spotify user's
81
+ # library.<br/>
82
+ # This API endpoint is in __beta__ and could change without warning. Please
83
+ # share any feedback that you have, or issues that you discover, in our
84
+ # [developer community
85
+ # forum](https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotif
86
+ # y_Developer).
87
+ # @param [String] market Optional parameter: Example:
88
+ # @param [Integer] limit Optional parameter: Example:20
89
+ # @param [Integer] offset Optional parameter: Example:0
90
+ # @return [PagingSavedEpisodeObject] response from the API call
91
+ def get_users_saved_episodes(market: nil,
92
+ limit: 20,
93
+ offset: 0)
94
+ new_api_call_builder
95
+ .request(new_request_builder(HttpMethodEnum::GET,
96
+ '/me/episodes',
97
+ Server::DEFAULT)
98
+ .query_param(new_parameter(market, key: 'market'))
99
+ .query_param(new_parameter(limit, key: 'limit'))
100
+ .query_param(new_parameter(offset, key: 'offset'))
101
+ .header_param(new_parameter('application/json', key: 'accept'))
102
+ .auth(Single.new('oauth_2_0')))
103
+ .response(new_response_handler
104
+ .deserializer(APIHelper.method(:custom_type_deserializer))
105
+ .deserialize_into(PagingSavedEpisodeObject.method(:from_hash))
106
+ .is_api_response(true)
107
+ .local_error('401',
108
+ "Bad or expired token. This can happen if the user revoked a'\
109
+ ' token or\nthe access token has expired. You should'\
110
+ ' re-authenticate the user.\n",
111
+ UnauthorizedException)
112
+ .local_error('403',
113
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
114
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
115
+ ' won't help here.\n",
116
+ ForbiddenException)
117
+ .local_error('429',
118
+ "The app has exceeded its rate limits.\n",
119
+ TooManyRequestsException))
120
+ .execute
121
+ end
122
+
123
+ # Save one or more episodes to the current user's library.<br/>
124
+ # This API endpoint is in __beta__ and could change without warning. Please
125
+ # share any feedback that you have, or issues that you discover, in our
126
+ # [developer community
127
+ # forum](https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotif
128
+ # y_Developer).
129
+ # @param [String] ids Required parameter: Example:
130
+ # @param [MeEpisodesRequest] body Optional parameter: Example:
131
+ # @return [void] response from the API call
132
+ def save_episodes_user(ids,
133
+ body: nil)
134
+ new_api_call_builder
135
+ .request(new_request_builder(HttpMethodEnum::PUT,
136
+ '/me/episodes',
137
+ Server::DEFAULT)
138
+ .query_param(new_parameter(ids, key: 'ids'))
139
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
140
+ .body_param(new_parameter(body))
141
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
142
+ .auth(Single.new('oauth_2_0')))
143
+ .response(new_response_handler
144
+ .is_response_void(true)
145
+ .is_api_response(true)
146
+ .local_error('401',
147
+ "Bad or expired token. This can happen if the user revoked a'\
148
+ ' token or\nthe access token has expired. You should'\
149
+ ' re-authenticate the user.\n",
150
+ UnauthorizedException)
151
+ .local_error('403',
152
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
153
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
154
+ ' won't help here.\n",
155
+ ForbiddenException)
156
+ .local_error('429',
157
+ "The app has exceeded its rate limits.\n",
158
+ TooManyRequestsException))
159
+ .execute
160
+ end
161
+
162
+ # Remove one or more episodes from the current user's library.<br/>
163
+ # This API endpoint is in __beta__ and could change without warning. Please
164
+ # share any feedback that you have, or issues that you discover, in our
165
+ # [developer community
166
+ # forum](https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotif
167
+ # y_Developer).
168
+ # @param [String] ids Required parameter: Example:
169
+ # @param [MeEpisodesRequest1] body Optional parameter: Example:
170
+ # @return [void] response from the API call
171
+ def remove_episodes_user(ids,
172
+ body: nil)
173
+ new_api_call_builder
174
+ .request(new_request_builder(HttpMethodEnum::DELETE,
175
+ '/me/episodes',
176
+ Server::DEFAULT)
177
+ .query_param(new_parameter(ids, key: 'ids'))
178
+ .header_param(new_parameter('application/json', key: 'Content-Type'))
179
+ .body_param(new_parameter(body))
180
+ .body_serializer(proc do |param| param.to_json unless param.nil? end)
181
+ .auth(Single.new('oauth_2_0')))
182
+ .response(new_response_handler
183
+ .is_response_void(true)
184
+ .is_api_response(true)
185
+ .local_error('401',
186
+ "Bad or expired token. This can happen if the user revoked a'\
187
+ ' token or\nthe access token has expired. You should'\
188
+ ' re-authenticate the user.\n",
189
+ UnauthorizedException)
190
+ .local_error('403',
191
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
192
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
193
+ ' won't help here.\n",
194
+ ForbiddenException)
195
+ .local_error('429',
196
+ "The app has exceeded its rate limits.\n",
197
+ TooManyRequestsException))
198
+ .execute
199
+ end
200
+
201
+ # Check if one or more episodes is already saved in the current Spotify
202
+ # user's 'Your Episodes' library.<br/>
203
+ # This API endpoint is in __beta__ and could change without warning. Please
204
+ # share any feedback that you have, or issues that you discover, in our
205
+ # [developer community
206
+ # forum](https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotif
207
+ # y_Developer)..
208
+ # @param [String] ids Required parameter: Example:
209
+ # @return [Array[TrueClass | FalseClass]] response from the API call
210
+ def check_users_saved_episodes(ids)
211
+ new_api_call_builder
212
+ .request(new_request_builder(HttpMethodEnum::GET,
213
+ '/me/episodes/contains',
214
+ Server::DEFAULT)
215
+ .query_param(new_parameter(ids, key: 'ids'))
216
+ .header_param(new_parameter('application/json', key: 'accept'))
217
+ .auth(Single.new('oauth_2_0')))
218
+ .response(new_response_handler
219
+ .deserializer(APIHelper.method(:deserialize_primitive_types))
220
+ .is_api_response(true)
221
+ .is_response_array(true)
222
+ .is_primitive_response(true)
223
+ .local_error('401',
224
+ "Bad or expired token. This can happen if the user revoked a'\
225
+ ' token or\nthe access token has expired. You should'\
226
+ ' re-authenticate the user.\n",
227
+ UnauthorizedException)
228
+ .local_error('403',
229
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
230
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
231
+ ' won't help here.\n",
232
+ ForbiddenException)
233
+ .local_error('429',
234
+ "The app has exceeded its rate limits.\n",
235
+ TooManyRequestsException))
236
+ .execute
237
+ end
238
+ end
239
+ end
@@ -0,0 +1,39 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # GenresController
8
+ class GenresController < BaseController
9
+ # Retrieve a list of available genres seed parameter values for
10
+ # [recommendations](/documentation/web-api/reference/get-recommendations).
11
+ # @return [ManyGenres] response from the API call
12
+ def get_recommendation_genres
13
+ new_api_call_builder
14
+ .request(new_request_builder(HttpMethodEnum::GET,
15
+ '/recommendations/available-genre-seeds',
16
+ Server::DEFAULT)
17
+ .header_param(new_parameter('application/json', key: 'accept'))
18
+ .auth(Single.new('oauth_2_0')))
19
+ .response(new_response_handler
20
+ .deserializer(APIHelper.method(:custom_type_deserializer))
21
+ .deserialize_into(ManyGenres.method(:from_hash))
22
+ .is_api_response(true)
23
+ .local_error('401',
24
+ "Bad or expired token. This can happen if the user revoked a'\
25
+ ' token or\nthe access token has expired. You should'\
26
+ ' re-authenticate the user.\n",
27
+ UnauthorizedException)
28
+ .local_error('403',
29
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
30
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
31
+ ' won't help here.\n",
32
+ ForbiddenException)
33
+ .local_error('429',
34
+ "The app has exceeded its rate limits.\n",
35
+ TooManyRequestsException))
36
+ .execute
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,38 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # MarketsController
8
+ class MarketsController < BaseController
9
+ # Get the list of markets where Spotify is available.
10
+ # @return [Markets] response from the API call
11
+ def get_available_markets
12
+ new_api_call_builder
13
+ .request(new_request_builder(HttpMethodEnum::GET,
14
+ '/markets',
15
+ Server::DEFAULT)
16
+ .header_param(new_parameter('application/json', key: 'accept'))
17
+ .auth(Single.new('oauth_2_0')))
18
+ .response(new_response_handler
19
+ .deserializer(APIHelper.method(:custom_type_deserializer))
20
+ .deserialize_into(Markets.method(:from_hash))
21
+ .is_api_response(true)
22
+ .local_error('401',
23
+ "Bad or expired token. This can happen if the user revoked a'\
24
+ ' token or\nthe access token has expired. You should'\
25
+ ' re-authenticate the user.\n",
26
+ UnauthorizedException)
27
+ .local_error('403',
28
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
29
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
30
+ ' won't help here.\n",
31
+ ForbiddenException)
32
+ .local_error('429',
33
+ "The app has exceeded its rate limits.\n",
34
+ TooManyRequestsException))
35
+ .execute
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,82 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # OAuthAuthorizationController
8
+ class OAuthAuthorizationController < BaseController
9
+ # Create a new OAuth 2 token.
10
+ # @param [String] authorization Required parameter: Authorization header in
11
+ # Basic auth format
12
+ # @param [String] code Required parameter: Authorization Code
13
+ # @param [String] redirect_uri Required parameter: Redirect Uri
14
+ # @param [Hash] _field_parameters Additional optional form parameters are
15
+ # supported by this endpoint.
16
+ # @return [OAuthToken] response from the API call
17
+ def request_token(authorization,
18
+ code,
19
+ redirect_uri,
20
+ _field_parameters: nil)
21
+ new_api_call_builder
22
+ .request(new_request_builder(HttpMethodEnum::POST,
23
+ '/api/token',
24
+ Server::AUTH_SERVER)
25
+ .form_param(new_parameter('authorization_code', key: 'grant_type'))
26
+ .header_param(new_parameter(authorization, key: 'Authorization'))
27
+ .form_param(new_parameter(code, key: 'code'))
28
+ .form_param(new_parameter(redirect_uri, key: 'redirect_uri'))
29
+ .header_param(new_parameter('application/x-www-form-urlencoded', key: 'content-type'))
30
+ .header_param(new_parameter('application/json', key: 'accept'))
31
+ .additional_form_params(_field_parameters))
32
+ .response(new_response_handler
33
+ .deserializer(APIHelper.method(:custom_type_deserializer))
34
+ .deserialize_into(OAuthToken.method(:from_hash))
35
+ .is_api_response(true)
36
+ .local_error('400',
37
+ 'OAuth 2 provider returned an error.',
38
+ OAuthProviderException)
39
+ .local_error('401',
40
+ 'OAuth 2 provider says client authentication failed.',
41
+ OAuthProviderException))
42
+ .execute
43
+ end
44
+
45
+ # Obtain a new access token using a refresh token
46
+ # @param [String] authorization Required parameter: Authorization header in
47
+ # Basic auth format
48
+ # @param [String] refresh_token Required parameter: Refresh token
49
+ # @param [String] scope Optional parameter: Requested scopes as a
50
+ # space-delimited list.
51
+ # @param [Hash] _field_parameters Additional optional form parameters are
52
+ # supported by this endpoint.
53
+ # @return [OAuthToken] response from the API call
54
+ def refresh_token(authorization,
55
+ refresh_token,
56
+ scope: nil,
57
+ _field_parameters: nil)
58
+ new_api_call_builder
59
+ .request(new_request_builder(HttpMethodEnum::POST,
60
+ '/api/token',
61
+ Server::AUTH_SERVER)
62
+ .form_param(new_parameter('refresh_token', key: 'grant_type'))
63
+ .header_param(new_parameter(authorization, key: 'Authorization'))
64
+ .form_param(new_parameter(refresh_token, key: 'refresh_token'))
65
+ .form_param(new_parameter(scope, key: 'scope'))
66
+ .header_param(new_parameter('application/x-www-form-urlencoded', key: 'content-type'))
67
+ .header_param(new_parameter('application/json', key: 'accept'))
68
+ .additional_form_params(_field_parameters))
69
+ .response(new_response_handler
70
+ .deserializer(APIHelper.method(:custom_type_deserializer))
71
+ .deserialize_into(OAuthToken.method(:from_hash))
72
+ .is_api_response(true)
73
+ .local_error('400',
74
+ 'OAuth 2 provider returned an error.',
75
+ OAuthProviderException)
76
+ .local_error('401',
77
+ 'OAuth 2 provider says client authentication failed.',
78
+ OAuthProviderException))
79
+ .execute
80
+ end
81
+ end
82
+ end