roqua-core-api 0.0.37 → 0.0.38
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|