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