roqua-core-api 0.3.1 → 0.4.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
- SHA1:
3
- metadata.gz: b788e173b506c370992aed5f8b6fcb4d230ba04f
4
- data.tar.gz: c419cc9116e18c43e884f8e251a224ddcfd5cc04
2
+ SHA256:
3
+ metadata.gz: 1d24e263c105794df4c647f23f282af5df4cd536397c2219c3a01836032a7206
4
+ data.tar.gz: d3c11d3f561a874b7a209a4dadb69c34a515148c5db3941478ffa854acdbbd13
5
5
  SHA512:
6
- metadata.gz: 9b9a8d71ab5bd7eb919ef2a0611ddcf94a2bdcf1ab1eabd8950eb1c1f723c4d43e019b1a6bcff58b9348db60b89db0d3dac8f02ff8989097b9137156796f03dd
7
- data.tar.gz: 267ca4836bef435b63f86ea90b68f8a2f652c2155af5e5f052f06744b93d25d9bfed4ecc2c878c296d663f6620297ae8e1ba6f35c946044b15bda85d57f620db
6
+ metadata.gz: 8e23edc5bcbfe448719868c2a47f92e45de88b14c0e1caa2043aec22cb9191a40c5995e5b80b1b1fc58318eab3d5c97e9b6726d8dd4461e53ee75ade548cb5c7
7
+ data.tar.gz: d0c3056bf8de5c17febb92df1e8ffc8539dfb57cc4a5ae80bc0c7fdcaf3535fc302420450e1c8af64df42d18eb168df1b4aea27a0a7abc93b77ff04e4dc0ad00
@@ -1,3 +1,7 @@
1
+ ### 0.4.0
2
+
3
+ * remove oauth_session
4
+
1
5
  ### 0.3.1
2
6
 
3
7
  * Added Notification endpoint
@@ -17,16 +17,15 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ['lib']
19
19
 
20
- gem.add_dependency 'httparty', '~> 0.14.0'
21
20
  gem.add_dependency 'active_interaction', '~> 3.2'
22
- gem.add_dependency 'omniauth-oauth2', '~> 1.1'
21
+ gem.add_dependency 'httparty', '~> 0.14.0'
23
22
  gem.add_dependency 'virtus', '~> 1.0'
24
23
 
25
- gem.add_development_dependency 'bundler', '~> 1.0'
24
+ gem.add_development_dependency 'bundler'
25
+ gem.add_development_dependency 'dotenv', '~> 0.10'
26
+ gem.add_development_dependency 'fabrication', '~> 2.9'
26
27
  gem.add_development_dependency 'rake', '~> 10.0'
27
- gem.add_development_dependency 'yard', '~> 0.8'
28
28
  gem.add_development_dependency 'rspec', '~> 3.0'
29
- gem.add_development_dependency 'fabrication', '~> 2.9'
30
29
  gem.add_development_dependency 'webmock', '~> 1.17'
31
- gem.add_development_dependency 'dotenv', '~> 0.10'
30
+ gem.add_development_dependency 'yard', '~> 0.8'
32
31
  end
@@ -44,7 +44,7 @@ class Roqua::CoreApi::Models::ActiveVirtus
44
44
  min: params.fetch("#{attribute}(5i)", 0),
45
45
  sec: params.fetch("#{attribute}(6i)", 0)
46
46
  }
47
- rescue
47
+ rescue StandardError
48
48
  errors.add(attribute, I18n.t("errors.messages.invalid_date"))
49
49
  end
50
50
  end
@@ -1,6 +1,5 @@
1
1
  require 'httparty'
2
2
  require 'roqua/core_api/sessions/auth_session'
3
- require 'roqua/core_api/sessions/oauth_session'
4
3
  require 'roqua/core_api/sessions/token_session'
5
4
  require 'roqua/core_api/sessions/basic_auth_session'
6
5
  require 'roqua/core_api/sessions/hmac_auth_request'
@@ -8,10 +7,6 @@ require 'roqua/core_api/sessions/hmac_auth_session'
8
7
 
9
8
  module Roqua
10
9
  module CoreApi
11
- def self.oauth_session(*arguments, &block)
12
- Sessions::OAuthSession.new(*arguments, &block)
13
- end
14
-
15
10
  def self.token_session(*arguments, &block)
16
11
  Sessions::TokenSession.new(*arguments, &block)
17
12
  end
@@ -1,5 +1,5 @@
1
1
  module Roqua
2
2
  module CoreApi
3
- VERSION = '0.3.1'
3
+ VERSION = '0.4.0'
4
4
  end
5
5
  end
@@ -1,9 +1,9 @@
1
1
  Fabricator(:roqua_core_api_auth_session, from: Roqua::CoreApi::Sessions::AuthSession) do
2
- initialize_with { Roqua::CoreApi::Sessions::AuthSession.new core_site: 'http://core.dev' }
2
+ initialize_with { Roqua::CoreApi::Sessions::AuthSession.new core_site: 'http://core.roqua.eu' }
3
3
  end
4
4
 
5
5
  Fabricator(:roqua_core_api_token_session, from: Roqua::CoreApi::Sessions::TokenSession) do
6
6
  initialize_with do
7
- Roqua::CoreApi::Sessions::TokenSession.new access_token: 'some_access_token', core_site: 'http://core.dev'
7
+ Roqua::CoreApi::Sessions::TokenSession.new access_token: 'some_access_token', core_site: 'http://core.roqua.eu'
8
8
  end
9
9
  end
@@ -2,6 +2,6 @@ Fabricator(:roqua_core_api_basic_auth_session, from: Roqua::CoreApi::Sessions::B
2
2
  initialize_with do
3
3
  Roqua::CoreApi::Sessions::BasicAuthSession.new username: 'some_username',
4
4
  password: 'some_password',
5
- core_site: 'http://core.dev'
5
+ core_site: 'http://core.roqua.eu'
6
6
  end
7
7
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe CreateDossierGroup do
4
- let(:session) { Fabricate :roqua_core_api_oauth_session }
4
+ let(:session) { Fabricate :roqua_core_api_token_session }
5
5
 
6
6
  it 'performs a post on the /dossier_groups api path' do
7
7
  expect(session).to receive(:post).with('/dossier_groups', dossier_group: {some: 'attributes'},
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe CreateDossier do
4
- let(:session) { Fabricate :roqua_core_api_oauth_session }
4
+ let(:session) { Fabricate :roqua_core_api_token_session }
5
5
  let(:person) { Fabricate :roqua_core_api_person, id: nil }
6
6
  let(:dossier) { Fabricate :roqua_core_api_dossier, id: nil }
7
7
  let(:response) { httparty_response('id' => 'some_id') }
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Dossiers do
4
- let(:session) { Fabricate :roqua_core_api_oauth_session }
4
+ let(:session) { Fabricate :roqua_core_api_token_session }
5
5
  let(:dossier_group_id) { 'some_dg_id' }
6
6
  let(:external_identifier) { 'some_eid' }
7
7
  let(:response) { {'headers' => %w(id birth_year gender firstname lastname),
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SendInviteEmail do
4
- let(:session) { Fabricate :roqua_core_api_oauth_session }
4
+ let(:session) { Fabricate :roqua_core_api_token_session }
5
5
 
6
6
  context 'Dossier' do
7
7
  subject { SendInviteEmail.run! \
@@ -34,7 +34,7 @@ describe AuthSession do
34
34
  it 'performs a get request' do
35
35
  allow(session).to receive(:basic_auth).and_return(username: 'some_username', password: 'some_password')
36
36
  allow(session).to receive(:headers).and_return(some: 'header')
37
- expect(HTTParty).to receive(:get).with('http://core.dev/api/v1/some_path.json',
37
+ expect(HTTParty).to receive(:get).with('http://core.roqua.eu/api/v1/some_path.json',
38
38
  query: {some: 'param'},
39
39
  headers: {some: 'header'},
40
40
  basic_auth: {username: 'some_username', password: 'some_password'},
@@ -44,7 +44,7 @@ describe AuthSession do
44
44
  end
45
45
 
46
46
  it 'returns the response on sucess status' do
47
- stub_request(:get, 'http://core.dev/api/v1/some_path.json?').to_return(
47
+ stub_request(:get, 'http://core.roqua.eu/api/v1/some_path.json?').to_return(
48
48
  status: 201,
49
49
  body: '{ "success": true }',
50
50
  headers: { 'Content-Type' => 'application/json' })
@@ -52,7 +52,7 @@ describe AuthSession do
52
52
  end
53
53
 
54
54
  it 'returns the response on a 422 status' do
55
- stub_request(:get, 'http://core.dev/api/v1/some_path.json?').to_return(
55
+ stub_request(:get, 'http://core.roqua.eu/api/v1/some_path.json?').to_return(
56
56
  status: 422,
57
57
  body: '{ "errors": { "column": ["wrong"] } }',
58
58
  headers: { 'Content-Type' => 'application/json' })
@@ -27,7 +27,7 @@ describe TokenSession do
27
27
 
28
28
  describe '#logout' do
29
29
  it 'sends a put request to the session#destroy' do
30
- expect(HTTParty).to receive(:delete).with("http://core.dev/api/v1sessions/destroy.json",
30
+ expect(HTTParty).to receive(:delete).with("http://core.roqua.eu/api/v1sessions/destroy.json",
31
31
  headers: {"Authorization" => "Session some_access_token"},
32
32
  query: {},
33
33
  basic_auth: nil,
@@ -49,7 +49,7 @@ describe TokenSession do
49
49
 
50
50
  describe '#access_denied' do
51
51
  it 'raises a no_session error when response is 401 with a no_session response' do
52
- stub_request(:get, 'http://core.dev/api/v1/some_path.json?').to_return(
52
+ stub_request(:get, 'http://core.roqua.eu/api/v1/some_path.json?').to_return(
53
53
  status: 401,
54
54
  body: '{ "no_session": true }',
55
55
  headers: { 'Content-Type' => 'application/json' })
@@ -57,7 +57,7 @@ describe TokenSession do
57
57
  end
58
58
 
59
59
  it 'raises a unauthorized error when response is 401 without a no_session response' do
60
- stub_request(:get, 'http://core.dev/api/v1/some_path.json?').to_return(
60
+ stub_request(:get, 'http://core.roqua.eu/api/v1/some_path.json?').to_return(
61
61
  status: 401,
62
62
  body: '',
63
63
  headers: { 'Content-Type' => 'application/json' })
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe UpdateDossier do
4
- let(:session) { Fabricate :roqua_core_api_oauth_session }
4
+ let(:session) { Fabricate :roqua_core_api_token_session }
5
5
  let(:dossier) { Fabricate :roqua_core_api_dossier }
6
6
  let(:response) { double }
7
7
 
@@ -2,15 +2,21 @@ require 'rspec'
2
2
  require 'fabrication'
3
3
 
4
4
  require 'dotenv'
5
- Dotenv.load(File.expand_path("../../.env", File.dirname(__FILE__)))
5
+ Dotenv.load(File.expand_path("../.env", File.dirname(__dir__)))
6
6
 
7
7
  require 'roqua-core-api'
8
8
  include Roqua::CoreApi
9
9
  include Roqua::CoreApi::Sessions
10
10
  include Roqua::CoreApi::Models
11
11
 
12
- Dir[File.join(File.expand_path(File.dirname(__FILE__)), 'support', '*.rb')].each { |f| require f }
12
+ # It seems sometimes the Rails constant is defined and Rails.root is injected (which is nil at that moment) resulting
13
+ # in missing fabricators. Let's just set the path to the current directory to fix this. See:
14
+ # https://github.com/paulelliott/fabrication/blob/42db96f11cbf80d22bd9c87dbf6740894c2b2bdc/lib/fabrication/config.rb#L42
15
+ Fabrication::Config.path_prefix = ['.']
16
+ Fabrication.manager.load_definitions
13
17
 
14
- I18n.load_path << Dir[File.join(File.expand_path(File.dirname(__FILE__)), '..', 'config', 'locales', '*.yml')]
18
+ Dir[File.join(File.expand_path(__dir__), 'support', '*.rb')].each { |f| require f }
19
+
20
+ I18n.load_path << Dir[File.join(File.expand_path(__dir__), '..', 'config', 'locales', '*.yml')]
15
21
  I18n.enforce_available_locales = false
16
22
  I18n.default_locale = :nl
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roqua-core-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marten Veldthuis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-05 00:00:00.000000000 Z
11
+ date: 2019-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: httparty
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 0.14.0
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 0.14.0
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: active_interaction
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +25,19 @@ dependencies:
39
25
  - !ruby/object:Gem::Version
40
26
  version: '3.2'
41
27
  - !ruby/object:Gem::Dependency
42
- name: omniauth-oauth2
28
+ name: httparty
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: '1.1'
33
+ version: 0.14.0
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: '1.1'
40
+ version: 0.14.0
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: virtus
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -70,72 +56,72 @@ dependencies:
70
56
  name: bundler
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
- - - "~>"
59
+ - - ">="
74
60
  - !ruby/object:Gem::Version
75
- version: '1.0'
61
+ version: '0'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - "~>"
66
+ - - ">="
81
67
  - !ruby/object:Gem::Version
82
- version: '1.0'
68
+ version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
- name: rake
70
+ name: dotenv
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - "~>"
88
74
  - !ruby/object:Gem::Version
89
- version: '10.0'
75
+ version: '0.10'
90
76
  type: :development
91
77
  prerelease: false
92
78
  version_requirements: !ruby/object:Gem::Requirement
93
79
  requirements:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
- version: '10.0'
82
+ version: '0.10'
97
83
  - !ruby/object:Gem::Dependency
98
- name: yard
84
+ name: fabrication
99
85
  requirement: !ruby/object:Gem::Requirement
100
86
  requirements:
101
87
  - - "~>"
102
88
  - !ruby/object:Gem::Version
103
- version: '0.8'
89
+ version: '2.9'
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - "~>"
109
95
  - !ruby/object:Gem::Version
110
- version: '0.8'
96
+ version: '2.9'
111
97
  - !ruby/object:Gem::Dependency
112
- name: rspec
98
+ name: rake
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
101
  - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: '3.0'
103
+ version: '10.0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: '3.0'
110
+ version: '10.0'
125
111
  - !ruby/object:Gem::Dependency
126
- name: fabrication
112
+ name: rspec
127
113
  requirement: !ruby/object:Gem::Requirement
128
114
  requirements:
129
115
  - - "~>"
130
116
  - !ruby/object:Gem::Version
131
- version: '2.9'
117
+ version: '3.0'
132
118
  type: :development
133
119
  prerelease: false
134
120
  version_requirements: !ruby/object:Gem::Requirement
135
121
  requirements:
136
122
  - - "~>"
137
123
  - !ruby/object:Gem::Version
138
- version: '2.9'
124
+ version: '3.0'
139
125
  - !ruby/object:Gem::Dependency
140
126
  name: webmock
141
127
  requirement: !ruby/object:Gem::Requirement
@@ -151,19 +137,19 @@ dependencies:
151
137
  - !ruby/object:Gem::Version
152
138
  version: '1.17'
153
139
  - !ruby/object:Gem::Dependency
154
- name: dotenv
140
+ name: yard
155
141
  requirement: !ruby/object:Gem::Requirement
156
142
  requirements:
157
143
  - - "~>"
158
144
  - !ruby/object:Gem::Version
159
- version: '0.10'
145
+ version: '0.8'
160
146
  type: :development
161
147
  prerelease: false
162
148
  version_requirements: !ruby/object:Gem::Requirement
163
149
  requirements:
164
150
  - - "~>"
165
151
  - !ruby/object:Gem::Version
166
- version: '0.10'
152
+ version: '0.8'
167
153
  description: Provides authenticated access to Core
168
154
  email: marten@veldthuis.com
169
155
  executables: []
@@ -214,19 +200,15 @@ files:
214
200
  - lib/roqua/core_api/sessions/basic_auth_session.rb
215
201
  - lib/roqua/core_api/sessions/hmac_auth_request.rb
216
202
  - lib/roqua/core_api/sessions/hmac_auth_session.rb
217
- - lib/roqua/core_api/sessions/oauth_session.rb
218
203
  - lib/roqua/core_api/sessions/token_session.rb
219
204
  - lib/roqua/core_api/sso_login.rb
220
205
  - lib/roqua/core_api/update_dossier.rb
221
206
  - lib/roqua/core_api/update_person.rb
222
207
  - lib/roqua/core_api/version.rb
223
- - lib/roqua/omniauth/rails_initializer.rb
224
- - lib/roqua/omniauth/strategies/doorkeeper.rb
225
208
  - spec/core_api_spec.rb
226
209
  - spec/fabricators/auth_session_fabricator.rb
227
210
  - spec/fabricators/basic_auth_session_fabricator.rb
228
211
  - spec/fabricators/dossier_fabricator.rb
229
- - spec/fabricators/oauth_session_fabricator.rb
230
212
  - spec/fabricators/person_fabricator.rb
231
213
  - spec/lib/roqua/core_api/create_dossier_group_spec.rb
232
214
  - spec/lib/roqua/core_api/create_dossier_spec.rb
@@ -239,7 +221,6 @@ files:
239
221
  - spec/lib/roqua/core_api/send_text_message_to_spec.rb
240
222
  - spec/lib/roqua/core_api/sessions/auth_session_spec.rb
241
223
  - spec/lib/roqua/core_api/sessions/basic_auth_session_spec.rb
242
- - spec/lib/roqua/core_api/sessions/oauth_session_spec.rb
243
224
  - spec/lib/roqua/core_api/sessions/token_session_spec.rb
244
225
  - spec/lib/roqua/core_api/update_dossier_spec.rb
245
226
  - spec/spec_helper.rb
@@ -263,8 +244,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
263
244
  - !ruby/object:Gem::Version
264
245
  version: '0'
265
246
  requirements: []
266
- rubyforge_project:
267
- rubygems_version: 2.6.8
247
+ rubygems_version: 3.0.3
268
248
  signing_key:
269
249
  specification_version: 4
270
250
  summary: API wrapper gem around Core's API
@@ -273,7 +253,6 @@ test_files:
273
253
  - spec/fabricators/auth_session_fabricator.rb
274
254
  - spec/fabricators/basic_auth_session_fabricator.rb
275
255
  - spec/fabricators/dossier_fabricator.rb
276
- - spec/fabricators/oauth_session_fabricator.rb
277
256
  - spec/fabricators/person_fabricator.rb
278
257
  - spec/lib/roqua/core_api/create_dossier_group_spec.rb
279
258
  - spec/lib/roqua/core_api/create_dossier_spec.rb
@@ -286,9 +265,7 @@ test_files:
286
265
  - spec/lib/roqua/core_api/send_text_message_to_spec.rb
287
266
  - spec/lib/roqua/core_api/sessions/auth_session_spec.rb
288
267
  - spec/lib/roqua/core_api/sessions/basic_auth_session_spec.rb
289
- - spec/lib/roqua/core_api/sessions/oauth_session_spec.rb
290
268
  - spec/lib/roqua/core_api/sessions/token_session_spec.rb
291
269
  - spec/lib/roqua/core_api/update_dossier_spec.rb
292
270
  - spec/spec_helper.rb
293
271
  - spec/support/httpparty_helpers.rb
294
- has_rdoc:
@@ -1,38 +0,0 @@
1
- module Roqua
2
- module CoreApi
3
- module Sessions
4
- class OAuthSession < AuthSession
5
- attr_reader :access_token
6
-
7
- def initialize(access_token:, **additional_arguments)
8
- @access_token = access_token
9
- super additional_arguments
10
- end
11
-
12
- def logout_url(return_to:)
13
- "#{core_site}/session/destroy?token=#{access_token}&return_to=#{CGI.escape return_to}"
14
- end
15
-
16
- # ping the server to check if session is still valid.
17
- # Will throw NoSession as usual if not.
18
- def ping
19
- get "/ping"
20
- end
21
-
22
- private
23
-
24
- def access_denied(response)
25
- if response['no_session']
26
- fail NoSession
27
- else
28
- fail Unauthorized
29
- end
30
- end
31
-
32
- def headers(_request_method, _path, _params)
33
- {"Authorization" => "Bearer #{access_token}"}
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,12 +0,0 @@
1
- require 'omniauth-oauth2'
2
- require 'roqua/omniauth/strategies/doorkeeper'
3
-
4
- OmniAuth.config.logger = Rails.logger
5
-
6
- Rails.application.config.middleware.use OmniAuth::Builder do
7
- provider :doorkeeper,
8
- ENV.fetch('CORE_OAUTH_CLIENT_ID'),
9
- ENV.fetch('CORE_OAUTH_CLIENT_SECRET'),
10
- client_options: {site: ENV.fetch('CORE_SITE')},
11
- authorize_params: {organization_id: ENV['CORE_ORGANIZATION']}
12
- end
@@ -1,25 +0,0 @@
1
- module OmniAuth
2
- module Strategies
3
- class Doorkeeper < OmniAuth::Strategies::OAuth2
4
- option :name, :doorkeeper
5
- option :client_options, site: 'http://core.dev',
6
- authorize_path: '/oauth/authorize'
7
-
8
- uid do
9
- raw_info["id"]
10
- end
11
-
12
- info do
13
- {dossier_id: raw_info['dossier_id'],
14
- username: raw_info['username'],
15
- role: raw_info['role'],
16
- person_id: raw_info['person_id'],
17
- dossier_groups: raw_info['dossier_groups']}
18
- end
19
-
20
- def raw_info
21
- @raw_info ||= access_token.get('/api/v1/me.json').parsed['me']
22
- end
23
- end
24
- end
25
- end
@@ -1,5 +0,0 @@
1
- Fabricator(:roqua_core_api_oauth_session, from: Roqua::CoreApi::Sessions::OAuthSession) do
2
- initialize_with do
3
- Roqua::CoreApi::Sessions::OAuthSession.new access_token: 'some_access_token', core_site: 'http://core.dev'
4
- end
5
- end
@@ -1,63 +0,0 @@
1
- require 'spec_helper'
2
- require 'webmock/rspec'
3
-
4
- describe OAuthSession do
5
- let(:session) { Fabricate :roqua_core_api_oauth_session }
6
- let(:response) { double('response', code: 201, parsed_response: 'some_response') }
7
-
8
- describe '#initialize' do
9
- it 'sets the access_token instance variable' do
10
- session = Roqua::CoreApi.oauth_session access_token: 'some_access_token'
11
- expect(session.access_token).to eq('some_access_token')
12
- end
13
-
14
- it 'allows to override the core_site variable' do
15
- session = Roqua::CoreApi.oauth_session access_token: 'some_access_token', core_site: 'some_core_site'
16
- expect(session.core_site).to eq('some_core_site')
17
- end
18
-
19
- it 'defaults the AuthSession core_site CORE_SITE env variable default value' do
20
- original_env_core_site = ENV['CORE_SITE']
21
- ENV['CORE_SITE'] = 'some_env_core_site'
22
- session = Roqua::CoreApi.oauth_session access_token: 'some_access_token'
23
- ENV['CORE_SITE'] = original_env_core_site
24
- expect(session.core_site).to eq('some_env_core_site')
25
- end
26
- end
27
-
28
- describe '#logout_url' do
29
- it 'returns the oauth session destroy url with an escaped redirect_to parameter' do
30
- expect(session.logout_url return_to: 'some redirect to')
31
- .to eq('http://core.dev/session/destroy?token=some_access_token&return_to=some+redirect+to')
32
- end
33
- end
34
-
35
- describe 'headers' do
36
- it 'sets the Authorization header' do
37
- expect(HTTParty).to receive(:get).with(an_instance_of(String),
38
- headers: {"Authorization" => "Bearer some_access_token"},
39
- query: {},
40
- basic_auth: nil,
41
- timeout: nil).and_return(response)
42
- session.get 'some_path'
43
- end
44
- end
45
-
46
- describe '#access_denied' do
47
- it 'raises a no_session error when response is 401 with a no_session response' do
48
- stub_request(:get, 'http://core.dev/api/v1/some_path.json?').to_return(
49
- status: 401,
50
- body: '{ "no_session": true }',
51
- headers: { 'Content-Type' => 'application/json' })
52
- expect { session.get '/some_path' }.to raise_error(NoSession)
53
- end
54
-
55
- it 'raises a unauthorized error when response is 401 without a no_session response' do
56
- stub_request(:get, 'http://core.dev/api/v1/some_path.json?').to_return(
57
- status: 401,
58
- body: '',
59
- headers: { 'Content-Type' => 'application/json' })
60
- expect { session.get '/some_path' }.to raise_error(Unauthorized)
61
- end
62
- end
63
- end