papapi 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2c8e995d668f62a23e76fa95e9f740c5c4f0d8e3
4
- data.tar.gz: f87a0ee261450ede573fe5dbb9870d1ed4cf2365
3
+ metadata.gz: bc85d50e2012ff738a2165d92fb3e2c7ae232544
4
+ data.tar.gz: 2103a176b9c2a7c31e48220e3772f8421e88180d
5
5
  SHA512:
6
- metadata.gz: e9669f4810272f175454660820f97365717844cc0bf8b180b8d604a841270949a62a59b461bf29acacb8002b3987874ba489f8de8471448efe84d68deb82ed7c
7
- data.tar.gz: 35f5a6e8e6d058cae5d99e9a958c1cfb7bce03b26f22ccbf1450631749e0dec7d8d32a7a5abe11162175e981606efd1f3598b46b661594e7020b9a3ba9108169
6
+ metadata.gz: 638975743a0870dbf58f79e13d75998f2bf883af840783648815ede897e378650901511b0ff4473696e6818f7d3773a8ae5c3e1471f5f958ee32ddae3ab6dd9d
7
+ data.tar.gz: c639a66f4fb61ddd496409ba1a523b84098720c8778ea10ae35540ca321a9a044fb5386480b9914fc9961738b32a72dcd9667eafe2a32eb98caeecb2896c4922
data/.gitignore CHANGED
@@ -14,3 +14,4 @@ spec/reports
14
14
  test/tmp
15
15
  test/version_tmp
16
16
  tmp
17
+ test-case
@@ -3,10 +3,10 @@ module Papapi
3
3
  require_relative 'multi_request'
4
4
  class Affiliate
5
5
 
6
- def initialize(session)
6
+ def initialize(session, response = nil)
7
7
  @session = session
8
8
  raise "Affiliate session is required" if !@session.is_affiliate?
9
- @response = nil
9
+ @response = response
10
10
  end
11
11
 
12
12
  def load
@@ -20,7 +20,7 @@ module Papapi
20
20
  end
21
21
 
22
22
  def [] (key)
23
- @response[key.to_sym]
23
+ @response ? @response[key.to_sym] : nil
24
24
  end
25
25
 
26
26
  end
@@ -7,7 +7,12 @@ module Papapi
7
7
  @fields = {}
8
8
  self.parsed['fields'].each do |field|
9
9
  next if REMOVE_VARS.include? field[0]
10
- @fields[field[0].to_sym] = field[1]
10
+ raise "Error: #{field[3]}" if field[3] && ! field[3].empty?
11
+ if field[2]
12
+ @fields[field[0].to_sym] = field[2]
13
+ else
14
+ @fields[field[0].to_sym] = field[1]
15
+ end
11
16
  end
12
17
  end
13
18
  @fields
@@ -10,6 +10,13 @@ module Papapi
10
10
  @filters << [code , op, value]
11
11
  end
12
12
 
13
+ def add_filters(filters)
14
+ @filters = [] if ! @filters
15
+ filters.each do |f|
16
+ @filters << f
17
+ end
18
+ end
19
+
13
20
  def response(http_response)
14
21
  GridResponse.new(http_response, self)
15
22
  end
@@ -19,6 +26,13 @@ module Papapi
19
26
  @columns << [column]
20
27
  end
21
28
 
29
+ def add_columns(columns)
30
+ @columns = [['id']] if ! @columns
31
+ columns.each do |c|
32
+ @columns << [c]
33
+ end
34
+ end
35
+
22
36
  def set_sorting(column, sort_asc)
23
37
  @sort_col = column
24
38
  @sort_asc = sort_asc
@@ -1,18 +1,115 @@
1
1
  module Papapi
2
+ require_relative 'session'
2
3
  require_relative 'grid_request'
4
+ require_relative 'filter'
5
+ require_relative 'affiliate'
3
6
  class Merchant
4
7
 
5
- def initialize(session)
8
+ DYNAMIC_FIELDS_MAP = {
9
+ :url => :data1,
10
+ :company => :data2,
11
+ :street => :data3,
12
+ :city => :data4,
13
+ :state => :data5,
14
+ :country => :data6,
15
+ :zip => :data7,
16
+ :phone => :data8
17
+ }
18
+
19
+ def initialize(session, response = nil)
6
20
  @session = session
7
21
  raise "Merchant session is required" if !@session.is_merchant?
22
+ @response = response
8
23
  end
9
24
 
10
- def details
25
+ def create_affiliate(fields, fields_map = Papapi::Merchant::DYNAMIC_FIELDS_MAP)
26
+ request = Papapi::FormRequest.new('Pap_Signup_AffiliateForm', 'add', @session)
27
+ request_fields = {'Id' => ''}
28
+ fields.each do |name, value|
29
+ field_real_name = fields_map.has_key?(name) ? fields_map[name] : name
30
+ request_fields[field_real_name] = value
31
+ end
32
+ request.set_fields(request_fields)
33
+ response = request.send
34
+ response
35
+ #affiliate = Papapi::Affiliate.new(Papapi::Session.new(@session.url).
36
+ # login(request_fields[:username], request_fields[:rpassword], Papapi::Session::AFFILIATE))
37
+ #affiliate.load
38
+ #affiliate
39
+ end
11
40
 
41
+ def remove_affiliate(affiliate_id)
42
+ request = Papapi::FormRequest.new('Pap_Merchants_User_AffiliateForm', 'deleteRows', @session)
43
+ request.set_param(:moveChildAffiliates, "N")
44
+ request.set_param(:ids, [affiliate_id])
45
+ request.send
12
46
  end
13
47
 
14
48
  def load
49
+ request = Papapi::FormRequest.new('Pap_Merchants_UserForm', 'load', @session)
50
+ @response = request.send
51
+ self
52
+ end
53
+
54
+ def list_fields(fields_map = Papapi::Merchant::DYNAMIC_FIELDS_MAP)
55
+ request = Papapi::FormRequest.new('Pap_Merchants_Config_AffiliateFieldsForm', 'loadFieldsFromFormID', @session)
56
+ response = request.send
57
+ fields = {}
58
+ first_line = true
59
+ response[:dynamicFields].each do |field|
60
+ if first_line
61
+ first_line = false
62
+ next
63
+ end
64
+ fields[field[1].to_sym] = {
65
+ :formfieldid => field[0],
66
+ :name => field[2],
67
+ :rtype => field[3],
68
+ :rstatus => field[4],
69
+ :availablevalues => field[5]
70
+ }
71
+ end
72
+ fields
73
+ end
74
+
75
+ def search_affiliates(filter: [[:rstatus,'IN','A,D,P']],
76
+ columns: ["id", "refid", "firstname", "lastname", "username", "rstatus", "parentfirstname", "parentlastname", "dateinserted"],
77
+ offset: 0,
78
+ limit: 30,
79
+ sort_col: "dateinserted",
80
+ sort_asc: false)
81
+
82
+ request = Papapi::GridRequest.new("Pap_Merchants_User_AffiliatesGridSimple", "getRows", @session)
83
+ request.add_filters(filter)
84
+ request.add_columns(columns)
85
+
86
+ request.sort_col = sort_col
87
+ request.sort_asc = sort_asc
88
+ request.offset = offset
89
+ request.limit = limit
15
90
 
91
+ response = request.send
92
+
93
+ affiliates = []
94
+
95
+ response.rows.each do |a_data|
96
+ affiliate = {}
97
+ response.attributes.each_with_index do |v,i|
98
+ affiliate[v] = a_data[i]
99
+ end
100
+ affiliates.push(affiliate)
101
+ end
102
+
103
+ affiliates
104
+ end
105
+
106
+ def id
107
+ @response ? @response[:authid] : nil
108
+ end
109
+
110
+ def [] (key)
111
+ @response ? @response[key.to_sym] : nil
16
112
  end
113
+
17
114
  end
18
115
  end
@@ -1,3 +1,3 @@
1
1
  module Papapi
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -0,0 +1,60 @@
1
+ require 'papapi'
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Papapi::Affiliate::Commission do
5
+
6
+ it "#load" do
7
+ session = Papapi::Session.new(script_url).login(merchant_login, merchant_password)
8
+ merchant = Papapi::Merchant.new(session)
9
+ merchant.load()
10
+ expect(merchant[:username]).to eq('merchant@example.com')
11
+ end
12
+
13
+ it "#create_affiliate" do
14
+ session = Papapi::Session.new(script_url).login(merchant_login, merchant_password)
15
+ merchant = Papapi::Merchant.new(session)
16
+
17
+ affiliate = merchant.create_affiliate({
18
+ :username => 'user@example.com',
19
+ :rpassword => 'password',
20
+ :firstname => 'Tom',
21
+ :lastname => 'Foolery',
22
+ :url => 'http://playpen.com/models/tom-foolery',
23
+ :company => 'Foolery INC',
24
+ :street => '875 Rodeo Drive',
25
+ :city => 'Beverly Hills',
26
+ :state => 'CA',
27
+ :country => 'US',
28
+ :zip => '90210',
29
+ :phone => '3234789181',
30
+ :refid => 'tom-foolery',
31
+ :rstatus => 'A'
32
+ })
33
+
34
+
35
+ expect(affiliate[:username]).to eq('user@example.com')
36
+ expect(affiliate[:refid]).to eq('tom-foolery')
37
+
38
+ merchant.remove_affiliate(affiliate[:Id])
39
+
40
+ end
41
+
42
+ it "#list_fields" do
43
+ session = Papapi::Session.new(script_url).login(merchant_login, merchant_password)
44
+ merchant = Papapi::Merchant.new(session)
45
+ fields = merchant.list_fields
46
+
47
+ expect(fields[:parentuserid][:formfieldid]).to eq('1')
48
+ end
49
+
50
+ it "#search_affiliate" do
51
+ session = Papapi::Session.new(script_url).login(merchant_login, merchant_password)
52
+ merchant = Papapi::Merchant.new(session)
53
+
54
+ affiliates = merchant.search_affiliates(filter: [[:username, Papapi::Filter::EQUALS, 'affiliate@example.com']])
55
+
56
+ expect(affiliates.length).to eq(1)
57
+ expect(affiliates[0]['username']).to eq('affiliate@example.com')
58
+
59
+ end
60
+ end
@@ -6,7 +6,7 @@ RSpec.describe Papapi::Merchant::Commission do
6
6
 
7
7
  it "#create" do
8
8
  commission = Papapi::Merchant::Commission.new(session)
9
- commission.create('11111111', '11111111', 1.0, '5535d2d7','U')
9
+ #commission.create('11111111', '11111111', 1.0, '5535d2d7','U')
10
10
  end
11
11
 
12
12
  it "#by_orders" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: papapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Nizovtsev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-26 00:00:00.000000000 Z
11
+ date: 2015-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -85,6 +85,7 @@ files:
85
85
  - spec/form_request_spec.rb
86
86
  - spec/grid_request_spec.rb
87
87
  - spec/helpers/settings.rb
88
+ - spec/merchant_spec.rb
88
89
  - spec/merchnat_commision_spec.rb
89
90
  - spec/request_spec.rb
90
91
  - spec/session_spec.rb
@@ -119,6 +120,7 @@ test_files:
119
120
  - spec/form_request_spec.rb
120
121
  - spec/grid_request_spec.rb
121
122
  - spec/helpers/settings.rb
123
+ - spec/merchant_spec.rb
122
124
  - spec/merchnat_commision_spec.rb
123
125
  - spec/request_spec.rb
124
126
  - spec/session_spec.rb