class Papapi::Merchant

Constants

DYNAMIC_FIELDS_MAP

Attributes

response[RW]

Public Class Methods

new(session, response = nil) click to toggle source
# File lib/papapi/merchant.rb, line 21
def initialize(session, response = nil)
  @session = session
  raise "Merchant session is required" if !@session.is_merchant?
  @response = response
end

Public Instance Methods

[](key) click to toggle source
# File lib/papapi/merchant.rb, line 124
def [] (key)
  @response ? @response[key.to_sym] : nil
end
affiliate_by_username(username) click to toggle source
# File lib/papapi/merchant.rb, line 104
def affiliate_by_username(username)
  request = Papapi::GridRequest.new("Pap_Merchants_User_AffiliatesGridSimple", "getRows", @session)
  request.add_filter('username', Papapi::Filter::EQUALS, username)

  response = request.send
  if response.count > 0
    user = response[0]
    p user['id']
    affiliate = Papapi::Affiliate.new(@session)
    affiliate.id = user['userid'] || user['id']
    affiliate.load
    return affiliate
  end

end
create_affiliate(fields, fields_map = Papapi::Merchant::DYNAMIC_FIELDS_MAP) click to toggle source
# File lib/papapi/merchant.rb, line 27
def create_affiliate(fields, fields_map = Papapi::Merchant::DYNAMIC_FIELDS_MAP)
  request = Papapi::FormRequest.new('Pap_Signup_AffiliateForm', 'add', @session)
  request_fields = {'Id' => ''}
  fields.each do |name, value|
    field_real_name = fields_map.has_key?(name) ? fields_map[name] : name
    request_fields[field_real_name] = value
  end
  request.set_fields(request_fields)
  response = request.send
  response
end
id() click to toggle source
# File lib/papapi/merchant.rb, line 120
def id
  @response ? @response[:authid] : nil
end
list_fields(fields_map = Papapi::Merchant::DYNAMIC_FIELDS_MAP) click to toggle source
# File lib/papapi/merchant.rb, line 52
def list_fields(fields_map = Papapi::Merchant::DYNAMIC_FIELDS_MAP)
  request = Papapi::FormRequest.new('Pap_Merchants_Config_AffiliateFieldsForm', 'loadFieldsFromFormID', @session)
  response = request.send
  fields = {}
  first_line = true
  response[:dynamicFields].each do |field|
    if first_line
      first_line = false
      next
    end
    fields[field[1].to_sym] = {
        :formfieldid => field[0],
        :name => field[2],
        :rtype => field[3],
        :rstatus => field[4],
        :availablevalues => field[5]
    }
  end
  fields
end
load() click to toggle source
# File lib/papapi/merchant.rb, line 46
def load
  request = Papapi::FormRequest.new('Pap_Merchants_UserForm', 'load', @session)
  @response = request.send
  self
end
remove_affiliate(affiliate_id) click to toggle source
# File lib/papapi/merchant.rb, line 39
def remove_affiliate(affiliate_id)
  request = Papapi::FormRequest.new('Pap_Merchants_User_AffiliateForm', 'deleteRows', @session)
  request.set_param(:moveChildAffiliates, "N")
  request.set_param(:ids, [affiliate_id])
  request.send
end
search_affiliates(filter: [[:rstatus,'IN','A,D,P']], columns: ["id", "refid", "firstname", "lastname", "username", "rstatus", "parentfirstname", "parentlastname", "dateinserted"], offset: 0, limit: 30, sort_col: "dateinserted", sort_asc: false) click to toggle source
# File lib/papapi/merchant.rb, line 73
def search_affiliates(filter: [[:rstatus,'IN','A,D,P']],
    columns: ["id", "refid", "firstname", "lastname", "username", "rstatus", "parentfirstname", "parentlastname", "dateinserted"],
    offset: 0,
    limit: 30,
    sort_col: "dateinserted",
    sort_asc: false)

  request = Papapi::GridRequest.new("Pap_Merchants_User_AffiliatesGridSimple", "getRows", @session)
  request.add_filters(filter)
  request.add_columns(columns)

  request.sort_col = sort_col
  request.sort_asc = sort_asc
  request.offset = offset
  request.limit = limit

  response = request.send

  affiliates = []

  response.rows.each do |a_data|
    affiliate = {}
    response.attributes.each_with_index do |v,i|
      affiliate[v] = a_data[i]
    end
    affiliates.push(affiliate)
  end

  affiliates
end
to_h() click to toggle source
# File lib/papapi/merchant.rb, line 128
def to_h
  response ? response.to_h : {}
end