class Deezify::API::Deezer
Public Class Methods
new()
click to toggle source
# File lib/deezify/api/deezer.rb, line 7 def initialize @connection = connection end
Public Instance Methods
add_tracks(playlist_id, *tracks)
click to toggle source
# File lib/deezify/api/deezer.rb, line 41 def add_tracks(playlist_id, *tracks) @connection.post do |req| req.url "/playlist/#{playlist_id}/tracks" req.params[:songs] = tracks.join ',' end end
create_playlist(title)
click to toggle source
# File lib/deezify/api/deezer.rb, line 32 def create_playlist(title) res = @connection.post do |req| req.url '/user/me/playlists' req.params[:title] = title end json_decode res.body end
search(query, params={})
click to toggle source
# File lib/deezify/api/deezer.rb, line 19 def search(query, params={}) unless params.empty? query = params.map{ |k, v| %Q(#{k}:"#{v}") }.join(' ') end res = @connection.get do |req| req.url '/search' req.params[:q] = query end json_decode(res.body)[:data] end
user_info()
click to toggle source
# File lib/deezify/api/deezer.rb, line 11 def user_info res = @connection.get do |req| req.url '/user/me' end json_decode res.body end
Private Instance Methods
connection()
click to toggle source
# File lib/deezify/api/deezer.rb, line 48 def connection Faraday.new url: 'https://api.deezer.com/' do |conn| conn.adapter Faraday.default_adapter conn.params[:access_token] = ENV.fetch('DEEZER_ACCESS_TOKEN') end end
json_decode(string)
click to toggle source
# File lib/deezify/api/deezer.rb, line 55 def json_decode(string) JSON.parse string, symbolize_names: true end