identity-api-client 0.0.1 → 0.0.3

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: 3483daf289dcda276b0adceaf912f9c289055a5b
4
- data.tar.gz: c03fad40d2ab0c117456de8703d2544bf39647dd
3
+ metadata.gz: e59ebb9f0609ddf1998b4637a1782cd7a808e934
4
+ data.tar.gz: 1163c52bd8f1bd553da7f06748d86652da8b6f72
5
5
  SHA512:
6
- metadata.gz: 5d7b76363632a30fdf5d517a770cda5cf8a482957b19a06201139ed217a252d6b6a59a7b54aef9ddc3ae9e11bd34e5be237bb1f1ec9fcdec6ac0e3cf48adc820
7
- data.tar.gz: 2cf5b9359075d5ce46133d724205044c99eda806416b01052c668d99b108020c9a24a6f06e1a5894975f550cdaa2ff7ca189ff1b2ca5b61b4b4bf50fa097169a
6
+ metadata.gz: 52cbafc1abfbeebe9c0e7c48d68820249cf39be2278d9817692fc4eda6106064c5232f108db123fabb84087d36dc65c1a2532f69c7083c5473956c66c76c0f19
7
+ data.tar.gz: 92bb38bbfa96713105602e96dce6cd593c2bba585cd5d9f8b3f383f2733e8d304796f198b6c4a51410ff195e168b62f73668fd338e895b975dbe383a3a9036fa
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.3
1
+ 2.5.1
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ group :development do
7
7
  gem 'pry'
8
8
  gem 'pry-byebug'
9
9
  gem 'webmock'
10
- gem "rspec", "~> 3.5.0"
10
+ gem "rspec"
11
11
  gem "rdoc", "~> 3.12"
12
12
  gem "bundler", "~> 1.0"
13
13
  gem "juwelier", "~> 2.1.0"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- activesupport (5.0.2)
4
+ activesupport (5.1.3)
5
5
  concurrent-ruby (~> 1.0, >= 1.0.2)
6
6
  i18n (~> 0.7)
7
7
  minitest (~> 5.1)
@@ -19,19 +19,20 @@ GEM
19
19
  docile (1.1.5)
20
20
  faraday (0.9.2)
21
21
  multipart-post (>= 1.2, < 3)
22
- faraday_middleware (0.11.0.1)
22
+ faraday_middleware (0.12.2)
23
23
  faraday (>= 0.7.4, < 1.0)
24
24
  git (1.3.0)
25
- github_api (0.14.5)
25
+ github_api (0.17.0)
26
26
  addressable (~> 2.4.0)
27
27
  descendants_tracker (~> 0.0.4)
28
28
  faraday (~> 0.8, < 0.10)
29
29
  hashie (>= 3.4)
30
+ mime-types (>= 1.16, < 3.0)
30
31
  oauth2 (~> 1.0)
31
- hashdiff (0.3.2)
32
- hashie (3.5.5)
32
+ hashdiff (0.3.5)
33
+ hashie (3.5.6)
33
34
  highline (1.7.8)
34
- i18n (0.8.1)
35
+ i18n (0.8.6)
35
36
  json (1.8.6)
36
37
  juwelier (2.1.3)
37
38
  builder
@@ -45,15 +46,16 @@ GEM
45
46
  semver
46
47
  jwt (1.5.6)
47
48
  method_source (0.8.2)
48
- mini_portile2 (2.1.0)
49
- minitest (5.10.1)
49
+ mime-types (2.99.3)
50
+ mini_portile2 (2.3.0)
51
+ minitest (5.10.3)
50
52
  multi_json (1.12.1)
51
53
  multi_xml (0.6.0)
52
54
  multipart-post (2.0.0)
53
- nokogiri (1.7.0.1)
54
- mini_portile2 (~> 2.1.0)
55
- oauth2 (1.3.1)
56
- faraday (>= 0.8, < 0.12)
55
+ nokogiri (1.8.2)
56
+ mini_portile2 (~> 2.3.0)
57
+ oauth2 (1.4.0)
58
+ faraday (>= 0.8, < 0.13)
57
59
  jwt (~> 1.0)
58
60
  multi_json (~> 1.3)
59
61
  multi_xml (~> 0.5)
@@ -65,40 +67,40 @@ GEM
65
67
  pry-byebug (3.4.2)
66
68
  byebug (~> 9.0)
67
69
  pry (~> 0.10)
68
- rack (2.0.1)
70
+ rack (2.0.3)
69
71
  rake (12.0.0)
70
72
  rdoc (3.12.2)
71
73
  json (~> 1.4)
72
- rspec (3.5.0)
73
- rspec-core (~> 3.5.0)
74
- rspec-expectations (~> 3.5.0)
75
- rspec-mocks (~> 3.5.0)
76
- rspec-core (3.5.4)
77
- rspec-support (~> 3.5.0)
78
- rspec-expectations (3.5.0)
74
+ rspec (3.6.0)
75
+ rspec-core (~> 3.6.0)
76
+ rspec-expectations (~> 3.6.0)
77
+ rspec-mocks (~> 3.6.0)
78
+ rspec-core (3.6.0)
79
+ rspec-support (~> 3.6.0)
80
+ rspec-expectations (3.6.0)
79
81
  diff-lcs (>= 1.2.0, < 2.0)
80
- rspec-support (~> 3.5.0)
81
- rspec-mocks (3.5.0)
82
+ rspec-support (~> 3.6.0)
83
+ rspec-mocks (3.6.0)
82
84
  diff-lcs (>= 1.2.0, < 2.0)
83
- rspec-support (~> 3.5.0)
84
- rspec-support (3.5.0)
85
+ rspec-support (~> 3.6.0)
86
+ rspec-support (3.6.0)
85
87
  safe_yaml (1.0.4)
86
88
  semver (1.0.1)
87
- simplecov (0.13.0)
89
+ simplecov (0.15.0)
88
90
  docile (~> 1.1.0)
89
91
  json (>= 1.8, < 3)
90
92
  simplecov-html (~> 0.10.0)
91
- simplecov-html (0.10.0)
93
+ simplecov-html (0.10.2)
92
94
  slop (3.6.0)
93
95
  thread_safe (0.3.6)
94
- tzinfo (1.2.2)
96
+ tzinfo (1.2.3)
95
97
  thread_safe (~> 0.1)
96
98
  vertebrae (0.4.1)
97
99
  activesupport
98
100
  faraday (>= 0.9.2)
99
101
  faraday_middleware
100
102
  hashie
101
- webmock (2.3.2)
103
+ webmock (3.0.1)
102
104
  addressable (>= 2.3.6)
103
105
  crack (>= 0.3.2)
104
106
  hashdiff
@@ -112,10 +114,10 @@ DEPENDENCIES
112
114
  pry
113
115
  pry-byebug
114
116
  rdoc (~> 3.12)
115
- rspec (~> 3.5.0)
117
+ rspec
116
118
  simplecov
117
119
  vertebrae
118
120
  webmock
119
121
 
120
122
  BUNDLED WITH
121
- 1.14.6
123
+ 1.16.1
data/README.md CHANGED
@@ -4,6 +4,12 @@
4
4
 
5
5
  API Client for 38 Degree's Identity API
6
6
 
7
+ ## Install
8
+
9
+ This api client is distributed as a ruby gem.
10
+
11
+ `gem install identity-api-client`
12
+
7
13
  ## Usage
8
14
 
9
15
  ```ruby
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.3
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: identity-api-client 0.0.1 ruby lib
5
+ # stub: identity-api-client 0.0.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "identity-api-client".freeze
9
- s.version = "0.0.1"
9
+ s.version = "0.0.3"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Nathan Woodhull".freeze]
14
- s.date = "2017-03-14"
14
+ s.date = "2018-05-01"
15
15
  s.description = "Provides a simple ruby binding to 38dgs identity API".freeze
16
16
  s.email = "nathan@controlshiftlabs.com".freeze
17
17
  s.extra_rdoc_files = [
@@ -37,13 +37,13 @@ Gem::Specification.new do |s|
37
37
  "lib/identity-api-client/member.rb",
38
38
  "spec/client_spec.rb",
39
39
  "spec/fixtures/details.json",
40
- "spec/fixtures/request.json",
40
+ "spec/fixtures/details_with_consents.json",
41
41
  "spec/member_spec.rb",
42
42
  "spec/spec_helper.rb"
43
43
  ]
44
44
  s.homepage = "http://github.com/controlshift/identity-api-client".freeze
45
45
  s.licenses = ["MIT".freeze]
46
- s.rubygems_version = "2.6.8".freeze
46
+ s.rubygems_version = "2.6.13".freeze
47
47
  s.summary = "API Client for 38 Degree's Identity API".freeze
48
48
 
49
49
  if s.respond_to? :specification_version then
@@ -54,7 +54,7 @@ Gem::Specification.new do |s|
54
54
  s.add_development_dependency(%q<pry>.freeze, [">= 0"])
55
55
  s.add_development_dependency(%q<pry-byebug>.freeze, [">= 0"])
56
56
  s.add_development_dependency(%q<webmock>.freeze, [">= 0"])
57
- s.add_development_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
57
+ s.add_development_dependency(%q<rspec>.freeze, [">= 0"])
58
58
  s.add_development_dependency(%q<rdoc>.freeze, ["~> 3.12"])
59
59
  s.add_development_dependency(%q<bundler>.freeze, ["~> 1.0"])
60
60
  s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
@@ -64,7 +64,7 @@ Gem::Specification.new do |s|
64
64
  s.add_dependency(%q<pry>.freeze, [">= 0"])
65
65
  s.add_dependency(%q<pry-byebug>.freeze, [">= 0"])
66
66
  s.add_dependency(%q<webmock>.freeze, [">= 0"])
67
- s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
67
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
68
68
  s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
69
69
  s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
70
70
  s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
@@ -75,7 +75,7 @@ Gem::Specification.new do |s|
75
75
  s.add_dependency(%q<pry>.freeze, [">= 0"])
76
76
  s.add_dependency(%q<pry-byebug>.freeze, [">= 0"])
77
77
  s.add_dependency(%q<webmock>.freeze, [">= 0"])
78
- s.add_dependency(%q<rspec>.freeze, ["~> 3.5.0"])
78
+ s.add_dependency(%q<rspec>.freeze, [">= 0"])
79
79
  s.add_dependency(%q<rdoc>.freeze, ["~> 3.12"])
80
80
  s.add_dependency(%q<bundler>.freeze, ["~> 1.0"])
81
81
  s.add_dependency(%q<juwelier>.freeze, ["~> 2.1.0"])
@@ -1,7 +1,10 @@
1
1
  module IdentityApiClient
2
2
  class Member < Base
3
- def details(guid)
3
+ def details(guid, load_current_consents: false)
4
4
  params = {'guid' => guid, 'api_token' => client.connection.configuration.options[:api_token]}
5
+ if load_current_consents
6
+ params['load_current_consents'] = true
7
+ end
5
8
 
6
9
  resp = client.post_request('/api/member/details', params)
7
10
  resp.body
@@ -0,0 +1,18 @@
1
+ {
2
+ "first_name": "Joe",
3
+ "last_name": "Bloggs",
4
+ "email": "joe@bloggs.com",
5
+
6
+ "consents": [
7
+ {
8
+ "public_id": "terms_of_service_1.0",
9
+ "consent_level": "explicit_opt_in",
10
+ "consent_created_at": "2016-12-30 23:30:13 +0000"
11
+ },
12
+ {
13
+ "public_id": "privacy_policy_2.6",
14
+ "consent_level": "implicit",
15
+ "consent_created_at": "2015-01-01 10:10:10 +0000"
16
+ }
17
+ ]
18
+ }
data/spec/member_spec.rb CHANGED
@@ -4,21 +4,42 @@ describe IdentityApiClient::Member do
4
4
  subject { IdentityApiClient.new(host: 'test.com', api_token: '1234567890abcdef') }
5
5
 
6
6
  let(:request_path) { '/api/member/details' }
7
- let(:request_body) { fixture('request.json').chomp }
8
7
 
9
8
  describe 'success' do
10
9
  let(:status) { 200 }
11
- let(:body) { fixture('details.json') }
12
10
 
13
11
  before(:each) do
14
- stub_post(request_path).with(body: request_body).to_return(:body => body, :status => status,
15
- :headers => {:content_type => "application/json; charset=utf-8"})
12
+ stub_post(request_path).with(body: expected_request).to_return(:body => body, :status => status,
13
+ :headers => {:content_type => "application/json; charset=utf-8"})
16
14
  end
17
15
 
18
- it 'should get member details back from the API' do
19
- resp = subject.member.details('abcdef1234567890')
16
+ context 'without load_current_consents' do
17
+ let(:expected_request) { {'guid' => 'abcdef1234567890', 'api_token' => '1234567890abcdef'}.to_json }
18
+ let(:body) { fixture('details.json') }
20
19
 
21
- expect(resp.first_name).to eq('Joe')
20
+ it 'should get member details back from the API' do
21
+ resp = subject.member.details('abcdef1234567890')
22
+
23
+ expect(resp.first_name).to eq('Joe')
24
+ expect(resp.last_name).to eq('Bloggs')
25
+ expect(resp.email).to eq('joe@bloggs.com')
26
+ end
27
+ end
28
+
29
+ context 'with load_current_consents' do
30
+ let(:expected_request) { {'guid' => 'abcdef1234567890', 'api_token' => '1234567890abcdef', 'load_current_consents' => true}.to_json }
31
+ let(:body) { fixture('details_with_consents.json') }
32
+
33
+ it 'should get member details with consents back from the API' do
34
+ resp = subject.member.details('abcdef1234567890', load_current_consents: true)
35
+
36
+ expect(resp.first_name).to eq('Joe')
37
+ expect(resp.last_name).to eq('Bloggs')
38
+ expect(resp.email).to eq('joe@bloggs.com')
39
+
40
+ expect(resp.consents.count).to eq 2
41
+ expect(resp.consents[0].public_id).to eq 'terms_of_service_1.0'
42
+ end
22
43
  end
23
44
  end
24
45
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: identity-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Woodhull
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-14 00:00:00.000000000 Z
11
+ date: 2018-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vertebrae
@@ -70,16 +70,16 @@ dependencies:
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 3.5.0
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 3.5.0
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rdoc
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -162,7 +162,7 @@ files:
162
162
  - lib/identity-api-client/member.rb
163
163
  - spec/client_spec.rb
164
164
  - spec/fixtures/details.json
165
- - spec/fixtures/request.json
165
+ - spec/fixtures/details_with_consents.json
166
166
  - spec/member_spec.rb
167
167
  - spec/spec_helper.rb
168
168
  homepage: http://github.com/controlshift/identity-api-client
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  version: '0'
186
186
  requirements: []
187
187
  rubyforge_project:
188
- rubygems_version: 2.6.8
188
+ rubygems_version: 2.6.13
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: API Client for 38 Degree's Identity API
@@ -1 +0,0 @@
1
- {"guid":"abcdef1234567890","api_token":"1234567890abcdef"}