electric_profile_ruby 1.10.0 → 1.11.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df32d1deaa7b3487fafbbf54e29bd7597b5b1236
4
- data.tar.gz: 0a2b75d3376c81217797a735ec7bf7b0fce1f96a
3
+ metadata.gz: 124e4c2f8ec7c8dff15b73e31331a00cb81117a3
4
+ data.tar.gz: a53cbf29d5e00ce9bde9849fd9fb6e0f01356006
5
5
  SHA512:
6
- metadata.gz: 00c1073b7251619c151c28b06b4ff976843d653de4c6fce57642dbf05f9d000863ff36a423fee1fc6a637cadcde9dee1219b53160663ae1c323b3e63ddbf48e8
7
- data.tar.gz: 4a8c3fb61c5720eae8d2f925ace7e79bf47313cf9d2ce7e7d2065e086cafa243dd21f0eb54f06f6a8e9dc45c427561b4ac877cdbccf54d1afc1eb33434968fbc
6
+ metadata.gz: 71c53203c77943ba5d4f7131f26ab0283f8f4e7033e992982007110240f1316a4176238264c3e929612f8894f5c3d8629cba8f104a73403678b9a2b765b760f4
7
+ data.tar.gz: 67e24c352f0d18836f40f65dedd820d1bdfc7914c7b50d972cb66acf93c9ba2629d3d1e04dd8ea873f0413a85a31e37be39a79bfc05d02d198b3862254d38516
data/.gitignore CHANGED
@@ -10,3 +10,5 @@
10
10
  # rspec failure tracking
11
11
  .rspec_status
12
12
  .env
13
+
14
+ .scratch
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- electric_profile_ruby (1.9.0)
4
+ electric_profile_ruby (1.10.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -79,6 +79,20 @@ module ElectricProfile
79
79
  perform_request(uri, http_request)
80
80
  end
81
81
 
82
+ def create_reward(reward_attributes)
83
+ uri = URI(@api_url + 'reward')
84
+ http_request = Net::HTTP::Post.new uri, @http_headers
85
+ http_request.body = { "data" => reward_attributes }.to_json
86
+ perform_request(uri, http_request)
87
+ end
88
+
89
+ def update_reward(reward_attributes)
90
+ uri = URI(@api_url + 'reward')
91
+ http_request = Net::HTTP::Put.new uri, @http_headers
92
+ http_request.body = { "data" => reward_attributes }.to_json
93
+ perform_request(uri, http_request)
94
+ end
95
+
82
96
  private
83
97
  def perform_request(uri, http_request)
84
98
  use_ssl = @api_url.include? "https"
@@ -0,0 +1,103 @@
1
+ module ElectricProfile
2
+
3
+ class Reward
4
+ attr_accessor :id, :customerId, :rewardProfileId, :amount, :currency, :type, :recipientEmail, :recipientId, :autoClaim, :autoDeliver, :delivered, :deliveryErrors, :transactionId, :error
5
+ TYPES = ['rewardlink', 'amazon', 'paypal', 'bitcoin', 'habitat']
6
+
7
+ def initialize(atts)
8
+ atts = atts.inject({}){ |memo, (k, v) | memo[k.to_sym] = v; memo }
9
+ @id = atts[:id]
10
+ @customerId = atts[:customerId]
11
+ @rewardProfileId = atts[:rewardProfileId]
12
+ @amount = atts[:amount]
13
+ @currency = atts[:currency]
14
+ @type = atts[:type]
15
+ @recipientEmail = atts[:recipientEmail]
16
+ @recipientId = atts[:recipientId]
17
+ @autoClaim = atts[:autoClaim]
18
+ @autoDeliver = atts[:autoDeliver]
19
+ @delivered = atts[:delivered]
20
+ @deliveryErrors = atts[:deliveryErrors]
21
+ @transactionId = atts[:transactionId]
22
+ end
23
+
24
+ def save
25
+ if @id
26
+ save_existing
27
+ else
28
+ save_new
29
+ end
30
+ end
31
+
32
+ def save_new
33
+ initialize_client
34
+ attributes = {
35
+ rewardProfileId: @rewardProfileId,
36
+ amount: @amount,
37
+ currency: @currency,
38
+ type: @type,
39
+ recipientEmail: @recipientEmail,
40
+ recipientId: @recipientId,
41
+ autoClaim: @autoClaim,
42
+ autoDeliver: @autoDeliver
43
+ }
44
+ if @client.create_reward(attributes)
45
+ @id = @client.data["data"]["id"]
46
+ @customerId = @client.data["data"]["customerId"]
47
+ true
48
+ else
49
+ @error = @client.error
50
+ false
51
+ end
52
+ end
53
+
54
+ def save_existing
55
+ initialize_client
56
+ attributes = {
57
+ id: @id,
58
+ customerId: @customerId,
59
+ rewardProfileId: @rewardProfileId,
60
+ amount: @amount,
61
+ currency: @currency,
62
+ type: @type,
63
+ recipientEmail: @recipientEmail,
64
+ recipientId: @recipientId,
65
+ autoClaim: @autoClaim,
66
+ autoDeliver: @autoDeliver,
67
+ delivered: @delivered,
68
+ deliveryErrors: @deliveryErrors,
69
+ transactionId: @transactionId
70
+ }
71
+ if @client.update_reward(attributes)
72
+ true
73
+ else
74
+ @error = @client.error
75
+ false
76
+ end
77
+ end
78
+
79
+ def self.find(id)
80
+ client = Client.new
81
+ if client.fetch_reward(id)
82
+ new client.data
83
+ else
84
+ raise StandardError, client.error
85
+ end
86
+ end
87
+
88
+ def self.all
89
+ client = Client.new
90
+ if client.fetch_rewards
91
+ client.data["Items"].map { |atts| new atts }
92
+ else
93
+ raise StandardError, client.error
94
+ end
95
+ end
96
+
97
+ def initialize_client
98
+ @client ||= Client.new
99
+ end
100
+
101
+ end
102
+
103
+ end
@@ -1,3 +1,3 @@
1
1
  module ElectricProfile
2
- VERSION = "1.10.0"
2
+ VERSION = "1.11.0"
3
3
  end
@@ -3,6 +3,7 @@ require "electric_profile_ruby/client"
3
3
  require "electric_profile_ruby/question"
4
4
  require "electric_profile_ruby/profiler"
5
5
  require "electric_profile_ruby/respondent_profiler"
6
+ require "electric_profile_ruby/reward"
6
7
 
7
8
  module ElectricProfile
8
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: electric_profile_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.0
4
+ version: 1.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Alston
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-04 00:00:00.000000000 Z
11
+ date: 2019-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -104,6 +104,7 @@ files:
104
104
  - lib/electric_profile_ruby/profiler.rb
105
105
  - lib/electric_profile_ruby/question.rb
106
106
  - lib/electric_profile_ruby/respondent_profiler.rb
107
+ - lib/electric_profile_ruby/reward.rb
107
108
  - lib/electric_profile_ruby/version.rb
108
109
  homepage: http://www.bovitzinc.com
109
110
  licenses: