roqua-core-api 0.0.37 → 0.0.38
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 +4 -4
- data/lib/roqua/core_api/create_dossier_group_export_synchronously.rb +14 -0
- data/lib/roqua/core_api/models/dossier.rb +8 -12
- data/lib/roqua/core_api/models/export.rb +5 -0
- data/lib/roqua/core_api/models.rb +2 -1
- data/lib/roqua/core_api/sessions/auth_session.rb +21 -4
- data/lib/roqua/core_api/update_dossier.rb +22 -0
- data/lib/roqua/core_api/version.rb +1 -1
- data/lib/roqua/core_api.rb +2 -0
- data/spec/fabricators/dossier_fabricator.rb +6 -0
- data/spec/lib/roqua/core_api/dossiers_spec.rb +1 -1
- data/spec/lib/roqua/core_api/models/dossier_spec.rb +26 -0
- data/spec/lib/roqua/core_api/update_dossier_spec.rb +49 -0
- metadata +12 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfa7b18ae2ac2f8b75b200310a7d51922fad8a58
|
4
|
+
data.tar.gz: d8863c44b0107988d1795588bfedd05415c53d86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd2a9e447bc550397b09ef3de30e754f41b27f959441ec5a398a1cb950436a3dfaca8ca019424c73513cb1215d7532104d9eb9957591a76752cd92aee6348b22
|
7
|
+
data.tar.gz: 4149166bc8a35b4a274b7d553b039e1ce0fdabe1fcc1dbe735ab69cb3bc23dd7c35f85079f49d5f5e7aadebabbaf838ea5baee61218971adee942e2724ebb027
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Roqua
|
2
|
+
module CoreApi
|
3
|
+
# @api private
|
4
|
+
class CreateDossierGroupExportSynchronously < ActiveInteraction::Base
|
5
|
+
model :session, class: Sessions::AuthSession
|
6
|
+
string :dossier_group_id
|
7
|
+
|
8
|
+
def execute
|
9
|
+
response = session.post "/dossier_groups/#{dossier_group_id}/exports"
|
10
|
+
Models::Export.new(response['dossier_group_export'])
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,15 +1,11 @@
|
|
1
|
-
|
2
|
-
module CoreApi
|
3
|
-
module Models
|
4
|
-
class Dossier
|
5
|
-
def initialize(attributes)
|
6
|
-
@attributes = attributes
|
7
|
-
end
|
1
|
+
require 'virtus'
|
8
2
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
3
|
+
class Roqua::CoreApi::Models::Dossier < Roqua::CoreApi::Models::ActiveVirtus
|
4
|
+
attribute :id, String
|
5
|
+
attribute :external_identifier, String
|
6
|
+
attribute :people, Array[Roqua::CoreApi::Models::Person]
|
7
|
+
|
8
|
+
def persisted?
|
9
|
+
id.present?
|
14
10
|
end
|
15
11
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'roqua/core_api/models/dossier_group'
|
2
|
-
require 'roqua/core_api/models/dossier'
|
3
2
|
require 'active_model'
|
4
3
|
require 'roqua/core_api/models/active_virtus'
|
5
4
|
require 'roqua/core_api/models/person'
|
5
|
+
require 'roqua/core_api/models/dossier'
|
6
|
+
require 'roqua/core_api/models/export'
|
@@ -13,24 +13,40 @@ module Roqua
|
|
13
13
|
|
14
14
|
def get(path, timeout: default_timeout, **params)
|
15
15
|
perform_request_or_fail do
|
16
|
-
HTTParty.get(full_url_for(path),
|
16
|
+
HTTParty.get(full_url_for(path),
|
17
|
+
headers: headers,
|
18
|
+
query: params,
|
19
|
+
basic_auth: basic_auth,
|
20
|
+
timeout: timeout)
|
17
21
|
end
|
18
22
|
end
|
19
23
|
|
20
24
|
def post(path, timeout: default_timeout, **params)
|
21
25
|
perform_request_or_fail do
|
22
|
-
HTTParty.post(full_url_for(path),
|
26
|
+
HTTParty.post(full_url_for(path),
|
27
|
+
headers: headers.merge('Content-Type' => 'application/json'),
|
28
|
+
body: params.to_json,
|
29
|
+
basic_auth: basic_auth,
|
30
|
+
timeout: timeout)
|
23
31
|
end
|
24
32
|
end
|
25
33
|
|
26
34
|
def patch(path, timeout: default_timeout, **params)
|
27
35
|
perform_request_or_fail do
|
28
|
-
HTTParty.patch(full_url_for(path),
|
36
|
+
HTTParty.patch(full_url_for(path),
|
37
|
+
headers: headers.merge('Content-Type' => 'application/json'),
|
38
|
+
body: params.to_json,
|
39
|
+
basic_auth: basic_auth,
|
40
|
+
timeout: timeout)
|
29
41
|
end
|
30
42
|
end
|
31
43
|
|
32
44
|
def delete(path, timeout: default_timeout, **params)
|
33
|
-
HTTParty.delete(full_url_for(path),
|
45
|
+
HTTParty.delete(full_url_for(path),
|
46
|
+
headers: headers,
|
47
|
+
query: params,
|
48
|
+
basic_auth: basic_auth,
|
49
|
+
timeout: timeout)
|
34
50
|
end
|
35
51
|
|
36
52
|
private
|
@@ -56,6 +72,7 @@ module Roqua
|
|
56
72
|
end
|
57
73
|
|
58
74
|
def headers
|
75
|
+
{}
|
59
76
|
end
|
60
77
|
|
61
78
|
def basic_auth
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Roqua
|
2
|
+
module CoreApi
|
3
|
+
# @api private
|
4
|
+
class UpdateDossier < Base
|
5
|
+
model :session, class: Sessions::AuthSession
|
6
|
+
model :dossier, class: Models::Dossier
|
7
|
+
|
8
|
+
# Saves the dossier attributes to server.
|
9
|
+
# Returns true on success, false on validation errors.
|
10
|
+
# Raises on other errors.
|
11
|
+
def execute
|
12
|
+
response = session.patch "/dossiers/#{dossier.id}", dossier: dossier.serializable_hash
|
13
|
+
if response.code == 422
|
14
|
+
errors_to_object(response, dossier)
|
15
|
+
false
|
16
|
+
else
|
17
|
+
true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/lib/roqua/core_api.rb
CHANGED
@@ -15,6 +15,8 @@ require 'roqua/core_api/send_invite_email'
|
|
15
15
|
require 'roqua/core_api/people'
|
16
16
|
require 'roqua/core_api/person'
|
17
17
|
require 'roqua/core_api/update_person'
|
18
|
+
require 'roqua/core_api/update_dossier'
|
19
|
+
require 'roqua/core_api/create_dossier_group_export_synchronously'
|
18
20
|
|
19
21
|
module Roqua
|
20
22
|
module CoreApi
|
@@ -38,6 +38,6 @@ describe Dossiers do
|
|
38
38
|
it 'returns the results as an array of structs' do
|
39
39
|
expect(session).to receive(:get).with('/dossiers', {}).and_return(response)
|
40
40
|
dossiers = Dossiers.run!(session: session)
|
41
|
-
expect(dossiers.
|
41
|
+
expect(dossiers.first.firstname).to eq 'john'
|
42
42
|
end
|
43
43
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Roqua
|
4
|
+
module CoreApi
|
5
|
+
module Models
|
6
|
+
describe Dossier do
|
7
|
+
let(:valid_dossier) { Dossier.new }
|
8
|
+
|
9
|
+
describe '#new' do
|
10
|
+
subject { Dossier.new external_identifier: 'ext_id' }
|
11
|
+
it 'accepts a hash of attributes' do
|
12
|
+
expect(subject.external_identifier).to eq 'ext_id'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe '#assign_attributes' do
|
17
|
+
subject { Dossier.new external_identifier: 'ext_id' }
|
18
|
+
it 'allows assigning of attributes' do
|
19
|
+
subject.assign_attributes(external_identifier: 'external_identifier')
|
20
|
+
expect(subject.external_identifier).to eq 'external_identifier'
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe UpdateDossier do
|
4
|
+
let(:session) { Fabricate :oauth_session }
|
5
|
+
let(:dossier) { Fabricate :dossier }
|
6
|
+
let(:response) { double }
|
7
|
+
|
8
|
+
before do
|
9
|
+
allow(response).to receive(:code) { 200 }
|
10
|
+
expect(session).to receive(:patch).with("/dossiers/#{dossier.id}",
|
11
|
+
dossier: dossier.serializable_hash)
|
12
|
+
.and_return(response)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe 'performs a patch on the /dossiers api path' do
|
16
|
+
before do
|
17
|
+
@result = UpdateDossier.run!(session: session,
|
18
|
+
dossier: dossier)
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'returns true when the call was correct' do
|
22
|
+
expect(@result).to be_truthy
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should not have any errors' do
|
26
|
+
expect(dossier.errors).to be_empty
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe 'returns false when the call was incorrect' do
|
31
|
+
let(:error) { { 'id' => ['empty'] } }
|
32
|
+
before do
|
33
|
+
allow(response).to receive(:[]).with('errors').and_return(error)
|
34
|
+
|
35
|
+
expect(response).to receive(:code).and_return(422)
|
36
|
+
@result = UpdateDossier.run!(session: session,
|
37
|
+
dossier: dossier)
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should return false' do
|
41
|
+
expect(@result).to be_falsey
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should add the errors to the dossier' do
|
45
|
+
expect(dossier.errors).to_not be_empty
|
46
|
+
expect(dossier.errors['id'][0]).to match(error['id'][0])
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roqua-core-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.38
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Marten Veldthuis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -188,6 +188,7 @@ files:
|
|
188
188
|
- lib/roqua/core_api/base.rb
|
189
189
|
- lib/roqua/core_api/create_dossier.rb
|
190
190
|
- lib/roqua/core_api/create_dossier_group.rb
|
191
|
+
- lib/roqua/core_api/create_dossier_group_export_synchronously.rb
|
191
192
|
- lib/roqua/core_api/create_professional.rb
|
192
193
|
- lib/roqua/core_api/delete_dossier_group_right.rb
|
193
194
|
- lib/roqua/core_api/dossier_groups.rb
|
@@ -197,6 +198,7 @@ files:
|
|
197
198
|
- lib/roqua/core_api/models/active_virtus.rb
|
198
199
|
- lib/roqua/core_api/models/dossier.rb
|
199
200
|
- lib/roqua/core_api/models/dossier_group.rb
|
201
|
+
- lib/roqua/core_api/models/export.rb
|
200
202
|
- lib/roqua/core_api/models/person.rb
|
201
203
|
- lib/roqua/core_api/people.rb
|
202
204
|
- lib/roqua/core_api/person.rb
|
@@ -206,6 +208,7 @@ files:
|
|
206
208
|
- lib/roqua/core_api/sessions/auth_session.rb
|
207
209
|
- lib/roqua/core_api/sessions/basic_auth_session.rb
|
208
210
|
- lib/roqua/core_api/sessions/oauth_session.rb
|
211
|
+
- lib/roqua/core_api/update_dossier.rb
|
209
212
|
- lib/roqua/core_api/update_person.rb
|
210
213
|
- lib/roqua/core_api/version.rb
|
211
214
|
- lib/roqua/omniauth/rails_initializer.rb
|
@@ -213,17 +216,20 @@ files:
|
|
213
216
|
- spec/core_api_spec.rb
|
214
217
|
- spec/fabricators/auth_session_fabricator.rb
|
215
218
|
- spec/fabricators/basic_auth_session_fabricator.rb
|
219
|
+
- spec/fabricators/dossier_fabricator.rb
|
216
220
|
- spec/fabricators/oauth_session_fabricator.rb
|
217
221
|
- spec/lib/roqua/core_api/create_dossier_group_spec.rb
|
218
222
|
- spec/lib/roqua/core_api/create_dossier_spec.rb
|
219
223
|
- spec/lib/roqua/core_api/dossiers_spec.rb
|
220
224
|
- spec/lib/roqua/core_api/models/active_virtus_spec.rb
|
225
|
+
- spec/lib/roqua/core_api/models/dossier_spec.rb
|
221
226
|
- spec/lib/roqua/core_api/models/person_spec.rb
|
222
227
|
- spec/lib/roqua/core_api/send_email_to_spec.rb
|
223
228
|
- spec/lib/roqua/core_api/send_invite_email_spec.rb
|
224
229
|
- spec/lib/roqua/core_api/sessions/auth_session_spec.rb
|
225
230
|
- spec/lib/roqua/core_api/sessions/basic_auth_session_spec.rb
|
226
231
|
- spec/lib/roqua/core_api/sessions/oauth_session_spec.rb
|
232
|
+
- spec/lib/roqua/core_api/update_dossier_spec.rb
|
227
233
|
- spec/spec_helper.rb
|
228
234
|
homepage: https://github.com/roqua/core/blob/master/core_api/README.markdown
|
229
235
|
licenses:
|
@@ -245,7 +251,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
251
|
version: '0'
|
246
252
|
requirements: []
|
247
253
|
rubyforge_project:
|
248
|
-
rubygems_version: 2.
|
254
|
+
rubygems_version: 2.2.2
|
249
255
|
signing_key:
|
250
256
|
specification_version: 4
|
251
257
|
summary: API wrapper gem around Core's API
|
@@ -253,16 +259,19 @@ test_files:
|
|
253
259
|
- spec/core_api_spec.rb
|
254
260
|
- spec/fabricators/auth_session_fabricator.rb
|
255
261
|
- spec/fabricators/basic_auth_session_fabricator.rb
|
262
|
+
- spec/fabricators/dossier_fabricator.rb
|
256
263
|
- spec/fabricators/oauth_session_fabricator.rb
|
257
264
|
- spec/lib/roqua/core_api/create_dossier_group_spec.rb
|
258
265
|
- spec/lib/roqua/core_api/create_dossier_spec.rb
|
259
266
|
- spec/lib/roqua/core_api/dossiers_spec.rb
|
260
267
|
- spec/lib/roqua/core_api/models/active_virtus_spec.rb
|
268
|
+
- spec/lib/roqua/core_api/models/dossier_spec.rb
|
261
269
|
- spec/lib/roqua/core_api/models/person_spec.rb
|
262
270
|
- spec/lib/roqua/core_api/send_email_to_spec.rb
|
263
271
|
- spec/lib/roqua/core_api/send_invite_email_spec.rb
|
264
272
|
- spec/lib/roqua/core_api/sessions/auth_session_spec.rb
|
265
273
|
- spec/lib/roqua/core_api/sessions/basic_auth_session_spec.rb
|
266
274
|
- spec/lib/roqua/core_api/sessions/oauth_session_spec.rb
|
275
|
+
- spec/lib/roqua/core_api/update_dossier_spec.rb
|
267
276
|
- spec/spec_helper.rb
|
268
277
|
has_rdoc:
|