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,258 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # AudiobooksController
8
+ class AudiobooksController < BaseController
9
+ # Get Spotify catalog information for a single audiobook. Audiobooks are
10
+ # only available within the US, UK, Canada, Ireland, New Zealand and
11
+ # Australia markets.
12
+ # @param [String] id Required parameter: Example:
13
+ # @param [String] market Optional parameter: Example:
14
+ # @return [AudiobookObject] response from the API call
15
+ def get_an_audiobook(id,
16
+ market: nil)
17
+ new_api_call_builder
18
+ .request(new_request_builder(HttpMethodEnum::GET,
19
+ '/audiobooks/{id}',
20
+ Server::DEFAULT)
21
+ .template_param(new_parameter(id, key: 'id')
22
+ .should_encode(true))
23
+ .query_param(new_parameter(market, key: 'market'))
24
+ .header_param(new_parameter('application/json', key: 'accept'))
25
+ .auth(Single.new('oauth_2_0')))
26
+ .response(new_response_handler
27
+ .deserializer(APIHelper.method(:custom_type_deserializer))
28
+ .deserialize_into(AudiobookObject.method(:from_hash))
29
+ .is_api_response(true)
30
+ .local_error('400',
31
+ "The request contains malformed data in path, query parameters,'\
32
+ ' or body.\n",
33
+ BadRequestException)
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('404',
45
+ "The requested resource cannot be found.\n",
46
+ NotFoundException)
47
+ .local_error('429',
48
+ "The app has exceeded its rate limits.\n",
49
+ TooManyRequestsException))
50
+ .execute
51
+ end
52
+
53
+ # Get Spotify catalog information for several audiobooks identified by their
54
+ # Spotify IDs. Audiobooks are only available within the US, UK, Canada,
55
+ # Ireland, New Zealand and Australia markets.
56
+ # @param [String] ids Required parameter: Example:
57
+ # @param [String] market Optional parameter: Example:
58
+ # @return [ManyAudiobooks] response from the API call
59
+ def get_multiple_audiobooks(ids,
60
+ market: nil)
61
+ new_api_call_builder
62
+ .request(new_request_builder(HttpMethodEnum::GET,
63
+ '/audiobooks',
64
+ Server::DEFAULT)
65
+ .query_param(new_parameter(ids, key: 'ids'))
66
+ .query_param(new_parameter(market, key: 'market'))
67
+ .header_param(new_parameter('application/json', key: 'accept'))
68
+ .auth(Single.new('oauth_2_0')))
69
+ .response(new_response_handler
70
+ .deserializer(APIHelper.method(:custom_type_deserializer))
71
+ .deserialize_into(ManyAudiobooks.method(:from_hash))
72
+ .is_api_response(true)
73
+ .local_error('401',
74
+ "Bad or expired token. This can happen if the user revoked a'\
75
+ ' token or\nthe access token has expired. You should'\
76
+ ' re-authenticate the user.\n",
77
+ UnauthorizedException)
78
+ .local_error('403',
79
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
80
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
81
+ ' won't help here.\n",
82
+ ForbiddenException)
83
+ .local_error('429',
84
+ "The app has exceeded its rate limits.\n",
85
+ TooManyRequestsException))
86
+ .execute
87
+ end
88
+
89
+ # Get Spotify catalog information about an audiobook's chapters. Audiobooks
90
+ # are only available within the US, UK, Canada, Ireland, New Zealand and
91
+ # Australia markets.
92
+ # @param [String] id Required parameter: Example:
93
+ # @param [String] market Optional parameter: Example:
94
+ # @param [Integer] limit Optional parameter: Example:20
95
+ # @param [Integer] offset Optional parameter: Example:0
96
+ # @return [PagingSimplifiedChapterObject] response from the API call
97
+ def get_audiobook_chapters(id,
98
+ market: nil,
99
+ limit: 20,
100
+ offset: 0)
101
+ new_api_call_builder
102
+ .request(new_request_builder(HttpMethodEnum::GET,
103
+ '/audiobooks/{id}/chapters',
104
+ Server::DEFAULT)
105
+ .template_param(new_parameter(id, key: 'id')
106
+ .should_encode(true))
107
+ .query_param(new_parameter(market, key: 'market'))
108
+ .query_param(new_parameter(limit, key: 'limit'))
109
+ .query_param(new_parameter(offset, key: 'offset'))
110
+ .header_param(new_parameter('application/json', key: 'accept'))
111
+ .auth(Single.new('oauth_2_0')))
112
+ .response(new_response_handler
113
+ .deserializer(APIHelper.method(:custom_type_deserializer))
114
+ .deserialize_into(PagingSimplifiedChapterObject.method(:from_hash))
115
+ .is_api_response(true)
116
+ .local_error('401',
117
+ "Bad or expired token. This can happen if the user revoked a'\
118
+ ' token or\nthe access token has expired. You should'\
119
+ ' re-authenticate the user.\n",
120
+ UnauthorizedException)
121
+ .local_error('403',
122
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
123
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
124
+ ' won't help here.\n",
125
+ ForbiddenException)
126
+ .local_error('429',
127
+ "The app has exceeded its rate limits.\n",
128
+ TooManyRequestsException))
129
+ .execute
130
+ end
131
+
132
+ # Get a list of the audiobooks saved in the current Spotify user's 'Your
133
+ # Music' library.
134
+ # @param [Integer] limit Optional parameter: Example:20
135
+ # @param [Integer] offset Optional parameter: Example:0
136
+ # @return [PagingSavedAudiobookObject] response from the API call
137
+ def get_users_saved_audiobooks(limit: 20,
138
+ offset: 0)
139
+ new_api_call_builder
140
+ .request(new_request_builder(HttpMethodEnum::GET,
141
+ '/me/audiobooks',
142
+ Server::DEFAULT)
143
+ .query_param(new_parameter(limit, key: 'limit'))
144
+ .query_param(new_parameter(offset, key: 'offset'))
145
+ .header_param(new_parameter('application/json', key: 'accept'))
146
+ .auth(Single.new('oauth_2_0')))
147
+ .response(new_response_handler
148
+ .deserializer(APIHelper.method(:custom_type_deserializer))
149
+ .deserialize_into(PagingSavedAudiobookObject.method(:from_hash))
150
+ .is_api_response(true)
151
+ .local_error('401',
152
+ "Bad or expired token. This can happen if the user revoked a'\
153
+ ' token or\nthe access token has expired. You should'\
154
+ ' re-authenticate the user.\n",
155
+ UnauthorizedException)
156
+ .local_error('403',
157
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
158
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
159
+ ' won't help here.\n",
160
+ ForbiddenException)
161
+ .local_error('429',
162
+ "The app has exceeded its rate limits.\n",
163
+ TooManyRequestsException))
164
+ .execute
165
+ end
166
+
167
+ # Save one or more audiobooks to the current Spotify user's library.
168
+ # @param [String] ids Required parameter: Example:
169
+ # @return [void] response from the API call
170
+ def save_audiobooks_user(ids)
171
+ new_api_call_builder
172
+ .request(new_request_builder(HttpMethodEnum::PUT,
173
+ '/me/audiobooks',
174
+ Server::DEFAULT)
175
+ .query_param(new_parameter(ids, key: 'ids'))
176
+ .auth(Single.new('oauth_2_0')))
177
+ .response(new_response_handler
178
+ .is_response_void(true)
179
+ .is_api_response(true)
180
+ .local_error('401',
181
+ "Bad or expired token. This can happen if the user revoked a'\
182
+ ' token or\nthe access token has expired. You should'\
183
+ ' re-authenticate the user.\n",
184
+ UnauthorizedException)
185
+ .local_error('403',
186
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
187
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
188
+ ' won't help here.\n",
189
+ ForbiddenException)
190
+ .local_error('429',
191
+ "The app has exceeded its rate limits.\n",
192
+ TooManyRequestsException))
193
+ .execute
194
+ end
195
+
196
+ # Remove one or more audiobooks from the Spotify user's library.
197
+ # @param [String] ids Required parameter: Example:
198
+ # @return [void] response from the API call
199
+ def remove_audiobooks_user(ids)
200
+ new_api_call_builder
201
+ .request(new_request_builder(HttpMethodEnum::DELETE,
202
+ '/me/audiobooks',
203
+ Server::DEFAULT)
204
+ .query_param(new_parameter(ids, key: 'ids'))
205
+ .auth(Single.new('oauth_2_0')))
206
+ .response(new_response_handler
207
+ .is_response_void(true)
208
+ .is_api_response(true)
209
+ .local_error('401',
210
+ "Bad or expired token. This can happen if the user revoked a'\
211
+ ' token or\nthe access token has expired. You should'\
212
+ ' re-authenticate the user.\n",
213
+ UnauthorizedException)
214
+ .local_error('403',
215
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
216
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
217
+ ' won't help here.\n",
218
+ ForbiddenException)
219
+ .local_error('429',
220
+ "The app has exceeded its rate limits.\n",
221
+ TooManyRequestsException))
222
+ .execute
223
+ end
224
+
225
+ # Check if one or more audiobooks are already saved in the current Spotify
226
+ # user's library.
227
+ # @param [String] ids Required parameter: Example:
228
+ # @return [Array[TrueClass | FalseClass]] response from the API call
229
+ def check_users_saved_audiobooks(ids)
230
+ new_api_call_builder
231
+ .request(new_request_builder(HttpMethodEnum::GET,
232
+ '/me/audiobooks/contains',
233
+ Server::DEFAULT)
234
+ .query_param(new_parameter(ids, key: 'ids'))
235
+ .header_param(new_parameter('application/json', key: 'accept'))
236
+ .auth(Single.new('oauth_2_0')))
237
+ .response(new_response_handler
238
+ .deserializer(APIHelper.method(:deserialize_primitive_types))
239
+ .is_api_response(true)
240
+ .is_response_array(true)
241
+ .is_primitive_response(true)
242
+ .local_error('401',
243
+ "Bad or expired token. This can happen if the user revoked a'\
244
+ ' token or\nthe access token has expired. You should'\
245
+ ' re-authenticate the user.\n",
246
+ UnauthorizedException)
247
+ .local_error('403',
248
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
249
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
250
+ ' won't help here.\n",
251
+ ForbiddenException)
252
+ .local_error('429',
253
+ "The app has exceeded its rate limits.\n",
254
+ TooManyRequestsException))
255
+ .execute
256
+ end
257
+ end
258
+ end
@@ -0,0 +1,66 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # BaseController.
8
+ class BaseController
9
+ include CoreLibrary
10
+ attr_accessor :config, :http_call_back
11
+
12
+ def self.user_agent
13
+ 'APIMATIC 3.0'
14
+ end
15
+
16
+
17
+ GLOBAL_ERRORS = {
18
+ 'default' => ErrorCase.new
19
+ .error_message('HTTP response not OK.')
20
+ .exception_type(APIException)
21
+ }.freeze
22
+
23
+ # Initialization constructor.
24
+ # @param [GlobalConfiguration] global_configuration The instance of GlobalConfiguration.
25
+ def initialize(global_configuration)
26
+ @global_configuration = global_configuration
27
+ @config = @global_configuration.client_configuration
28
+ @http_call_back = @config.http_callback
29
+ @api_call = ApiCall.new(@global_configuration)
30
+ end
31
+
32
+ # Creates a new builder for the Api Call instance.
33
+ # @return [ApiCall] The instance of ApiCall.
34
+ def new_api_call_builder
35
+ @api_call.new_builder
36
+ end
37
+
38
+ # Creates a new instance of the request builder.
39
+ # @param [String] http_method The HTTP method to use in the request.
40
+ # @param [String] path The endpoint path to use in the request.
41
+ # @param [String] server The server to extract the base uri for the request.
42
+ # @return [RequestBuilder] The instance of RequestBuilder.
43
+ def new_request_builder(http_method, path, server)
44
+ RequestBuilder.new
45
+ .http_method(http_method)
46
+ .path(path)
47
+ .server(server)
48
+ end
49
+
50
+ # Creates a new instance of the response handler.
51
+ # @return [ResponseHandler] The instance of ResponseHandler.
52
+ def new_response_handler
53
+ ResponseHandler.new
54
+ end
55
+
56
+ # Creates a new instance of the parameter.
57
+ # @param [String|optional] key The key of the parameter.
58
+ # @param [Object] value The value of the parameter.
59
+ # @return [Parameter] The instance of Parameter.
60
+ def new_parameter(value, key: nil)
61
+ Parameter.new
62
+ .key(key)
63
+ .value(value)
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,83 @@
1
+ # spotify_web_api
2
+ #
3
+ # This file was automatically generated by APIMATIC v2.0
4
+ # ( https://apimatic.io ).
5
+
6
+ module SpotifyWebApi
7
+ # CategoriesController
8
+ class CategoriesController < BaseController
9
+ # Get a list of categories used to tag items in Spotify (on, for example,
10
+ # the Spotify player’s “Browse” tab).
11
+ # @param [String] locale Optional parameter: Example:
12
+ # @param [Integer] limit Optional parameter: Example:20
13
+ # @param [Integer] offset Optional parameter: Example:0
14
+ # @return [PagedCategories] response from the API call
15
+ def get_categories(locale: nil,
16
+ limit: 20,
17
+ offset: 0)
18
+ new_api_call_builder
19
+ .request(new_request_builder(HttpMethodEnum::GET,
20
+ '/browse/categories',
21
+ Server::DEFAULT)
22
+ .query_param(new_parameter(locale, key: 'locale'))
23
+ .query_param(new_parameter(limit, key: 'limit'))
24
+ .query_param(new_parameter(offset, key: 'offset'))
25
+ .header_param(new_parameter('application/json', key: 'accept'))
26
+ .auth(Single.new('oauth_2_0')))
27
+ .response(new_response_handler
28
+ .deserializer(APIHelper.method(:custom_type_deserializer))
29
+ .deserialize_into(PagedCategories.method(:from_hash))
30
+ .is_api_response(true)
31
+ .local_error('401',
32
+ "Bad or expired token. This can happen if the user revoked a'\
33
+ ' token or\nthe access token has expired. You should'\
34
+ ' re-authenticate the user.\n",
35
+ UnauthorizedException)
36
+ .local_error('403',
37
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
38
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
39
+ ' won't help here.\n",
40
+ ForbiddenException)
41
+ .local_error('429',
42
+ "The app has exceeded its rate limits.\n",
43
+ TooManyRequestsException))
44
+ .execute
45
+ end
46
+
47
+ # Get a single category used to tag items in Spotify (on, for example, the
48
+ # Spotify player’s “Browse” tab).
49
+ # @param [String] category_id Required parameter: Example:
50
+ # @param [String] locale Optional parameter: Example:
51
+ # @return [CategoryObject] response from the API call
52
+ def get_a_category(category_id,
53
+ locale: nil)
54
+ new_api_call_builder
55
+ .request(new_request_builder(HttpMethodEnum::GET,
56
+ '/browse/categories/{category_id}',
57
+ Server::DEFAULT)
58
+ .template_param(new_parameter(category_id, key: 'category_id')
59
+ .should_encode(true))
60
+ .query_param(new_parameter(locale, key: 'locale'))
61
+ .header_param(new_parameter('application/json', key: 'accept'))
62
+ .auth(Single.new('oauth_2_0')))
63
+ .response(new_response_handler
64
+ .deserializer(APIHelper.method(:custom_type_deserializer))
65
+ .deserialize_into(CategoryObject.method(:from_hash))
66
+ .is_api_response(true)
67
+ .local_error('401',
68
+ "Bad or expired token. This can happen if the user revoked a'\
69
+ ' token or\nthe access token has expired. You should'\
70
+ ' re-authenticate the user.\n",
71
+ UnauthorizedException)
72
+ .local_error('403',
73
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
74
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
75
+ ' won't help here.\n",
76
+ ForbiddenException)
77
+ .local_error('429',
78
+ "The app has exceeded its rate limits.\n",
79
+ TooManyRequestsException))
80
+ .execute
81
+ end
82
+ end
83
+ 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
+ # ChaptersController
8
+ class ChaptersController < BaseController
9
+ # Get Spotify catalog information for a single audiobook chapter. Chapters
10
+ # are only available within the US, UK, Canada, Ireland, New Zealand and
11
+ # Australia markets.
12
+ # @param [String] id Required parameter: Example:
13
+ # @param [String] market Optional parameter: Example:
14
+ # @return [ChapterObject] response from the API call
15
+ def get_a_chapter(id,
16
+ market: nil)
17
+ new_api_call_builder
18
+ .request(new_request_builder(HttpMethodEnum::GET,
19
+ '/chapters/{id}',
20
+ Server::DEFAULT)
21
+ .template_param(new_parameter(id, key: 'id')
22
+ .should_encode(true))
23
+ .query_param(new_parameter(market, key: 'market'))
24
+ .header_param(new_parameter('application/json', key: 'accept'))
25
+ .auth(Single.new('oauth_2_0')))
26
+ .response(new_response_handler
27
+ .deserializer(APIHelper.method(:custom_type_deserializer))
28
+ .deserialize_into(ChapterObject.method(:from_hash))
29
+ .is_api_response(true)
30
+ .local_error('401',
31
+ "Bad or expired token. This can happen if the user revoked a'\
32
+ ' token or\nthe access token has expired. You should'\
33
+ ' re-authenticate the user.\n",
34
+ UnauthorizedException)
35
+ .local_error('403',
36
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
37
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
38
+ ' won't help here.\n",
39
+ ForbiddenException)
40
+ .local_error('429',
41
+ "The app has exceeded its rate limits.\n",
42
+ TooManyRequestsException))
43
+ .execute
44
+ end
45
+
46
+ # Get Spotify catalog information for several audiobook chapters identified
47
+ # by their Spotify IDs. Chapters are only available within the US, UK,
48
+ # Canada, Ireland, New Zealand and Australia markets.
49
+ # @param [String] ids Required parameter: Example:
50
+ # @param [String] market Optional parameter: Example:
51
+ # @return [ManyChapters] response from the API call
52
+ def get_several_chapters(ids,
53
+ market: nil)
54
+ new_api_call_builder
55
+ .request(new_request_builder(HttpMethodEnum::GET,
56
+ '/chapters',
57
+ Server::DEFAULT)
58
+ .query_param(new_parameter(ids, key: 'ids'))
59
+ .query_param(new_parameter(market, key: 'market'))
60
+ .header_param(new_parameter('application/json', key: 'accept'))
61
+ .auth(Single.new('oauth_2_0')))
62
+ .response(new_response_handler
63
+ .deserializer(APIHelper.method(:custom_type_deserializer))
64
+ .deserialize_into(ManyChapters.method(:from_hash))
65
+ .is_api_response(true)
66
+ .local_error('401',
67
+ "Bad or expired token. This can happen if the user revoked a'\
68
+ ' token or\nthe access token has expired. You should'\
69
+ ' re-authenticate the user.\n",
70
+ UnauthorizedException)
71
+ .local_error('403',
72
+ "Bad OAuth request (wrong consumer key, bad nonce, expired'\
73
+ '\ntimestamp...). Unfortunately, re-authenticating the user'\
74
+ ' won't help here.\n",
75
+ ForbiddenException)
76
+ .local_error('429',
77
+ "The app has exceeded its rate limits.\n",
78
+ TooManyRequestsException))
79
+ .execute
80
+ end
81
+ end
82
+ end