Class: AppleMusic::Playlist
- Defined in:
- lib/apple_music/playlist.rb,
lib/apple_music/playlist/attributes.rb,
lib/apple_music/playlist/relationships.rb
Overview
Defined Under Namespace
Classes: Attributes, Relationships
Constant Summary
Constants inherited from Resource
Instance Attribute Summary
Attributes inherited from Resource
#attributes, #href, #id, #relationships, #type
Class Method Summary collapse
-
.find(id, **options) ⇒ Object
e.g.
-
.get_collection_by_ids(ids, **options) ⇒ Object
e.g.
-
.get_relationship(id, relationship_type, **options) ⇒ Object
e.g.
-
.list(**options) ⇒ Object
e.g.
-
.related_curator(id, **options) ⇒ Object
e.g.
-
.related_tracks(id, **options) ⇒ Object
e.g.
- .search(term, **options) ⇒ Object
Methods inherited from Resource
Constructor Details
This class inherits a constructor from AppleMusic::Resource
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class AppleMusic::Resource
Class Method Details
.find(id, **options) ⇒ Object
e.g. AppleMusic::Playlist.find(‘pl.acc464c750b94302b8806e5fcbe56e17’) developer.apple.com/documentation/applemusicapi/get_a_catalog_playlist
9 10 11 12 13 |
# File 'lib/apple_music/playlist.rb', line 9 def find(id, **) storefront = Storefront.lookup(.delete(:storefront)) response = AppleMusic.get("catalog/#{storefront}/playlists/#{id}", ) Response.new(response.body).data.first end |
.get_collection_by_ids(ids, **options) ⇒ Object
e.g. AppleMusic::Playlist.get_collection_by_ids([‘pl.acc464c750b94302b8806e5fcbe56e17’, ‘pl.97c6f95b0b884bedbcce117f9ea5d54b’]) developer.apple.com/documentation/applemusicapi/get_multiple_catalog_playlists
24 25 26 27 28 29 |
# File 'lib/apple_music/playlist.rb', line 24 def get_collection_by_ids(ids, **) ids = ids.is_a?(Array) ? ids.join(',') : ids storefront = Storefront.lookup(.delete(:storefront)) response = AppleMusic.get("catalog/#{storefront}/playlists", .merge(ids: ids)) Response.new(response.body).data end |
.get_relationship(id, relationship_type, **options) ⇒ Object
e.g. AppleMusic::Playlist.get_relationship(‘pl.acc464c750b94302b8806e5fcbe56e17’, :curator) developer.apple.com/documentation/applemusicapi/get_a_catalog_playlist_s_relationship_directly_by_name
33 34 35 36 37 |
# File 'lib/apple_music/playlist.rb', line 33 def get_relationship(id, relationship_type, **) storefront = Storefront.lookup(.delete(:storefront)) response = AppleMusic.get("catalog/#{storefront}/playlists/#{id}/#{relationship_type}", ) Response.new(response.body).data end |
.list(**options) ⇒ Object
e.g. AppleMusic::Playlist.list(ids: [‘pl.acc464c750b94302b8806e5fcbe56e17’, ‘pl.97c6f95b0b884bedbcce117f9ea5d54b’])
16 17 18 19 20 |
# File 'lib/apple_music/playlist.rb', line 16 def list(**) raise ParameterMissing, 'required parameter :ids is missing' unless [:ids] get_collection_by_ids(.delete(:ids), ) end |
.related_curator(id, **options) ⇒ Object
e.g. AppleMusic::Playlist.related_curator(‘pl.acc464c750b94302b8806e5fcbe56e17’)
40 41 42 |
# File 'lib/apple_music/playlist.rb', line 40 def (id, **) get_relationship(id, :curator, ).first end |
.related_tracks(id, **options) ⇒ Object
e.g. AppleMusic::Playlist.related_tracks(‘pl.acc464c750b94302b8806e5fcbe56e17’)
45 46 47 |
# File 'lib/apple_music/playlist.rb', line 45 def (id, **) get_relationship(id, :tracks, ) end |
.search(term, **options) ⇒ Object
49 50 51 |
# File 'lib/apple_music/playlist.rb', line 49 def search(term, **) AppleMusic.search(**.merge(term: term, types: :playlists)).playlists end |