/
release_manager.rb
55 lines (41 loc) · 2.28 KB
/
release_manager.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
module Sevendigital
class ReleaseManager < Manager
def get_details(release_id, options = {})
api_response = @api_client.make_api_request(:GET, "release/details", {:releaseId => release_id}, options)
@api_client.release_digestor.from_xml_doc(api_response.item_xml("release"))
end
def get_tracks(release_id, options = {})
options[:page_size] ||= 100
api_response = @api_client.make_api_request(:GET, "release/tracks", {:releaseId => release_id}, options)
@api_client.track_digestor.list_from_xml_doc(api_response.item_xml("tracks"))
end
def get_chart(options={})
api_response = @api_client.make_api_request(:GET, "release/chart", {}, options)
@api_client.chart_item_digestor.list_from_xml_doc(api_response.item_xml("chart"))
end
def get_by_date(from_date = nil, to_date = nil, options = {})
parameters = Hash.new
parameters[:fromDate] = from_date.strftime("%Y%m%d") if from_date
parameters[:toDate] = to_date.strftime("%Y%m%d") if to_date
api_response = @api_client.make_api_request(:GET, "release/byDate", parameters, options)
@api_client.release_digestor.list_from_xml_doc(api_response.item_xml("releases"))
end
def get_recommendations(release_id, options = {})
api_response = @api_client.make_api_request(:GET, "release/recommend", {:releaseId => release_id}, options)
@api_client.release_digestor.nested_list_from_xml_doc(api_response.item_xml("recommendations"), :recommendedItem, :release)
end
def get_top_by_tag(tags, options = {})
api_response = @api_client.make_api_request(:GET, "release/byTag/top", {:tags => tags}, options)
@api_client.release_digestor.nested_list_from_xml_doc( \
api_response.item_xml("taggedResults"), :taggedItem, :release )
end
def search(query, options={})
api_response = @api_client.make_api_request(:GET, "release/search", {:q => query}, options)
@api_client.release_digestor.nested_list_from_xml_doc(api_response.item_xml("searchResults"), :searchResult, :release)
end
def get_tags(release_id, options = {})
api_response = @api_client.make_api_request(:GET, "release/tags", {:releaseId => release_id}, options)
@api_client.tag_digestor.list_from_xml_doc(api_response.item_xml("tags"))
end
end
end