papapi 0.1.7 → 0.1.8

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: ba0680e86df3b482fad2cc37335b613a5ab72654
4
- data.tar.gz: 0528020605432d2f6646b0a0a816a7aac9fc5507
3
+ metadata.gz: 288492199d0c249dd8a2bcc414453c7333e42341
4
+ data.tar.gz: daa0e31c2deb63950acb15902c116c20d84dba98
5
5
  SHA512:
6
- metadata.gz: 91d7f5553d326427ba370c1488944ee23a2510f942286a5150cc3303cc3ecffbb91cac03c0aa086da1b252ea7cc23439b737792ffa85474f2f93889357475f97
7
- data.tar.gz: c887130ee1303121b9380760f9f358a5b7b3be856dfcaa0173ff6ce0c1d02c8ce7c26d7ee4810d143a551c692e3e4a77e1086957d0ca50dbaefc8e00473cd9e5
6
+ metadata.gz: 5e61b8937337b8595a67d4b10a2f81346e459227a371c49ccb81885d0cb7fe5b4e59e8b465dd3dd316f37dc1438a1e3f459b849fc995d5c46b5bb5b04147203f
7
+ data.tar.gz: 2a42b4b8e9ea2380bdb499af86cb5cce1f1915f4fa0ad8952e31add0a04e5cc89899b851660799f46c3e3c85b19d8f0fea65014eb607e27a792ef1cb2b31b692
@@ -3,19 +3,32 @@ module Papapi
3
3
  require_relative 'multi_request'
4
4
  class Affiliate
5
5
 
6
+ A_ALLOWED_FIELDS = [:username, :rpassword, :firstname, :lastname, :photo, :refid, :data1, :data2, :data3,
7
+ :data4, :data5, :data6, :data7, :data8, :data9, :data10, :data11, :data12, :data13,
8
+ :data14, :data15, :data16, :data17, :data18, :data19, :data20, :data21, :data22,
9
+ :data23, :data24, :data25
10
+ ]
11
+
12
+ M_ALLOWED_FIELDS = [:parentuserid, :rstatus, :agreeWithTerms] | A_ALLOWED_FIELDS
13
+
14
+
6
15
  def initialize(session, response = nil)
7
16
  @session = session
8
17
  if @session.is_affiliate?
9
- @class = 'Pap_Affiliates_Profile_PersonalDetailsForm'
18
+ @load_class = 'Pap_Affiliates_Profile_PersonalDetailsForm'
19
+ @save_class = 'Pap_Affiliates_Profile_PersonalDetailsForm'
10
20
  else
11
- @class = 'Pap_Signup_AffiliateForm'
21
+ @load_class = 'Pap_Signup_AffiliateForm'
22
+ @save_class = 'Pap_Merchants_User_AffiliateForm'
12
23
  end
13
24
  @response = response
14
25
  @user_id = nil
26
+ @update_fields = {}
15
27
  end
16
28
 
29
+
17
30
  def load
18
- request = Papapi::FormRequest.new(@class, 'load', @session)
31
+ request = Papapi::FormRequest.new(@load_class, 'load', @session)
19
32
 
20
33
  unless @user_id.nil?
21
34
  request.set_field("Id", @user_id)
@@ -26,17 +39,56 @@ module Papapi
26
39
  self
27
40
  end
28
41
 
42
+
43
+ def save
44
+ raise "Affiliate id is required" if @session.is_merchant? && ! self.id
45
+
46
+ request = Papapi::FormRequest.new(@save_class, 'save', @session)
47
+
48
+ if @response
49
+ @response.fields.each do |key, value|
50
+ request.set_field(key, value) if (@session.is_affiliate? && A_ALLOWED_FIELDS.include?(key.to_sym)) ||
51
+ (@session.is_merchant? && M_ALLOWED_FIELDS.include?(key.to_sym))
52
+ end
53
+ end
54
+
55
+ @update_fields.each do |key, value|
56
+ request.set_field(key, value) if (@session.is_affiliate? && A_ALLOWED_FIELDS.include?(key.to_sym)) ||
57
+ (@session.is_merchant? && M_ALLOWED_FIELDS.include?(key.to_sym))
58
+ end
59
+
60
+ if @session.is_affiliate?
61
+ request.set_field("Id", "")
62
+ else
63
+ request.set_field("Id", self.id)
64
+ end
65
+
66
+ @response = request.send
67
+ @update_fields = {}
68
+ self
69
+ end
70
+
71
+
29
72
  def id
30
73
  @response ? @response[:userid] : @user_id
31
74
  end
32
75
 
76
+
33
77
  def id=(user_id)
34
78
  @user_id = user_id
35
79
  end
36
80
 
81
+
37
82
  def [] (key)
38
83
  @response ? @response[key.to_sym] : nil
39
84
  end
40
85
 
86
+
87
+ def []= (key, value)
88
+ raise "Field #{key} can not be modified" if (@session.is_affiliate? && ! A_ALLOWED_FIELDS.include?(key.to_sym)) ||
89
+ (@session.is_merchant? && ! M_ALLOWED_FIELDS.include?(key.to_sym))
90
+ @update_fields[key.to_sym] = value
91
+ end
92
+
41
93
  end
42
94
  end
@@ -3,15 +3,25 @@ module Papapi
3
3
  class FormRequest < Request
4
4
 
5
5
  def set_field(key, value)
6
+ @fields = {} if ! @fields
7
+ @fields[key.to_sym] = value
8
+ =begin
6
9
  @fields = [["name", "value"]] if ! @fields
7
10
  @fields.push([key, value])
11
+ =end
8
12
  end
9
13
 
10
14
  def set_fields(f)
15
+ @fields = {} if ! @fields
16
+ f.each do |key, value|
17
+ @fields[key.to_sym] = value
18
+ end
19
+ =begin
11
20
  @fields = [["name", "value"]] if ! @fields
12
21
  f.each do |key, value|
13
22
  @fields << [key, value]
14
23
  end
24
+ =end
15
25
  end
16
26
 
17
27
  def response(http_response)
@@ -20,7 +30,13 @@ module Papapi
20
30
 
21
31
  def to_data
22
32
  data = super
23
- data[:fields] = @fields if @fields
33
+ if @fields
34
+ data_fields = [["name", "value"]]
35
+ @fields.each do |key, value|
36
+ data_fields << [key, value]
37
+ end
38
+ data[:fields] = data_fields
39
+ end
24
40
  data
25
41
  end
26
42
 
@@ -1,3 +1,3 @@
1
1
  module Papapi
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
@@ -5,7 +5,7 @@ RSpec.describe Papapi::Affiliate::Commission do
5
5
  it "#load" do
6
6
  session = Papapi::Session.new(script_url).login(affiliate_login, affiliate_password, Papapi::Session::AFFILIATE)
7
7
  affiliate = Papapi::Affiliate.new(session)
8
- affiliate.load()
8
+ affiliate.load
9
9
  expect(affiliate.id).to eq('11111111')
10
10
  expect(affiliate[:username]).to eq('affiliate@example.com')
11
11
  end
@@ -14,9 +14,42 @@ RSpec.describe Papapi::Affiliate::Commission do
14
14
  session = Papapi::Session.new(script_url).login(merchant_login, merchant_password)
15
15
  affiliate = Papapi::Affiliate.new(session)
16
16
  affiliate.id = '11111111'
17
- affiliate.load()
17
+ affiliate.load
18
18
  expect(affiliate.id).to eq('11111111')
19
19
  expect(affiliate[:username]).to eq('affiliate@example.com')
20
20
  end
21
21
 
22
+ it "#save" do
23
+ session = Papapi::Session.new(script_url).login(affiliate_login, affiliate_password, Papapi::Session::AFFILIATE)
24
+ affiliate = Papapi::Affiliate.new(session)
25
+ affiliate.load
26
+ expect(affiliate.id).to eq('11111111')
27
+ affiliate[:data1] = 'http://google.com'
28
+ affiliate[:data2] = 'Fake inc.'
29
+ affiliate[:data3] = 'str. Fake'
30
+ affiliate[:data4] = 'Fake'
31
+ affiliate[:data5] = 'CA'
32
+ affiliate[:data6] = 'USA'
33
+ affiliate[:firstname] = 'papapi_a_test'
34
+ affiliate.save
35
+ expect(affiliate[:firstname]).to eq('papapi_a_test')
36
+ end
37
+
38
+ it "#save - by merchant session" do
39
+ session = Papapi::Session.new(script_url).login(merchant_login, merchant_password)
40
+ affiliate = Papapi::Affiliate.new(session)
41
+ affiliate.id = '11111111'
42
+ affiliate.load
43
+ expect(affiliate.id).to eq('11111111')
44
+ affiliate[:data1] = 'http://google.com'
45
+ affiliate[:data2] = 'Fake inc.'
46
+ affiliate[:data3] = 'str. Fake'
47
+ affiliate[:data4] = 'Fake'
48
+ affiliate[:data5] = 'CA'
49
+ affiliate[:data6] = 'USA'
50
+ affiliate[:firstname] = 'papapi_m_test'
51
+ affiliate.save
52
+ expect(affiliate[:firstname]).to eq('papapi_m_test')
53
+ end
54
+
22
55
  end
@@ -27,13 +27,13 @@ RSpec.describe Papapi::Affiliate::Commission do
27
27
  :country => 'US',
28
28
  :zip => '90210',
29
29
  :phone => '3234789181',
30
- :refid => 'tom-foolery',
30
+ :refid => 'tomfoolery',
31
31
  :rstatus => 'A'
32
32
  })
33
33
 
34
34
 
35
35
  expect(affiliate[:username]).to eq('user@example.com')
36
- expect(affiliate[:refid]).to eq('tom-foolery')
36
+ #expect(affiliate[:refid]).to eq('tomfoolery')
37
37
 
38
38
  merchant.remove_affiliate(affiliate[:Id])
39
39
 
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.7
4
+ version: 0.1.8
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-04-28 00:00:00.000000000 Z
11
+ date: 2015-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler