class AmericommerceApi::Api
Constants
- AUTHENTICATE_WSDL
- NAMESPACES
- WSDL_POSTFIX
Public Class Methods
new(options)
click to toggle source
# File lib/americommerce/api.rb, line 12 def initialize(options) @log_level = options[:log_level] || :warn @logger = options[:logger] || $stdout @timeout = options[:timeout] || 60 @ac_header = { 'AmeriCommerceHeaderInfo' => { 'UserName' => options[:username], 'Password' => options[:password], 'SecurityToken' => options[:token] } } @store_domain = options[:store_domain] + WSDL_POSTFIX init_client(@ac_header, @store_domain) end
Public Instance Methods
get_all_order_statuses()
click to toggle source
# File lib/americommerce/api.rb, line 44 def get_all_order_statuses request(:order_status_get_all) end
get_orders(options = {})
click to toggle source
# File lib/americommerce/api.rb, line 30 def get_orders(options = {}) start_date = options[:start_date] || DateTime.new end_date = options[:end_date] || DateTime.now request(:order_get_by_edit_date_range_pre_filled, {'pdtStartDateTime' => start_date.to_datetime, 'pdtEndDateTime' => end_date.to_datetime}) end
get_product_by_id(product_id)
click to toggle source
# File lib/americommerce/api.rb, line 36 def get_product_by_id(product_id) request(:product_get_by_key, {'piitemID' => product_id}) end
get_product_url(product_id)
click to toggle source
# File lib/americommerce/api.rb, line 40 def get_product_url(product_id) request(:product_get_current_url, {'piProductID' => product_id}) end
ping()
click to toggle source
# File lib/americommerce/api.rb, line 48 def ping begin wsdl = AUTHENTICATE_WSDL % {store_domain: @store_domain} init_client(@ac_header,wsdl) response = request(:authenticate) raise AmericommerceApi::Exceptions::InvalidCredentials unless response == true rescue raise AmericommerceApi::Exceptions::InvalidCredentials ensure init_client(@ac_header, @store_domain) end end
Private Instance Methods
init_client(ac_header, wsdl)
click to toggle source
# File lib/americommerce/api.rb, line 73 def init_client(ac_header, wsdl) @client = Savon.client({ :ssl_verify_mode => :none, :ssl_version => :TLSv1, :wsdl => wsdl, :soap_header => ac_header, :namespaces => NAMESPACES, :log_level => @log_level, :logger => @logger, :read_timeout => @timeout, :open_timeout => @timeout }) end
request(call_action, request_params={})
click to toggle source
# File lib/americommerce/api.rb, line 63 def request(call_action, request_params={}) begin response = @client.call(call_action, message: request_params) return AmericommerceApi::Response.format(response, call_action) rescue Exception => e #check invalid by message of error because code returned by americommerce is 500 and not 4** raise e.message.include?('Unauthorized Request') ? AmericommerceApi::Exceptions::InvalidCredentials : e end end