Class: AteTracks::Requests

Inherits:
Object
  • Object
show all
Includes:
Structures, HTTParty
Defined in:
lib/atetracks/requests.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Structures

not_empty?, populate

Constructor Details

#initialize(play_token = get_play_token.content.play_token) ⇒ Requests

Returns a new instance of Requests.



14
15
16
# File 'lib/atetracks/requests.rb', line 14

def initialize(play_token=get_play_token.content.play_token)
  @play_token = play_token
end

Instance Attribute Details

#play_tokenObject

Returns the value of attribute play_token.



7
8
9
# File 'lib/atetracks/requests.rb', line 7

def play_token
  @play_token
end

Instance Method Details

#explore_mixes(sort = 'popular', scope = 'all', include = 'pagination,mixes[likes_count,user,length],details') ⇒ Object



23
24
25
26
# File 'lib/atetracks/requests.rb', line 23

def explore_mixes(sort='popular', scope='all', include='pagination,mixes[likes_count,user,length],details')
  data = self.class.get("/explore/#{scope}/#{sort}", query: {include: include})
  Response.new(data, 'MixSet')
end

#get_play_tokenObject



18
19
20
21
# File 'lib/atetracks/requests.rb', line 18

def get_play_token
  data = self.class.get('/sets/new')
  Response.new(data, 'PlayToken')
end

#mix_info(params, by_id = false) ⇒ Object



28
29
30
31
32
33
34
35
# File 'lib/atetracks/requests.rb', line 28

def mix_info(params, by_id=false)
  if by_id
    data = self.class.get("/mixes/#{params[:id]}")
  else
    data = self.class.get("/#{params[:user]}/#{params[:mix_name]}")
  end
  Response.new(data, 'Mix')
end

#raw_track(mix_id, action = 'play', include = 'track[faved,annotation,artist_details]') ⇒ Object



42
43
44
# File 'lib/atetracks/requests.rb', line 42

def raw_track(mix_id, action='play', include='track[faved,annotation,artist_details]')
  self.class.get("/sets/#{@play_token}/#{action}", query: {include: include, mix_id: mix_id}).body
end

#track(mix_id, action = 'play', include = 'track[faved,annotation,artist_details]') ⇒ Object



37
38
39
40
# File 'lib/atetracks/requests.rb', line 37

def track(mix_id, action='play', include='track[faved,annotation,artist_details]')
  data = self.class.get("/sets/#{@play_token}/#{action}", query: {include: include, mix_id: mix_id})
  Response.new(data, 'Set')
end