class Baidu::SEM::Base
Attributes
debug[RW]
password[RW]
token[RW]
username[RW]
Public Class Methods
new(auth)
click to toggle source
# File lib/baidu/sem/base.rb, line 7 def initialize(auth) classname = self.class.name.split('::').last @service_name = classname @port_name = classname @username = auth.username @password = auth.password @token = auth.token @client = Savon.new("https://api.baidu.com/sem/sms/v3/#{classname}?wsdl") end
Public Instance Methods
example(operation,with_header=false)
click to toggle source
# File lib/baidu/sem/base.rb, line 72 def example(operation,with_header=false) operation = make_operation(operation) if with_header { :example_header => operation.example_header, :example_body => operation.example_body } else operation.example_body end end
make_operation(operation_name)
click to toggle source
# File lib/baidu/sem/base.rb, line 57 def make_operation(operation_name) @client.operation(@service_name,@port_name,operation_name) end
method_missing(name, *args, &block)
click to toggle source
# File lib/baidu/sem/base.rb, line 16 def method_missing(name, *args, &block) options,debug = args[0],args[1] options = {} if options.nil? name = name.to_s name_snake = name.snake_case # p name name_tmp = case name when 'getAllCampaign' 'GetAllCampaign' when 'getCampaignByCampaignId' 'GetCampaignByCampaignId' when 'addCampaign' 'AddCampaign' when 'updateCampaign' 'UpdateCampaign' when 'deleteCampaign' 'DeleteCampaign' when 'getCampaignByCampaignId' 'GetCampaignByCampaignId' else name end name_request_sym = (name_tmp+'Request').to_sym #if %w(getCampaignByCampaignId getAllCampaign addCampaign updateCampaign deleteCampaign).include?name name_response_sym = (name+'Response').snake_case.to_sym operation = make_operation(name) operation.header = operation_header operation.body = { name_request_sym => options } ap operation.body if debug puts operation.build if debug response = operation.call ap response if debug Baidu::Response.new(response,name_response_sym) end
operation_header()
click to toggle source
# File lib/baidu/sem/base.rb, line 61 def operation_header { :AuthHeader=> { :username=>@username, :password=>@password, :token=>@token } } end
operations()
click to toggle source
# File lib/baidu/sem/base.rb, line 53 def operations @client.operations(@service_name,@port_name) end