Sha256: fb6dbf6503ac61ba7501c5f1bc6ff5292562ba0fe43525a7179d8793155aadb8
Contents?: true
Size: 1.25 KB
Versions: 3
Compression:
Stored size: 1.25 KB
Contents
# frozen_string_literal: true module AppleMusic class SearchResponse < Response def initialize(props = {}) @results = SearchResult.new(props['results']) super end end module Search class << self # e.g. AppleMusic::Search.search(term: 'aaamyyy') # https://developer.apple.com/documentation/applemusicapi/search_for_catalog_resources def search(**options) options[:term] = format_term(options[:term]) if options[:term] storefront = Storefront.lookup(options.delete(:storefront)) response = AppleMusic.get("catalog/#{storefront}/search", options) SearchResult.new(response.body['results'] || {}) end # e.g. AppleMusic::Search.search_hints(term: 'aaamyyy') # https://developer.apple.com/documentation/applemusicapi/get_catalog_search_hints def search_hints(**options) options[:term] = format_term(options[:term]) if options[:term] storefront = Storefront.lookup(options.delete(:storefront)) response = AppleMusic.get("catalog/#{storefront}/search/hints", options) response.body.dig('results', 'terms') || [] end private def format_term(term) term.is_a?(Array) ? term.join('+') : term end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
apple_music-0.3.1 | lib/apple_music/search.rb |
apple_music-0.3.0 | lib/apple_music/search.rb |
apple_music-0.2.0 | lib/apple_music/search.rb |