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