7digital 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +136 -136
- data/lib/sevendigital.rb +53 -53
- data/lib/sevendigital/api_operator.rb +130 -130
- data/lib/sevendigital/api_operator_cached.rb +41 -41
- data/lib/sevendigital/api_request.rb +65 -65
- data/lib/sevendigital/client.rb +113 -113
- data/lib/sevendigital/client_configuration.rb +86 -86
- data/lib/sevendigital/client_digestors.rb +107 -107
- data/lib/sevendigital/client_managers.rb +47 -47
- data/lib/sevendigital/digestion_tract/api_response_digestor.rb +58 -58
- data/lib/sevendigital/digestion_tract/artist_digestor.rb +32 -32
- data/lib/sevendigital/digestion_tract/basket_digestor.rb +19 -19
- data/lib/sevendigital/digestion_tract/basket_item_digestor.rb +26 -26
- data/lib/sevendigital/digestion_tract/chart_item_digestor.rb +28 -28
- data/lib/sevendigital/digestion_tract/digestor.rb +71 -71
- data/lib/sevendigital/digestion_tract/download_url_digestor.rb +20 -20
- data/lib/sevendigital/digestion_tract/format_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/label_digestor.rb +20 -20
- data/lib/sevendigital/digestion_tract/locker_digestor.rb +18 -18
- data/lib/sevendigital/digestion_tract/locker_release_digestor.rb +20 -20
- data/lib/sevendigital/digestion_tract/locker_track_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/oauth_access_token_digestor.rb +14 -14
- data/lib/sevendigital/digestion_tract/oauth_request_token_digestor.rb +14 -14
- data/lib/sevendigital/digestion_tract/pager_digestor.rb +24 -24
- data/lib/sevendigital/digestion_tract/price_digestor.rb +25 -25
- data/lib/sevendigital/digestion_tract/release_digestor.rb +53 -53
- data/lib/sevendigital/digestion_tract/tag_digestor.rb +22 -22
- data/lib/sevendigital/digestion_tract/track_digestor.rb +38 -38
- data/lib/sevendigital/digestion_tract/user_card_digestor.rb +23 -23
- data/lib/sevendigital/digestion_tract/user_digestor.rb +20 -20
- data/lib/sevendigital/management/artist_manager.rb +99 -99
- data/lib/sevendigital/management/basket_manager.rb +29 -29
- data/lib/sevendigital/management/manager.rb +12 -12
- data/lib/sevendigital/management/oauth_manager.rb +23 -23
- data/lib/sevendigital/management/release_manager.rb +56 -56
- data/lib/sevendigital/management/tag_manager.rb +10 -10
- data/lib/sevendigital/management/track_manager.rb +28 -28
- data/lib/sevendigital/management/user_card_manager.rb +26 -26
- data/lib/sevendigital/management/user_manager.rb +71 -71
- data/lib/sevendigital/model/api_response.rb +25 -25
- data/lib/sevendigital/model/artist.rb +94 -94
- data/lib/sevendigital/model/basket.rb +15 -15
- data/lib/sevendigital/model/basket_item.rb +14 -14
- data/lib/sevendigital/model/card.rb +11 -11
- data/lib/sevendigital/model/chart_item.rb +9 -9
- data/lib/sevendigital/model/download_url.rb +7 -7
- data/lib/sevendigital/model/format.rb +7 -7
- data/lib/sevendigital/model/label.rb +7 -7
- data/lib/sevendigital/model/locker.rb +4 -4
- data/lib/sevendigital/model/locker_release.rb +9 -9
- data/lib/sevendigital/model/locker_track.rb +9 -9
- data/lib/sevendigital/model/price.rb +9 -9
- data/lib/sevendigital/model/release.rb +52 -52
- data/lib/sevendigital/model/sevendigital_error.rb +11 -11
- data/lib/sevendigital/model/sevendigital_object.rb +57 -57
- data/lib/sevendigital/model/tag.rb +7 -7
- data/lib/sevendigital/model/track.rb +83 -83
- data/lib/sevendigital/model/user.rb +63 -63
- data/lib/sevendigital/pager.rb +23 -23
- data/lib/sevendigital/peachy_patchy.rb +9 -9
- data/lib/sevendigital/proxy_police.rb +27 -27
- data/lib/sevendigital/version.rb +5 -5
- data/spec/api_operator_cached_spec.rb +178 -178
- data/spec/api_operator_spec.rb +336 -336
- data/spec/api_request_spec.rb +31 -31
- data/spec/client_configuration_spec.rb +79 -74
- data/spec/client_spec.rb +162 -162
- data/spec/coverage/assets/0.3.9/app.js +66 -0
- data/spec/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
- data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +363 -0
- data/spec/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
- data/spec/coverage/assets/0.3.9/favicon.png +0 -0
- data/spec/coverage/assets/0.3.9/jquery-1.4.2.min.js +155 -0
- data/spec/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
- data/spec/coverage/assets/0.3.9/jquery.timeago.js +141 -0
- data/spec/coverage/assets/0.3.9/jquery.url.js +174 -0
- data/spec/coverage/assets/0.3.9/loading.gif +0 -0
- data/spec/coverage/assets/0.3.9/magnify.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +295 -0
- data/spec/coverage/assets/0.3.9/stylesheet.css +341 -0
- data/spec/coverage/index.html +47481 -0
- data/spec/coverage/resultset.yml +3556 -0
- data/spec/data/config/sevendigital.yml +5 -5
- data/spec/data/configuration_env_override.yml +5 -5
- data/spec/data/configuration_override.yml +1 -1
- data/spec/digestion_tract/api_response_digestor_spec.rb +92 -92
- data/spec/digestion_tract/artist_digestor_spec.rb +81 -81
- data/spec/digestion_tract/basket_digestor_spec.rb +31 -31
- data/spec/digestion_tract/basket_item_digestor_spec.rb +58 -58
- data/spec/digestion_tract/chart_digestor_spec.rb +52 -52
- data/spec/digestion_tract/download_url_digestor_spec.rb +40 -40
- data/spec/digestion_tract/format_digestor_spec.rb +38 -38
- data/spec/digestion_tract/label_digestor_spec.rb +33 -33
- data/spec/digestion_tract/locker_digestor_spec.rb +30 -30
- data/spec/digestion_tract/locker_release_digestor_spec.rb +70 -70
- data/spec/digestion_tract/locker_track_digestor_spec.rb +56 -56
- data/spec/digestion_tract/oauth_access_token_digestor_spec.rb +34 -34
- data/spec/digestion_tract/oauth_request_token_digestor_spec.rb +34 -34
- data/spec/digestion_tract/pager_digestor_spec.rb +50 -50
- data/spec/digestion_tract/price_digestor_spec.rb +73 -73
- data/spec/digestion_tract/release_digestor_spec.rb +101 -101
- data/spec/digestion_tract/tag_digestor_spec.rb +46 -46
- data/spec/digestion_tract/track_digestor_spec.rb +104 -104
- data/spec/digestion_tract/user_card_digestor_spec.rb +58 -58
- data/spec/digestion_tract/user_digestor_spec.rb +44 -44
- data/spec/management/artist_manager_spec.rb +151 -151
- data/spec/management/basket_manager_spec.rb +77 -77
- data/spec/management/oauth_manager_spec.rb +72 -72
- data/spec/management/release_manager_spec.rb +200 -200
- data/spec/management/tag_manager_spec.rb +34 -34
- data/spec/management/track_manager_spec.rb +107 -107
- data/spec/management/user_card_manager_spec.rb +78 -78
- data/spec/management/user_manager_spec.rb +202 -202
- data/spec/model/api_response_spec.rb +48 -48
- data/spec/model/artist_spec.rb +154 -154
- data/spec/model/basket_spec.rb +62 -62
- data/spec/model/coverage/assets/0.3.9/app.js +66 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/blank.gif +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_close.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_loading.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_left.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_nav_right.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_e.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_n.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_ne.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_nw.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_s.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_se.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_sw.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_shadow_w.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_left.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_main.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_over.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancy_title_right.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-x.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancybox-y.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/fancybox.png +0 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.css +363 -0
- data/spec/model/coverage/assets/0.3.9/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
- data/spec/model/coverage/assets/0.3.9/favicon.png +0 -0
- data/spec/model/coverage/assets/0.3.9/jquery-1.4.2.min.js +155 -0
- data/spec/model/coverage/assets/0.3.9/jquery.dataTables.min.js +152 -0
- data/spec/model/coverage/assets/0.3.9/jquery.timeago.js +141 -0
- data/spec/model/coverage/assets/0.3.9/jquery.url.js +174 -0
- data/spec/model/coverage/assets/0.3.9/loading.gif +0 -0
- data/spec/model/coverage/assets/0.3.9/magnify.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/model/coverage/assets/0.3.9/smoothness/jquery-ui-1.8.4.custom.css +295 -0
- data/spec/model/coverage/assets/0.3.9/stylesheet.css +341 -0
- data/spec/model/coverage/index.html +8637 -0
- data/spec/model/coverage/resultset.yml +642 -0
- data/spec/model/release_spec.rb +122 -122
- data/spec/model/sevendigital_object_spec.rb +73 -73
- data/spec/model/track_spec.rb +144 -144
- data/spec/model/user_spec.rb +160 -160
- data/spec/pager_spec.rb +7 -7
- data/spec/peachy_spec_helper_patch.rb +6 -6
- data/spec/proxy_police_spec.rb +69 -69
- data/spec/sevendigital_spec.rb +51 -70
- data/spec/sevendigital_spec.yml +4 -4
- data/spec/spec_helper.rb +64 -64
- data/spec/test-xml/methods/artist/browse.xml +21 -21
- data/spec/test-xml/methods/artist/byTag/top.xml +50 -50
- data/spec/test-xml/methods/artist/chart.xml +30 -30
- data/spec/test-xml/methods/artist/details.xml +9 -9
- data/spec/test-xml/methods/artist/releases.xml +544 -544
- data/spec/test-xml/methods/artist/search.xml +18 -18
- data/spec/test-xml/methods/artist/similar.xml +39 -39
- data/spec/test-xml/methods/artist/tags.xml +11 -11
- data/spec/test-xml/methods/artist/toptracks.xml +279 -279
- data/spec/test-xml/methods/basket/additem.xml +23 -23
- data/spec/test-xml/methods/basket/create.xml +10 -10
- data/spec/test-xml/methods/basket/index.xml +23 -23
- data/spec/test-xml/methods/basket/removeitem.xml +10 -10
- data/spec/test-xml/methods/oauth/accesstoken.xml +5 -5
- data/spec/test-xml/methods/oauth/requesttoken.xml +5 -5
- data/spec/test-xml/methods/release/bydate.xml +173 -173
- data/spec/test-xml/methods/release/bytag/top.xml +150 -150
- data/spec/test-xml/methods/release/chart.xml +181 -181
- data/spec/test-xml/methods/release/details.xml +48 -48
- data/spec/test-xml/methods/release/recommend.xml +89 -89
- data/spec/test-xml/methods/release/search.xml +194 -194
- data/spec/test-xml/methods/release/tags.xml +27 -27
- data/spec/test-xml/methods/release/tracks.xml +28 -28
- data/spec/test-xml/methods/tag/index.xml +16 -16
- data/spec/test-xml/methods/track/chart.xml +149 -149
- data/spec/test-xml/methods/track/details.xml +30 -30
- data/spec/test-xml/methods/track/search.xml +159 -159
- data/spec/test-xml/methods/user/locker.xml +49 -49
- data/spec/test-xml/methods/user/payment/card/add.xml +7 -7
- data/spec/test-xml/methods/user/payment/card/index.xml +7 -7
- data/spec/test-xml/methods/user/purchase/basket.xml +49 -0
- data/spec/test-xml/methods/user/purchase/item.xml +48 -48
- data/spec/test-xml/methods/user/signUp.xml +5 -5
- data/spec/test-xml/objects/artist.xml +6 -6
- data/spec/test-xml/objects/artist_chart_item.xml +7 -7
- data/spec/test-xml/objects/artist_list.xml +22 -22
- data/spec/test-xml/objects/artist_list_empty.xml +4 -4
- data/spec/test-xml/objects/basket.xml +21 -21
- data/spec/test-xml/objects/basket_item.xml +11 -11
- data/spec/test-xml/objects/basket_item_list.xml +25 -25
- data/spec/test-xml/objects/basket_item_list_empty.xml +1 -1
- data/spec/test-xml/objects/download_url.xml +7 -7
- data/spec/test-xml/objects/locker.xml +47 -47
- data/spec/test-xml/objects/locker_release.xml +40 -40
- data/spec/test-xml/objects/locker_release_list.xml +87 -87
- data/spec/test-xml/objects/locker_release_list_empty.xml +4 -4
- data/spec/test-xml/objects/locker_release_one_item_list.xml +43 -43
- data/spec/test-xml/objects/locker_track.xml +25 -25
- data/spec/test-xml/objects/locker_track_list.xml +26 -26
- data/spec/test-xml/objects/locker_track_list_empty.xml +2 -2
- data/spec/test-xml/objects/oauth_access_token.xml +3 -3
- data/spec/test-xml/objects/oauth_request_token.xml +3 -3
- data/spec/test-xml/objects/price.xml +7 -7
- data/spec/test-xml/objects/release.xml +40 -40
- data/spec/test-xml/objects/release_chart_item.xml +39 -39
- data/spec/test-xml/objects/release_list.xml +18 -18
- data/spec/test-xml/objects/release_list_empty.xml +4 -4
- data/spec/test-xml/objects/response.xml +38 -38
- data/spec/test-xml/objects/tag.xml +4 -4
- data/spec/test-xml/objects/track.xml +33 -33
- data/spec/test-xml/objects/track_chart_item.xml +27 -27
- data/spec/test-xml/objects/user.xml +4 -4
- data/spec/test-xml/objects/user_payment_card.xml +5 -5
- metadata +193 -3
@@ -1,24 +1,24 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class UserCardDigestor < Digestor # :nodoc:
|
5
|
-
|
6
|
-
def default_element_name; :card end
|
7
|
-
def default_list_element_name; :cards end
|
8
|
-
|
9
|
-
def from_proxy(card_proxy)
|
10
|
-
make_sure_not_eating_nil(card_proxy)
|
11
|
-
|
12
|
-
card = Sevendigital::Card.new(@api_client)
|
13
|
-
card.id = card_proxy.id.to_i
|
14
|
-
card.type = card_proxy.type.value.to_s
|
15
|
-
card.last_4_digits = card_proxy.last4digits.value.to_s
|
16
|
-
card.card_holder_name = card_proxy.card_holder_name.value.to_s if value_present?(card_proxy.card_holder_name)
|
17
|
-
card.expiry_date = card_proxy.expiry_date.value.to_s if value_present?(card_proxy.expiry_date)
|
18
|
-
|
19
|
-
return card
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class UserCardDigestor < Digestor # :nodoc:
|
5
|
+
|
6
|
+
def default_element_name; :card end
|
7
|
+
def default_list_element_name; :cards end
|
8
|
+
|
9
|
+
def from_proxy(card_proxy)
|
10
|
+
make_sure_not_eating_nil(card_proxy)
|
11
|
+
|
12
|
+
card = Sevendigital::Card.new(@api_client)
|
13
|
+
card.id = card_proxy.id.to_i
|
14
|
+
card.type = card_proxy.type.value.to_s
|
15
|
+
card.last_4_digits = card_proxy.last4digits.value.to_s
|
16
|
+
card.card_holder_name = card_proxy.card_holder_name.value.to_s if value_present?(card_proxy.card_holder_name)
|
17
|
+
card.expiry_date = card_proxy.expiry_date.value.to_s if value_present?(card_proxy.expiry_date)
|
18
|
+
|
19
|
+
return card
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
24
|
end
|
@@ -1,21 +1,21 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class UserDigestor < Digestor # :nodoc:
|
5
|
-
|
6
|
-
def default_element_name; :user end
|
7
|
-
|
8
|
-
def from_proxy(user_proxy)
|
9
|
-
make_sure_not_eating_nil(user_proxy)
|
10
|
-
|
11
|
-
user = User.new(@api_client)
|
12
|
-
user.id = user_proxy.id.to_s if !user_proxy.nil?
|
13
|
-
user.type = user_proxy.type.value.to_sym
|
14
|
-
user.email_address = user_proxy.email_address.value.to_s if value_present?(user_proxy.email_address)
|
15
|
-
|
16
|
-
return user
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
20
|
-
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class UserDigestor < Digestor # :nodoc:
|
5
|
+
|
6
|
+
def default_element_name; :user end
|
7
|
+
|
8
|
+
def from_proxy(user_proxy)
|
9
|
+
make_sure_not_eating_nil(user_proxy)
|
10
|
+
|
11
|
+
user = User.new(@api_client)
|
12
|
+
user.id = user_proxy.id.to_s if !user_proxy.nil?
|
13
|
+
user.type = user_proxy.type.value.to_sym
|
14
|
+
user.email_address = user_proxy.email_address.value.to_s if value_present?(user_proxy.email_address)
|
15
|
+
|
16
|
+
return user
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
21
|
end
|
@@ -1,99 +1,99 @@
|
|
1
|
-
require "peachy"
|
2
|
-
|
3
|
-
module Sevendigital
|
4
|
-
|
5
|
-
# provides access to Artist related API methods (artist/*)
|
6
|
-
class ArtistManager < Manager
|
7
|
-
|
8
|
-
# calls *artist/details* API method and returns Artist with populated details
|
9
|
-
#
|
10
|
-
# @param [Integer] artist_id
|
11
|
-
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
12
|
-
# @return [Artist]
|
13
|
-
def get_details(artist_id, options={})
|
14
|
-
api_response = @api_client.make_api_request(:GET, "artist/details", {:artistId => artist_id}, options)
|
15
|
-
@api_client.artist_digestor.from_xml(api_response.content.artist)
|
16
|
-
end
|
17
|
-
|
18
|
-
# calls *artist/releases* API method and returns Release array
|
19
|
-
#
|
20
|
-
# @param [Integer] artist_id
|
21
|
-
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
22
|
-
# @return [[Artist]]
|
23
|
-
def get_releases(artist_id, options={})
|
24
|
-
api_response = @api_client.make_api_request(:GET, "artist/releases", {:artistId => artist_id}, options)
|
25
|
-
@api_client.release_digestor.list_from_xml(api_response.content.releases)
|
26
|
-
end
|
27
|
-
|
28
|
-
# calls *artist/toptracks* API method and returns Track array
|
29
|
-
#
|
30
|
-
# @param [Integer] artist_id
|
31
|
-
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
32
|
-
# @return [Array<Track>]
|
33
|
-
def get_top_tracks(artist_id, options={})
|
34
|
-
api_response = @api_client.make_api_request(:GET, "artist/topTracks", {:artistId => artist_id}, options)
|
35
|
-
@api_client.track_digestor.list_from_xml(api_response.content.tracks)
|
36
|
-
end
|
37
|
-
|
38
|
-
# calls *artist/similar* API method and returns Artist array
|
39
|
-
#
|
40
|
-
# @param [Integer] artist_id
|
41
|
-
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
42
|
-
# @return [Array<Artist>]
|
43
|
-
def get_similar(artist_id, options={})
|
44
|
-
api_response = @api_client.make_api_request(:GET, "artist/similar", {:artistId => artist_id}, options)
|
45
|
-
@api_client.artist_digestor.list_from_xml(api_response.content.artists)
|
46
|
-
end
|
47
|
-
|
48
|
-
# calls *artist/byTag/top* API method and returns Artist array
|
49
|
-
#
|
50
|
-
# @param [String] tags tag or comma separated list of tags
|
51
|
-
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
52
|
-
# @return [Array<Artist>]
|
53
|
-
def get_top_by_tag(tags, options={})
|
54
|
-
api_response = @api_client.make_api_request(:GET, "artist/byTag/top", {:tags => tags}, options)
|
55
|
-
@api_client.artist_digestor.nested_list_from_xml(api_response.content.tagged_results, :tagged_item, :tagged_results)
|
56
|
-
end
|
57
|
-
|
58
|
-
# calls *artist/search* API method and returns Artist array
|
59
|
-
#
|
60
|
-
# @param [String] query search query
|
61
|
-
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
62
|
-
# @return [Array<Artist>]
|
63
|
-
def search(query, options={})
|
64
|
-
api_response = @api_client.make_api_request(:GET, "artist/search", {:q => query}, options)
|
65
|
-
@api_client.artist_digestor.nested_list_from_xml(api_response.content.search_results, :search_result, :search_results)
|
66
|
-
end
|
67
|
-
|
68
|
-
# calls *artist/browse* API method and returns Artist array
|
69
|
-
#
|
70
|
-
# @param [String] letter the letter(s) returned artist names should artists
|
71
|
-
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
72
|
-
# @return [Array<Artist>]
|
73
|
-
def browse(letter, options={})
|
74
|
-
api_response = @api_client.make_api_request(:GET, "artist/browse", {:letter => letter}, options)
|
75
|
-
@api_client.artist_digestor.list_from_xml(api_response.content.artists)
|
76
|
-
end
|
77
|
-
|
78
|
-
# calls *artist/chart* API method and returns Artist array
|
79
|
-
#
|
80
|
-
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
81
|
-
def get_chart(options={})
|
82
|
-
api_response = @api_client.make_api_request(:GET, "artist/chart", {}, options)
|
83
|
-
@api_client.chart_item_digestor.list_from_xml(api_response.content.chart)
|
84
|
-
end
|
85
|
-
|
86
|
-
# calls *artist/tags* API method and returns Tag array
|
87
|
-
#
|
88
|
-
# @param [Integer] artist_id
|
89
|
-
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
90
|
-
# @return [Array<Tag>]
|
91
|
-
def get_tags(artist_id, options={})
|
92
|
-
api_response = @api_client.make_api_request(:GET, "artist/tags", {:artistId => artist_id}, options)
|
93
|
-
@api_client.tag_digestor.list_from_xml(api_response.content.tags)
|
94
|
-
end
|
95
|
-
|
96
|
-
|
97
|
-
end
|
98
|
-
|
99
|
-
end
|
1
|
+
require "peachy"
|
2
|
+
|
3
|
+
module Sevendigital
|
4
|
+
|
5
|
+
# provides access to Artist related API methods (artist/*)
|
6
|
+
class ArtistManager < Manager
|
7
|
+
|
8
|
+
# calls *artist/details* API method and returns Artist with populated details
|
9
|
+
#
|
10
|
+
# @param [Integer] artist_id
|
11
|
+
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
12
|
+
# @return [Artist]
|
13
|
+
def get_details(artist_id, options={})
|
14
|
+
api_response = @api_client.make_api_request(:GET, "artist/details", {:artistId => artist_id}, options)
|
15
|
+
@api_client.artist_digestor.from_xml(api_response.content.artist)
|
16
|
+
end
|
17
|
+
|
18
|
+
# calls *artist/releases* API method and returns Release array
|
19
|
+
#
|
20
|
+
# @param [Integer] artist_id
|
21
|
+
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
22
|
+
# @return [[Artist]]
|
23
|
+
def get_releases(artist_id, options={})
|
24
|
+
api_response = @api_client.make_api_request(:GET, "artist/releases", {:artistId => artist_id}, options)
|
25
|
+
@api_client.release_digestor.list_from_xml(api_response.content.releases)
|
26
|
+
end
|
27
|
+
|
28
|
+
# calls *artist/toptracks* API method and returns Track array
|
29
|
+
#
|
30
|
+
# @param [Integer] artist_id
|
31
|
+
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
32
|
+
# @return [Array<Track>]
|
33
|
+
def get_top_tracks(artist_id, options={})
|
34
|
+
api_response = @api_client.make_api_request(:GET, "artist/topTracks", {:artistId => artist_id}, options)
|
35
|
+
@api_client.track_digestor.list_from_xml(api_response.content.tracks)
|
36
|
+
end
|
37
|
+
|
38
|
+
# calls *artist/similar* API method and returns Artist array
|
39
|
+
#
|
40
|
+
# @param [Integer] artist_id
|
41
|
+
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
42
|
+
# @return [Array<Artist>]
|
43
|
+
def get_similar(artist_id, options={})
|
44
|
+
api_response = @api_client.make_api_request(:GET, "artist/similar", {:artistId => artist_id}, options)
|
45
|
+
@api_client.artist_digestor.list_from_xml(api_response.content.artists)
|
46
|
+
end
|
47
|
+
|
48
|
+
# calls *artist/byTag/top* API method and returns Artist array
|
49
|
+
#
|
50
|
+
# @param [String] tags tag or comma separated list of tags
|
51
|
+
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
52
|
+
# @return [Array<Artist>]
|
53
|
+
def get_top_by_tag(tags, options={})
|
54
|
+
api_response = @api_client.make_api_request(:GET, "artist/byTag/top", {:tags => tags}, options)
|
55
|
+
@api_client.artist_digestor.nested_list_from_xml(api_response.content.tagged_results, :tagged_item, :tagged_results)
|
56
|
+
end
|
57
|
+
|
58
|
+
# calls *artist/search* API method and returns Artist array
|
59
|
+
#
|
60
|
+
# @param [String] query search query
|
61
|
+
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
62
|
+
# @return [Array<Artist>]
|
63
|
+
def search(query, options={})
|
64
|
+
api_response = @api_client.make_api_request(:GET, "artist/search", {:q => query}, options)
|
65
|
+
@api_client.artist_digestor.nested_list_from_xml(api_response.content.search_results, :search_result, :search_results)
|
66
|
+
end
|
67
|
+
|
68
|
+
# calls *artist/browse* API method and returns Artist array
|
69
|
+
#
|
70
|
+
# @param [String] letter the letter(s) returned artist names should artists
|
71
|
+
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
72
|
+
# @return [Array<Artist>]
|
73
|
+
def browse(letter, options={})
|
74
|
+
api_response = @api_client.make_api_request(:GET, "artist/browse", {:letter => letter}, options)
|
75
|
+
@api_client.artist_digestor.list_from_xml(api_response.content.artists)
|
76
|
+
end
|
77
|
+
|
78
|
+
# calls *artist/chart* API method and returns Artist array
|
79
|
+
#
|
80
|
+
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
81
|
+
def get_chart(options={})
|
82
|
+
api_response = @api_client.make_api_request(:GET, "artist/chart", {}, options)
|
83
|
+
@api_client.chart_item_digestor.list_from_xml(api_response.content.chart)
|
84
|
+
end
|
85
|
+
|
86
|
+
# calls *artist/tags* API method and returns Tag array
|
87
|
+
#
|
88
|
+
# @param [Integer] artist_id
|
89
|
+
# @param [Hash] options optional hash of additional API parameters, e.g. page_size => 50, etc
|
90
|
+
# @return [Array<Tag>]
|
91
|
+
def get_tags(artist_id, options={})
|
92
|
+
api_response = @api_client.make_api_request(:GET, "artist/tags", {:artistId => artist_id}, options)
|
93
|
+
@api_client.tag_digestor.list_from_xml(api_response.content.tags)
|
94
|
+
end
|
95
|
+
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
@@ -1,29 +1,29 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
class BasketManager < Manager
|
4
|
-
|
5
|
-
def get(basket_id, options={})
|
6
|
-
api_response = @api_client.make_api_request(:GET, "basket", {:basketId => basket_id}, options)
|
7
|
-
@api_client.basket_digestor.from_xml(api_response.content.basket)
|
8
|
-
end
|
9
|
-
|
10
|
-
def create(options={})
|
11
|
-
api_response = @api_client.make_api_request(:GET, "basket/create", {}, options)
|
12
|
-
@api_client.basket_digestor.from_xml(api_response.content.basket)
|
13
|
-
end
|
14
|
-
|
15
|
-
def add_item(basket_id, release_id, track_id=nil, options={})
|
16
|
-
api_response = @api_client.make_api_request(:GET, "basket/addItem", {:basketId => basket_id, :releaseId => release_id, :trackId => track_id}, options)
|
17
|
-
@api_client.basket_digestor.from_xml(api_response.content.basket)
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
|
-
def remove_item(basket_id, item_id, options={})
|
22
|
-
api_response = @api_client.make_api_request(:GET, "basket/removeItem", {:basketId => basket_id, :itemId => item_id}, options)
|
23
|
-
@api_client.basket_digestor.from_xml(api_response.content.basket)
|
24
|
-
end
|
25
|
-
|
26
|
-
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
class BasketManager < Manager
|
4
|
+
|
5
|
+
def get(basket_id, options={})
|
6
|
+
api_response = @api_client.make_api_request(:GET, "basket", {:basketId => basket_id}, options)
|
7
|
+
@api_client.basket_digestor.from_xml(api_response.content.basket)
|
8
|
+
end
|
9
|
+
|
10
|
+
def create(options={})
|
11
|
+
api_response = @api_client.make_api_request(:GET, "basket/create", {}, options)
|
12
|
+
@api_client.basket_digestor.from_xml(api_response.content.basket)
|
13
|
+
end
|
14
|
+
|
15
|
+
def add_item(basket_id, release_id, track_id=nil, options={})
|
16
|
+
api_response = @api_client.make_api_request(:GET, "basket/addItem", {:basketId => basket_id, :releaseId => release_id, :trackId => track_id}, options)
|
17
|
+
@api_client.basket_digestor.from_xml(api_response.content.basket)
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def remove_item(basket_id, item_id, options={})
|
22
|
+
api_response = @api_client.make_api_request(:GET, "basket/removeItem", {:basketId => basket_id, :itemId => item_id}, options)
|
23
|
+
@api_client.basket_digestor.from_xml(api_response.content.basket)
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
@@ -1,12 +1,12 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
#@private
|
4
|
-
class Manager # :nodoc:
|
5
|
-
|
6
|
-
def initialize(api_client)
|
7
|
-
@api_client = api_client
|
8
|
-
end
|
9
|
-
|
10
|
-
end
|
11
|
-
|
12
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
#@private
|
4
|
+
class Manager # :nodoc:
|
5
|
+
|
6
|
+
def initialize(api_client)
|
7
|
+
@api_client = api_client
|
8
|
+
end
|
9
|
+
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
module Sevendigital
|
2
|
-
|
3
|
-
class OAuthManager < Manager
|
4
|
-
|
5
|
-
def get_request_token
|
6
|
-
api_response = @api_client.make_signed_api_request(:GET, "oauth/requestToken", {})
|
7
|
-
@api_client.oauth_request_token_digestor.from_xml(api_response.content.oauth_request_token, :oauth_request_token)
|
8
|
-
end
|
9
|
-
|
10
|
-
def get_access_token(request_token)
|
11
|
-
api_response = @api_client.make_signed_api_request(:GET, "oauth/accessToken", {}, {}, request_token)
|
12
|
-
@api_client.oauth_access_token_digestor.from_xml(api_response.content.oauth_access_token, :oauth_access_token)
|
13
|
-
end
|
14
|
-
|
15
|
-
def authorise_request_token(username, password, request_token)
|
16
|
-
api_response = @api_client.make_signed_api_request(:GET, "oauth/requestToken/authorise", \
|
17
|
-
{:username => username, :password => password, :token => request_token.token})
|
18
|
-
api_response.ok?
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
|
23
|
-
end
|
1
|
+
module Sevendigital
|
2
|
+
|
3
|
+
class OAuthManager < Manager
|
4
|
+
|
5
|
+
def get_request_token
|
6
|
+
api_response = @api_client.make_signed_api_request(:GET, "oauth/requestToken", {})
|
7
|
+
@api_client.oauth_request_token_digestor.from_xml(api_response.content.oauth_request_token, :oauth_request_token)
|
8
|
+
end
|
9
|
+
|
10
|
+
def get_access_token(request_token)
|
11
|
+
api_response = @api_client.make_signed_api_request(:GET, "oauth/accessToken", {}, {}, request_token)
|
12
|
+
@api_client.oauth_access_token_digestor.from_xml(api_response.content.oauth_access_token, :oauth_access_token)
|
13
|
+
end
|
14
|
+
|
15
|
+
def authorise_request_token(username, password, request_token)
|
16
|
+
api_response = @api_client.make_signed_api_request(:GET, "oauth/requestToken/authorise", \
|
17
|
+
{:username => username, :password => password, :token => request_token.token})
|
18
|
+
api_response.ok?
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -1,57 +1,57 @@
|
|
1
|
-
require "peachy"
|
2
|
-
|
3
|
-
module Sevendigital
|
4
|
-
|
5
|
-
class ReleaseManager < Manager
|
6
|
-
|
7
|
-
def get_details(release_id, options = {})
|
8
|
-
api_response = @api_client.make_api_request(:GET, "release/details", {:releaseId => release_id}, options)
|
9
|
-
@api_client.release_digestor.from_xml(api_response.content.release)
|
10
|
-
end
|
11
|
-
|
12
|
-
def get_tracks(release_id, options = {})
|
13
|
-
options[:page_size] ||= 100
|
14
|
-
api_response = @api_client.make_api_request(:GET, "release/tracks", {:releaseId => release_id}, options)
|
15
|
-
@api_client.track_digestor.list_from_xml(api_response.content.tracks)
|
16
|
-
end
|
17
|
-
|
18
|
-
def get_chart(options={})
|
19
|
-
api_response = @api_client.make_api_request(:GET, "release/chart", {}, options)
|
20
|
-
@api_client.chart_item_digestor.list_from_xml(api_response.content.chart)
|
21
|
-
end
|
22
|
-
|
23
|
-
def get_by_date(from_date = nil, to_date = nil, options = {})
|
24
|
-
parameters = Hash.new
|
25
|
-
parameters[:fromDate] = from_date.strftime("%Y%m%d") if from_date
|
26
|
-
parameters[:toDate] = to_date.strftime("%Y%m%d") if to_date
|
27
|
-
|
28
|
-
api_response = @api_client.make_api_request(:GET, "release/byDate", parameters, options)
|
29
|
-
@api_client.release_digestor.list_from_xml(api_response.content.releases)
|
30
|
-
end
|
31
|
-
|
32
|
-
def get_recommendations(release_id, options = {})
|
33
|
-
api_response = @api_client.make_api_request(:GET, "release/recommend", {:releaseId => release_id}, options)
|
34
|
-
@api_client.release_digestor.nested_list_from_xml(api_response.content.recommendations, :recommended_item, :recommendations)
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
def get_top_by_tag(tags, options = {})
|
39
|
-
api_response = @api_client.make_api_request(:GET, "release/byTag/top", {:tags => tags}, options)
|
40
|
-
@api_client.release_digestor.nested_list_from_xml( \
|
41
|
-
api_response.content.tagged_results, :tagged_item, :tagged_results )
|
42
|
-
end
|
43
|
-
|
44
|
-
def search(query, options={})
|
45
|
-
api_response = @api_client.make_api_request(:GET, "release/search", {:q => query}, options)
|
46
|
-
@api_client.release_digestor.nested_list_from_xml(api_response.content.search_results, :search_result, :search_results)
|
47
|
-
end
|
48
|
-
|
49
|
-
|
50
|
-
def get_tags(release_id, options = {})
|
51
|
-
api_response = @api_client.make_api_request(:GET, "release/tags", {:releaseId => release_id}, options)
|
52
|
-
@api_client.tag_digestor.list_from_xml(api_response.content.tags)
|
53
|
-
end
|
54
|
-
|
55
|
-
end
|
56
|
-
|
1
|
+
require "peachy"
|
2
|
+
|
3
|
+
module Sevendigital
|
4
|
+
|
5
|
+
class ReleaseManager < Manager
|
6
|
+
|
7
|
+
def get_details(release_id, options = {})
|
8
|
+
api_response = @api_client.make_api_request(:GET, "release/details", {:releaseId => release_id}, options)
|
9
|
+
@api_client.release_digestor.from_xml(api_response.content.release)
|
10
|
+
end
|
11
|
+
|
12
|
+
def get_tracks(release_id, options = {})
|
13
|
+
options[:page_size] ||= 100
|
14
|
+
api_response = @api_client.make_api_request(:GET, "release/tracks", {:releaseId => release_id}, options)
|
15
|
+
@api_client.track_digestor.list_from_xml(api_response.content.tracks)
|
16
|
+
end
|
17
|
+
|
18
|
+
def get_chart(options={})
|
19
|
+
api_response = @api_client.make_api_request(:GET, "release/chart", {}, options)
|
20
|
+
@api_client.chart_item_digestor.list_from_xml(api_response.content.chart)
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_by_date(from_date = nil, to_date = nil, options = {})
|
24
|
+
parameters = Hash.new
|
25
|
+
parameters[:fromDate] = from_date.strftime("%Y%m%d") if from_date
|
26
|
+
parameters[:toDate] = to_date.strftime("%Y%m%d") if to_date
|
27
|
+
|
28
|
+
api_response = @api_client.make_api_request(:GET, "release/byDate", parameters, options)
|
29
|
+
@api_client.release_digestor.list_from_xml(api_response.content.releases)
|
30
|
+
end
|
31
|
+
|
32
|
+
def get_recommendations(release_id, options = {})
|
33
|
+
api_response = @api_client.make_api_request(:GET, "release/recommend", {:releaseId => release_id}, options)
|
34
|
+
@api_client.release_digestor.nested_list_from_xml(api_response.content.recommendations, :recommended_item, :recommendations)
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
def get_top_by_tag(tags, options = {})
|
39
|
+
api_response = @api_client.make_api_request(:GET, "release/byTag/top", {:tags => tags}, options)
|
40
|
+
@api_client.release_digestor.nested_list_from_xml( \
|
41
|
+
api_response.content.tagged_results, :tagged_item, :tagged_results )
|
42
|
+
end
|
43
|
+
|
44
|
+
def search(query, options={})
|
45
|
+
api_response = @api_client.make_api_request(:GET, "release/search", {:q => query}, options)
|
46
|
+
@api_client.release_digestor.nested_list_from_xml(api_response.content.search_results, :search_result, :search_results)
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
def get_tags(release_id, options = {})
|
51
|
+
api_response = @api_client.make_api_request(:GET, "release/tags", {:releaseId => release_id}, options)
|
52
|
+
@api_client.tag_digestor.list_from_xml(api_response.content.tags)
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
57
|
end
|