Class: Sevendigital::Client
- Inherits:
-
Object
- Object
- Sevendigital::Client
- Defined in:
- lib/sevendigital/client_digestors.rb,
lib/sevendigital/client.rb,
lib/sevendigital/client_managers.rb
Overview
:nodoc:
Constant Summary collapse
- COMMON_REQUEST_PARAMETERS =
if default values for any of these parameters are set in configuration, they will be passed along with every single API request
[:shop_id, :country, :page, :page_size, :image_size]
Instance Method Summary collapse
- #api_host_and_version(api_service = nil) ⇒ Object
- #api_response_digestor ⇒ Object
- #artist ⇒ ArtistManager
- #artist_digestor ⇒ Object
- #basket ⇒ BasketManager
- #basket_digestor ⇒ Object
- #basket_item_digestor ⇒ Object
- #chart_item_digestor ⇒ Object
- #configuration ⇒ Object
- #country ⇒ CountrytManager
- #country_digestor ⇒ Object
- #create_api_request(http_method, api_method, parameters, options = {}) ⇒ Object
- #download_url_digestor ⇒ Object
- #format_digestor ⇒ Object
-
#initialize(*args) {|@configuration| ... } ⇒ Client
constructor
A new instance of Client.
- #label_digestor ⇒ Object
- #list ⇒ ListManager
- #list_digestor ⇒ Object
- #list_item_digestor ⇒ Object
- #locker_digestor ⇒ Object
- #locker_release_digestor ⇒ Object
- #locker_track_digestor ⇒ Object
- #log(severity, &block) ⇒ Object
- #make_api_request(http_method, api_method, parameters, options = {}) ⇒ Object
- #make_signed_api_request(http_method, api_method, parameters, options = {}, token = nil) ⇒ Object
- #oauth ⇒ OAuthManager
- #oauth_access_token_digestor ⇒ Object
- #oauth_consumer ⇒ Object
- #oauth_request_token_digestor ⇒ Object
- #operator ⇒ Object
- #pager_digestor ⇒ Object
- #price_digestor ⇒ Object
- #release ⇒ ReleaseManager
- #release_digestor ⇒ Object
- #tag ⇒ TagManager
- #tag_digestor ⇒ Object
- #track ⇒ TrackManager
- #track_digestor ⇒ Object
- #user ⇒ UserManager
- #user_agent_info ⇒ Object
- #user_card_digestor ⇒ Object
- #user_digestor ⇒ Object
- #user_payment_card ⇒ UserManager
- #verbose? ⇒ Boolean
- #very_verbose? ⇒ Boolean
Constructor Details
#initialize(*args) {|@configuration| ... } ⇒ Client
Returns a new instance of Client.
8 9 10 11 12 |
# File 'lib/sevendigital/client.rb', line 8 def initialize(*args) @configuration = Sevendigital::ClientConfiguration.new(*args) yield @configuration if block_given? @api_operator = hire_api_operator end |
Instance Method Details
#api_host_and_version(api_service = nil) ⇒ Object
78 79 80 81 |
# File 'lib/sevendigital/client.rb', line 78 def api_host_and_version(api_service=nil) service = api_service && !api_service.to_s.empty? ? "#{api_service}_" : "" [configuration.send("#{service}api_url".to_sym), configuration.send("#{service}api_version".to_sym)] end |
#api_response_digestor ⇒ Object
6 7 8 |
# File 'lib/sevendigital/client_digestors.rb', line 6 def api_response_digestor @api_response_digestor ||= ApiResponseDigestor.new(self) end |
#artist ⇒ ArtistManager
6 7 8 |
# File 'lib/sevendigital/client_managers.rb', line 6 def artist @artist_manager ||= ArtistManager.new(self) end |
#artist_digestor ⇒ Object
11 12 13 |
# File 'lib/sevendigital/client_digestors.rb', line 11 def artist_digestor @artist_digestor ||= ArtistDigestor.new(self) end |
#basket ⇒ BasketManager
11 12 13 |
# File 'lib/sevendigital/client_managers.rb', line 11 def basket @basket_manager ||= BasketManager.new(self) end |
#basket_digestor ⇒ Object
16 17 18 |
# File 'lib/sevendigital/client_digestors.rb', line 16 def basket_digestor @basket_digestor ||= BasketDigestor.new(self) end |
#basket_item_digestor ⇒ Object
21 22 23 |
# File 'lib/sevendigital/client_digestors.rb', line 21 def basket_item_digestor @basket_item_digestor ||= BasketItemDigestor.new(self) end |
#chart_item_digestor ⇒ Object
26 27 28 |
# File 'lib/sevendigital/client_digestors.rb', line 26 def chart_item_digestor @chart_item_digestor ||= ChartItemDigestor.new(self) end |
#configuration ⇒ Object
55 56 57 |
# File 'lib/sevendigital/client.rb', line 55 def configuration @configuration end |
#country ⇒ CountrytManager
16 17 18 |
# File 'lib/sevendigital/client_managers.rb', line 16 def country @country_manager ||= CountryManager.new(self) end |
#country_digestor ⇒ Object
31 32 33 |
# File 'lib/sevendigital/client_digestors.rb', line 31 def country_digestor @country_digestor ||= CountryDigestor.new(self) end |
#create_api_request(http_method, api_method, parameters, options = {}) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/sevendigital/client.rb', line 14 def create_api_request(http_method, api_method, parameters, = {}) parameters = .merge(parameters) parameters = add_default_parameters(parameters) if http_method != :POST then request = ApiRequest.new(http_method, api_method, parameters) else request = ApiRequest.new(http_method, api_method, {}) request.form_parameters = parameters end request end |
#download_url_digestor ⇒ Object
36 37 38 |
# File 'lib/sevendigital/client_digestors.rb', line 36 def download_url_digestor @download_url_digestor ||= DownloadUrlDigestor.new(self) end |
#format_digestor ⇒ Object
41 42 43 |
# File 'lib/sevendigital/client_digestors.rb', line 41 def format_digestor @format_digestor ||= FormatDigestor.new(self) end |
#label_digestor ⇒ Object
46 47 48 |
# File 'lib/sevendigital/client_digestors.rb', line 46 def label_digestor @label_digestor ||= LabelDigestor.new(self) end |
#list ⇒ ListManager
21 22 23 |
# File 'lib/sevendigital/client_managers.rb', line 21 def list @list_manager ||= ListManager.new(self) end |
#list_digestor ⇒ Object
66 67 68 |
# File 'lib/sevendigital/client_digestors.rb', line 66 def list_digestor @list_digestor ||= ListDigestor.new(self) end |
#list_item_digestor ⇒ Object
71 72 73 |
# File 'lib/sevendigital/client_digestors.rb', line 71 def list_item_digestor @list_item_digestor ||= ListItemDigestor.new(self) end |
#locker_digestor ⇒ Object
51 52 53 |
# File 'lib/sevendigital/client_digestors.rb', line 51 def locker_digestor @locker_digestor ||= LockerDigestor.new(self) end |
#locker_release_digestor ⇒ Object
56 57 58 |
# File 'lib/sevendigital/client_digestors.rb', line 56 def locker_release_digestor @locker_release_digestor ||= LockerReleaseDigestor.new(self) end |
#locker_track_digestor ⇒ Object
61 62 63 |
# File 'lib/sevendigital/client_digestors.rb', line 61 def locker_track_digestor @locker_track_digestor ||= LockerTrackDigestor.new(self) end |
#log(severity, &block) ⇒ Object
59 60 61 62 63 |
# File 'lib/sevendigital/client.rb', line 59 def log(severity, &block) if self.send("#{severity}?") logger.info(yield) if block_given? end end |
#make_api_request(http_method, api_method, parameters, options = {}) ⇒ Object
26 27 28 29 |
# File 'lib/sevendigital/client.rb', line 26 def make_api_request(http_method, api_method, parameters, = {}) api_request = create_api_request(http_method, api_method, parameters, ) operator.call_api(api_request) end |
#make_signed_api_request(http_method, api_method, parameters, options = {}, token = nil) ⇒ Object
31 32 33 34 35 36 37 38 |
# File 'lib/sevendigital/client.rb', line 31 def make_signed_api_request(http_method, api_method, parameters, = {}, token = nil) api_request = create_api_request(http_method, api_method, parameters, ) api_request.require_signature api_request.require_secure_connection api_request.token = token operator.call_api(api_request) end |
#oauth ⇒ OAuthManager
51 52 53 |
# File 'lib/sevendigital/client_managers.rb', line 51 def oauth @oauth_manager ||= OAuthManager.new(self) end |
#oauth_access_token_digestor ⇒ Object
81 82 83 |
# File 'lib/sevendigital/client_digestors.rb', line 81 def oauth_access_token_digestor @oauth_access_token_digestor ||= OAuthAccessTokenDigestor.new(self) end |
#oauth_consumer ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/sevendigital/client.rb', line 40 def oauth_consumer host, version = api_host_and_version(:account) = { :authorize_path => "https://#{host}/#{version}/oauth/authorise", :http_method => :get } @oauth_consumer ||= OAuth::Consumer.new( \ @configuration.oauth_consumer_key, \ @configuration.oauth_consumer_secret, \ \ ) end |
#oauth_request_token_digestor ⇒ Object
76 77 78 |
# File 'lib/sevendigital/client_digestors.rb', line 76 def oauth_request_token_digestor @oauth_request_token_digestor ||= OAuthRequestTokenDigestor.new(self) end |
#operator ⇒ Object
65 66 67 |
# File 'lib/sevendigital/client.rb', line 65 def operator @api_operator end |
#pager_digestor ⇒ Object
86 87 88 |
# File 'lib/sevendigital/client_digestors.rb', line 86 def pager_digestor @pager_digestor ||= PagerDigestor.new(self) end |
#price_digestor ⇒ Object
91 92 93 |
# File 'lib/sevendigital/client_digestors.rb', line 91 def price_digestor @price_digestor ||= PriceDigestor.new(self) end |
#release ⇒ ReleaseManager
26 27 28 |
# File 'lib/sevendigital/client_managers.rb', line 26 def release @release_manager ||= ReleaseManager.new(self) end |
#release_digestor ⇒ Object
96 97 98 |
# File 'lib/sevendigital/client_digestors.rb', line 96 def release_digestor @release_digestor ||= ReleaseDigestor.new(self) end |
#tag ⇒ TagManager
31 32 33 |
# File 'lib/sevendigital/client_managers.rb', line 31 def tag @tag_manager ||= TagManager.new(self) end |
#tag_digestor ⇒ Object
106 107 108 |
# File 'lib/sevendigital/client_digestors.rb', line 106 def tag_digestor @tag_digestor ||= TagDigestor.new(self) end |
#track ⇒ TrackManager
36 37 38 |
# File 'lib/sevendigital/client_managers.rb', line 36 def track @track_manager ||= TrackManager.new(self) end |
#track_digestor ⇒ Object
101 102 103 |
# File 'lib/sevendigital/client_digestors.rb', line 101 def track_digestor @track_digestor ||= TrackDigestor.new(self) end |
#user ⇒ UserManager
41 42 43 |
# File 'lib/sevendigital/client_managers.rb', line 41 def user @user_manager ||= UserManager.new(self) end |
#user_agent_info ⇒ Object
84 85 86 87 88 |
# File 'lib/sevendigital/client.rb', line 84 def user_agent_info app_info = @configuration.app_name ? "/#{@configuration.app_name}" : nil app_info += " #{@configuration.app_version}" if app_info && @configuration.app_version "#{Sevendigital::NAME} Gem #{Sevendigital::VERSION}#{app_info}" end |
#user_card_digestor ⇒ Object
111 112 113 |
# File 'lib/sevendigital/client_digestors.rb', line 111 def user_card_digestor @user_card_digestor ||= UserCardDigestor.new(self) end |
#user_digestor ⇒ Object
116 117 118 |
# File 'lib/sevendigital/client_digestors.rb', line 116 def user_digestor @user_digestor ||= UserDigestor.new(self) end |
#user_payment_card ⇒ UserManager
46 47 48 |
# File 'lib/sevendigital/client_managers.rb', line 46 def user_payment_card @user_card_manager ||= UserCardManager.new(self) end |
#verbose? ⇒ Boolean
69 70 71 |
# File 'lib/sevendigital/client.rb', line 69 def verbose? very_verbose? || !!@verbose || !!@configuration.verbose end |
#very_verbose? ⇒ Boolean
73 74 75 |
# File 'lib/sevendigital/client.rb', line 73 def very_verbose? @very_verbose || @configuration.verbose.to_s == "very_verbose" end |