sendgrid4r 1.0.0 → 1.1.0

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: 88a609c232531a4f0b6d1acac25b7f2e8ca56c01
4
- data.tar.gz: 249e65cd6188c5280a64a13377a25595f8f31953
3
+ metadata.gz: 58d9fe109c54eb51bf889602332007cf01cee0b0
4
+ data.tar.gz: 432030e7df5cdd4bac8c6c37aa2c851d4c812d62
5
5
  SHA512:
6
- metadata.gz: a9f3ffa6032f734c8b6aa5d80f740d72f1d57163e323e532d7fef561cb74de2e7af7316304ecc61c55ba7ea78d514bcee9e195c9516cff129caf003ef5738286
7
- data.tar.gz: 82417181f37fcb1e45c3331bc0d23ff2b1ff4302719faf04013c3f63be07e2f6ae60a1f849cbe9067486aca3a587c114aa9dcc87b27b2da47e30a1feb1f73929
6
+ metadata.gz: d1bf3eb32ea9f95972cf026a6aace7671e57f33c85e49a678b662dd8aca66b96a3b98ff5587404acf50cb8d613f086cb8f5886631383423ba95c09bb8c2236e6
7
+ data.tar.gz: 6d0eb5696b42f4e81074a061f4029fdeb7aee8e18351c094b6d62c8d0b8a61a5aa9c52dc28e98cf199e0bce94607bff729305fafbbbb93a2b683e6002935983a
@@ -33,6 +33,7 @@ require 'sendgrid4r/rest/email_activity/email_activity'
33
33
  require 'sendgrid4r/rest/whitelabel/domains'
34
34
  require 'sendgrid4r/rest/whitelabel/ips'
35
35
  require 'sendgrid4r/rest/whitelabel/links'
36
+ require 'sendgrid4r/rest/users/users'
36
37
 
37
38
  module SendGrid4r
38
39
  module REST
@@ -71,6 +72,7 @@ module SendGrid4r
71
72
  include SendGrid4r::REST::Whitelabel::Domains
72
73
  include SendGrid4r::REST::Whitelabel::Ips
73
74
  include SendGrid4r::REST::Whitelabel::Links
75
+ include SendGrid4r::REST::Users
74
76
  end
75
77
  end
76
78
  end
@@ -0,0 +1,52 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $LOAD_PATH.unshift File.dirname(__FILE__)
3
+
4
+ require 'sendgrid4r/rest/request'
5
+
6
+ module SendGrid4r
7
+ module REST
8
+ #
9
+ # SendGrid Web API v3 Users
10
+ #
11
+ module Users
12
+ include SendGrid4r::REST::Request
13
+
14
+ Profile = Struct.new(
15
+ :address, :city, :company, :country, :first_name, :last_name,
16
+ :phone, :state, :website, :zip
17
+ )
18
+
19
+ def self.url
20
+ url = "#{BASE_URL}/user/profile"
21
+ url
22
+ end
23
+
24
+ def self.create_profile(resp)
25
+ return resp if resp.nil?
26
+ Profile.new(
27
+ resp['address'],
28
+ resp['city'],
29
+ resp['company'],
30
+ resp['country'],
31
+ resp['first_name'],
32
+ resp['last_name'],
33
+ resp['phone'],
34
+ resp['state'],
35
+ resp['website'],
36
+ resp['zip']
37
+ )
38
+ end
39
+
40
+ def get_user_profile(&block)
41
+ resp = get(@auth, SendGrid4r::REST::Users.url, nil, &block)
42
+ SendGrid4r::REST::Users.create_profile(resp)
43
+ end
44
+
45
+ def patch_user_profile(params: params, &block)
46
+ endpoint = SendGrid4r::REST::Users.url
47
+ resp = patch(@auth, endpoint, params, &block)
48
+ SendGrid4r::REST::Users.create_profile(resp)
49
+ end
50
+ end
51
+ end
52
+ end
@@ -2,5 +2,5 @@
2
2
  # SendGrid API v3 wrapper implementation.
3
3
  #
4
4
  module SendGrid4r
5
- VERSION = '1.0.0'
5
+ VERSION = '1.1.0'
6
6
  end
data/spec/client_spec.rb CHANGED
@@ -236,12 +236,16 @@ describe SendGrid4r::Client do
236
236
  expect(@client.respond_to?('get_associated_wl_link')).to eq(true)
237
237
  expect(@client.respond_to?('disassociate_wl_link')).to eq(true)
238
238
  expect(@client.respond_to?('associate_wl_link')).to eq(true)
239
+
240
+ # Users API
241
+ expect(@client.respond_to?('get_user_profile')).to eq(true)
242
+ expect(@client.respond_to?('patch_user_profile')).to eq(true)
239
243
  end
240
244
  end
241
245
 
242
246
  describe 'VERSION' do
243
247
  it 'returns VERSION value' do
244
- expect(SendGrid4r::VERSION).to eq('1.0.0')
248
+ expect(SendGrid4r::VERSION).to eq('1.1.0')
245
249
  end
246
250
  end
247
251
  end
@@ -0,0 +1,78 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/../../spec_helper'
3
+
4
+ describe SendGrid4r::REST::Users do
5
+ describe 'integration test', :it do
6
+ before do
7
+ begin
8
+ Dotenv.load
9
+ @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY'])
10
+ rescue RestClient::ExceptionWithResponse => e
11
+ puts e.inspect
12
+ raise e
13
+ end
14
+ end
15
+
16
+ context 'without block call' do
17
+ it '#get_user_profile' do
18
+ begin
19
+ profile = @client.get_user_profile
20
+ expect(profile).to be_a(SendGrid4r::REST::Users::Profile)
21
+ rescue RestClient::ExceptionWithResponse => e
22
+ puts e.inspect
23
+ raise e
24
+ end
25
+ end
26
+
27
+ it '#patch_user_profile' do
28
+ begin
29
+ params = {}
30
+ params['city'] = 'nakano'
31
+ profile = @client.patch_user_profile(params: params)
32
+ expect(profile).to be_a(SendGrid4r::REST::Users::Profile)
33
+ rescue RestClient::ExceptionWithResponse => e
34
+ puts e.inspect
35
+ raise e
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ describe 'unit test', :ut do
42
+ let(:client) do
43
+ SendGrid4r::Client.new(api_key: '')
44
+ end
45
+
46
+ let(:profile) do
47
+ JSON.parse(
48
+ '{'\
49
+ '"address":"814 West Chapman Avenue",'\
50
+ '"city":"Orange",'\
51
+ '"company":"SendGrid",'\
52
+ '"country":"US",'\
53
+ '"first_name":"Test",'\
54
+ '"last_name":"User",'\
55
+ '"phone":"555-555-5555",'\
56
+ '"state":"CA",'\
57
+ '"website":"http://www.sendgrid.com",'\
58
+ '"zip":"92868"'\
59
+ '}'
60
+ )
61
+ end
62
+
63
+ it '#get_user_profile' do
64
+ allow(client).to receive(:execute).and_return(profile)
65
+ actual = client.get_user_profile
66
+ expect(actual).to be_a(SendGrid4r::REST::Users::Profile)
67
+ expect(actual.address).to eq('814 West Chapman Avenue')
68
+ expect(actual.city).to eq('Orange')
69
+ expect(actual.company).to eq('SendGrid')
70
+ expect(actual.first_name).to eq('Test')
71
+ expect(actual.last_name).to eq('User')
72
+ expect(actual.phone).to eq('555-555-5555')
73
+ expect(actual.state).to eq('CA')
74
+ expect(actual.website).to eq('http://www.sendgrid.com')
75
+ expect(actual.zip).to eq('92868')
76
+ end
77
+ end
78
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendgrid4r
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - awwa500@gmail.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-18 00:00:00.000000000 Z
11
+ date: 2015-08-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -156,6 +156,7 @@ files:
156
156
  - lib/sendgrid4r/rest/subusers/subusers.rb
157
157
  - lib/sendgrid4r/rest/templates/templates.rb
158
158
  - lib/sendgrid4r/rest/templates/versions.rb
159
+ - lib/sendgrid4r/rest/users/users.rb
159
160
  - lib/sendgrid4r/rest/whitelabel/domains.rb
160
161
  - lib/sendgrid4r/rest/whitelabel/ips.rb
161
162
  - lib/sendgrid4r/rest/whitelabel/links.rb
@@ -194,6 +195,7 @@ files:
194
195
  - spec/rest/subusers/subusers_spec.rb
195
196
  - spec/rest/templates/templates_spec.rb
196
197
  - spec/rest/templates/versions_spec.rb
198
+ - spec/rest/users/users_spec.rb
197
199
  - spec/rest/whitelabel/domains_spec.rb
198
200
  - spec/rest/whitelabel/ips_spec.rb
199
201
  - spec/rest/whitelabel/links_spec.rb
@@ -256,6 +258,7 @@ test_files:
256
258
  - spec/rest/subusers/subusers_spec.rb
257
259
  - spec/rest/templates/templates_spec.rb
258
260
  - spec/rest/templates/versions_spec.rb
261
+ - spec/rest/users/users_spec.rb
259
262
  - spec/rest/whitelabel/domains_spec.rb
260
263
  - spec/rest/whitelabel/ips_spec.rb
261
264
  - spec/rest/whitelabel/links_spec.rb