roqua-rom-api 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +5 -0
- data/lib/roqua/rom_api.rb +2 -0
- data/lib/roqua/rom_api/get_non_response.rb +27 -0
- data/lib/roqua/rom_api/get_questionnaire.rb +2 -1
- data/lib/roqua/rom_api/list_non_responses.rb +25 -0
- data/lib/roqua/rom_api/models.rb +1 -0
- data/lib/roqua/rom_api/models/non_response.rb +33 -0
- data/lib/roqua/rom_api/models/questionnaire.rb +1 -0
- data/lib/roqua/rom_api/models/response.rb +2 -0
- data/lib/roqua/rom_api/version.rb +1 -1
- data/spec/lib/roqua/rom_api/get_non_response_spec.rb +29 -0
- data/spec/lib/roqua/rom_api/list_non_responses_spec.rb +29 -0
- data/spec/lib/roqua/rom_api/models/response_spec.rb +6 -0
- metadata +10 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1232ec18176d8cb41e579dadce78775014e70034
|
4
|
+
data.tar.gz: 94bd0b445ebc2ea4cd317312ca3e2c2c410753fe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d37f46dface65bab1ce4a1607dda74d34285b48187f8d5982a5df0702355c8bd9cf03dfd86582fdce61b8b7a79d66af5d1b31a0ca0b82f4c9a5a9a8c36d5c220
|
7
|
+
data.tar.gz: a3dbaf436487a0951aa6dd1ea0bed1b145142f7f05db105ade285950bc4b709857b95b1509fbb935e9c39e72628726256808ef7e87062813d701eddf61291704
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -120,6 +120,11 @@ To store external data on an existing pending response:
|
|
120
120
|
id: 230, # response id,
|
121
121
|
answer_data: {some: 'aswer_data'}
|
122
122
|
|
123
|
+
## [NonResponses](http://docs.roqua.net/developer/rom/dossier/non_responses/)
|
124
|
+
|
125
|
+
* [List](Roqua/RomApi/ListNonResponses.html)
|
126
|
+
* [Get](Roqua/RomApi/GetNonResponse.html)
|
127
|
+
|
123
128
|
## [Protocols](http://docs.roqua.net/developer/rom/global/protocols/)
|
124
129
|
|
125
130
|
### List
|
data/lib/roqua/rom_api.rb
CHANGED
@@ -21,6 +21,8 @@ require 'roqua/rom_api/get_protocol'
|
|
21
21
|
require 'roqua/rom_api/get_measurement'
|
22
22
|
require 'roqua/rom_api/get_respondent'
|
23
23
|
require 'roqua/rom_api/list_respondents'
|
24
|
+
require 'roqua/rom_api/list_non_responses'
|
25
|
+
require 'roqua/rom_api/get_non_response'
|
24
26
|
|
25
27
|
module Roqua
|
26
28
|
module RomApi
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Roqua
|
2
|
+
module RomApi
|
3
|
+
# @!method run!(dossier_id: 'some_epd_id', non_response_id: 1)
|
4
|
+
# Retrieve specified non_response from specified dossier.
|
5
|
+
# @!scope class
|
6
|
+
# @return [Models::NonResponse]
|
7
|
+
# @param dossier_id: [String] epd_id of dossier (required)
|
8
|
+
# @param non_response_id: [Integer] (required)
|
9
|
+
# @see http://docs.roqua.net/developer/rom/dossier/non_responses#show json api
|
10
|
+
class GetNonResponse < Endpoint
|
11
|
+
string :dossier_id
|
12
|
+
integer :non_response_id
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def execute
|
17
|
+
validate_response_for do
|
18
|
+
basic_auth_session.get "/dossiers/#{dossier_id}/non_responses/#{non_response_id}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def response_to_result(response)
|
23
|
+
Models::NonResponse.new(response)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -3,10 +3,11 @@ module Roqua
|
|
3
3
|
# @api private
|
4
4
|
class GetQuestionnaire < Endpoint
|
5
5
|
string :questionnaire_key
|
6
|
+
boolean :use_legacy_keys, default: true
|
6
7
|
|
7
8
|
def execute
|
8
9
|
validate_response_for do
|
9
|
-
basic_auth_session.get "/questionnaires/#{questionnaire_key}"
|
10
|
+
basic_auth_session.get "/questionnaires/#{questionnaire_key}", use_legacy_keys: use_legacy_keys
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Roqua
|
2
|
+
module RomApi
|
3
|
+
# @!method run!(dossier_id: 'some_epd_id')
|
4
|
+
# Retrieve all non_responses belonging to specified dossier.
|
5
|
+
# @!scope class
|
6
|
+
# @return [Array<Models::NonResponse>]
|
7
|
+
# @param dossier_id: [String] epd_id of dossier (required)
|
8
|
+
# @see http://docs.roqua.net/developer/rom/dossier/non_responses#index json api
|
9
|
+
class ListNonResponses < Endpoint
|
10
|
+
string :dossier_id
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def execute
|
15
|
+
validate_response_for do
|
16
|
+
basic_auth_session.get "/dossiers/#{dossier_id}/non_responses"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def response_to_result(response)
|
21
|
+
response.map { |r| Models::NonResponse.new(r) }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/roqua/rom_api/models.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'virtus'
|
2
|
+
|
3
|
+
module Roqua
|
4
|
+
module RomApi
|
5
|
+
module Models
|
6
|
+
class NonResponse
|
7
|
+
include Virtus.model
|
8
|
+
|
9
|
+
# @!attribute [r] id
|
10
|
+
# @return [Integer]
|
11
|
+
attribute :id, Integer
|
12
|
+
# @!attribute non_response_at
|
13
|
+
# @return [DateTime]
|
14
|
+
attribute :non_response_at, DateTime
|
15
|
+
# @!attribute response_ids
|
16
|
+
# @return [Array<Integer>]
|
17
|
+
attribute :response_ids, Array[Integer]
|
18
|
+
# @!attribute reason_group
|
19
|
+
# @return [String]
|
20
|
+
attribute :reason_group, String
|
21
|
+
# @!attribute reason_option
|
22
|
+
# @return [String]
|
23
|
+
attribute :reason_option, String
|
24
|
+
# @!attribute reason_code
|
25
|
+
# @return [String]
|
26
|
+
attribute :reason_code, String
|
27
|
+
# @!attribute reason_other
|
28
|
+
# @return [String]
|
29
|
+
attribute :reason_other, String
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -10,6 +10,8 @@ module Roqua
|
|
10
10
|
attribute :respondent_id, Integer
|
11
11
|
attribute :questionnaire_name, String
|
12
12
|
attribute :questionnaire_key, String
|
13
|
+
attribute :measurement_id, Integer
|
14
|
+
attribute :non_response_id, Integer
|
13
15
|
attribute :open_from, DateTime
|
14
16
|
attribute :open_till, DateTime
|
15
17
|
attribute :started_at, DateTime
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe GetNonResponse do
|
4
|
+
let(:options) { {dossier_id: 'some_epd_id', non_response_id: 1} }
|
5
|
+
let(:api_path) { "/dossiers/#{options[:dossier_id]}/non_responses/1" }
|
6
|
+
let(:response) { httparty_response \
|
7
|
+
'id' => 1,
|
8
|
+
'non_response_at' => "2017-02-08T11:02:41+01:00",
|
9
|
+
'response_ids' => [1, 5, 9],
|
10
|
+
'reason_group' => "Patiënt is wel benaderd voor de ROM meting, maar:",
|
11
|
+
'reason_option' => "Patiënt retourneert meetinstrument niet.",
|
12
|
+
'reason_code' => '04',
|
13
|
+
'reason_other' => 'ik type, dus ik ben' }
|
14
|
+
let(:session) { Fabricate :basic_auth_session }
|
15
|
+
before { allow(BasicAuthSession).to receive(:new).and_return session }
|
16
|
+
|
17
|
+
it 'returns non_response objects' do
|
18
|
+
allow(session).to receive(:get).with(api_path).and_return response
|
19
|
+
non_response = GetNonResponse.run(options).result
|
20
|
+
|
21
|
+
expect(non_response.id).to eq 1
|
22
|
+
expect(non_response.non_response_at).to eq Time.parse("2017-02-08T11:02:41+01:00")
|
23
|
+
expect(non_response.response_ids).to eq [1, 5, 9]
|
24
|
+
expect(non_response.reason_group).to eq "Patiënt is wel benaderd voor de ROM meting, maar:"
|
25
|
+
expect(non_response.reason_option).to eq "Patiënt retourneert meetinstrument niet."
|
26
|
+
expect(non_response.reason_code).to eq '04'
|
27
|
+
expect(non_response.reason_other).to eq 'ik type, dus ik ben'
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ListNonResponses do
|
4
|
+
let(:options) { {dossier_id: 'some_epd_id'} }
|
5
|
+
let(:api_path) { "/dossiers/#{options[:dossier_id]}/non_responses" }
|
6
|
+
let(:response) { httparty_response [{
|
7
|
+
'id' => 1,
|
8
|
+
'non_response_at' => "2017-02-08T11:02:41+01:00",
|
9
|
+
'response_ids' => [1, 5, 9],
|
10
|
+
'reason_group' => "Patiënt is wel benaderd voor de ROM meting, maar:",
|
11
|
+
'reason_option' => "Patiënt retourneert meetinstrument niet.",
|
12
|
+
'reason_code' => '04',
|
13
|
+
'reason_other' => 'ik type, dus ik ben'}] }
|
14
|
+
let(:session) { Fabricate :basic_auth_session }
|
15
|
+
before { allow(BasicAuthSession).to receive(:new).and_return session }
|
16
|
+
|
17
|
+
it 'returns non_response objects' do
|
18
|
+
allow(session).to receive(:get).with(api_path).and_return response
|
19
|
+
non_responses = ListNonResponses.run(options).result
|
20
|
+
|
21
|
+
expect(non_responses.first.id).to eq 1
|
22
|
+
expect(non_responses.first.non_response_at).to eq Time.parse("2017-02-08T11:02:41+01:00")
|
23
|
+
expect(non_responses.first.response_ids).to eq [1, 5, 9]
|
24
|
+
expect(non_responses.first.reason_group).to eq "Patiënt is wel benaderd voor de ROM meting, maar:"
|
25
|
+
expect(non_responses.first.reason_option).to eq "Patiënt retourneert meetinstrument niet."
|
26
|
+
expect(non_responses.first.reason_code).to eq '04'
|
27
|
+
expect(non_responses.first.reason_other).to eq 'ik type, dus ik ben'
|
28
|
+
end
|
29
|
+
end
|
@@ -4,6 +4,9 @@ describe Response do
|
|
4
4
|
let(:response_body) do
|
5
5
|
{'questionnaire_name' => 'RS-12',
|
6
6
|
'questionnaire_key' => 'rs12',
|
7
|
+
'respondent_id' => 2,
|
8
|
+
'measurement_id' => 3,
|
9
|
+
'non_response_id' => 4,
|
7
10
|
'open_from' => '2014-02-19T14:15:49+01:00',
|
8
11
|
'open_till' => '2014-02-20T14:15:49+01:00',
|
9
12
|
'started_at' => '2014-02-19T15:15:49+01:00',
|
@@ -19,6 +22,9 @@ describe Response do
|
|
19
22
|
response = Response.new response_body
|
20
23
|
expect(response.questionnaire_name).to eq 'RS-12'
|
21
24
|
expect(response.questionnaire_key).to eq 'rs12'
|
25
|
+
expect(response.respondent_id).to eq 2
|
26
|
+
expect(response.measurement_id).to eq 3
|
27
|
+
expect(response.non_response_id).to eq 4
|
22
28
|
expect(response.open_from).to eq DateTime.parse('2014-02-19T14:15:49+01:00')
|
23
29
|
expect(response.open_till).to eq DateTime.parse('2014-02-20T14:15:49+01:00')
|
24
30
|
expect(response.started_at).to eq DateTime.parse('2014-02-19T15:15:49+01:00')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roqua-rom-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Esposito
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2017-02-
|
15
|
+
date: 2017-02-12 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: httparty
|
@@ -165,10 +165,12 @@ files:
|
|
165
165
|
- lib/roqua/rom_api/create_response.rb
|
166
166
|
- lib/roqua/rom_api/endpoint.rb
|
167
167
|
- lib/roqua/rom_api/get_measurement.rb
|
168
|
+
- lib/roqua/rom_api/get_non_response.rb
|
168
169
|
- lib/roqua/rom_api/get_protocol.rb
|
169
170
|
- lib/roqua/rom_api/get_questionnaire.rb
|
170
171
|
- lib/roqua/rom_api/get_respondent.rb
|
171
172
|
- lib/roqua/rom_api/list_dossier_stats.rb
|
173
|
+
- lib/roqua/rom_api/list_non_responses.rb
|
172
174
|
- lib/roqua/rom_api/list_protocol_subscriptions.rb
|
173
175
|
- lib/roqua/rom_api/list_protocols.rb
|
174
176
|
- lib/roqua/rom_api/list_respondents.rb
|
@@ -178,6 +180,7 @@ files:
|
|
178
180
|
- lib/roqua/rom_api/models/fill_out_request.rb
|
179
181
|
- lib/roqua/rom_api/models/measurement.rb
|
180
182
|
- lib/roqua/rom_api/models/measurement_sequence.rb
|
183
|
+
- lib/roqua/rom_api/models/non_response.rb
|
181
184
|
- lib/roqua/rom_api/models/protocol.rb
|
182
185
|
- lib/roqua/rom_api/models/protocol_subscription.rb
|
183
186
|
- lib/roqua/rom_api/models/questionnaire.rb
|
@@ -199,9 +202,11 @@ files:
|
|
199
202
|
- spec/lib/roqua/rom_api/create_response_spec.rb
|
200
203
|
- spec/lib/roqua/rom_api/endpoint_spec.rb
|
201
204
|
- spec/lib/roqua/rom_api/get_measurement_spec.rb
|
205
|
+
- spec/lib/roqua/rom_api/get_non_response_spec.rb
|
202
206
|
- spec/lib/roqua/rom_api/get_protocol_spec.rb
|
203
207
|
- spec/lib/roqua/rom_api/get_respondent_spec.rb
|
204
208
|
- spec/lib/roqua/rom_api/list_dossier_stats_spec.rb
|
209
|
+
- spec/lib/roqua/rom_api/list_non_responses_spec.rb
|
205
210
|
- spec/lib/roqua/rom_api/list_protocol_subscriptions_spec.rb
|
206
211
|
- spec/lib/roqua/rom_api/list_protocols_spec.rb
|
207
212
|
- spec/lib/roqua/rom_api/list_respondents_spec.rb
|
@@ -242,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
247
|
version: '0'
|
243
248
|
requirements: []
|
244
249
|
rubyforge_project:
|
245
|
-
rubygems_version: 2.
|
250
|
+
rubygems_version: 2.5.1
|
246
251
|
signing_key:
|
247
252
|
specification_version: 4
|
248
253
|
summary: API wrapper gem around RoQua's ROM API
|
@@ -253,9 +258,11 @@ test_files:
|
|
253
258
|
- spec/lib/roqua/rom_api/create_response_spec.rb
|
254
259
|
- spec/lib/roqua/rom_api/endpoint_spec.rb
|
255
260
|
- spec/lib/roqua/rom_api/get_measurement_spec.rb
|
261
|
+
- spec/lib/roqua/rom_api/get_non_response_spec.rb
|
256
262
|
- spec/lib/roqua/rom_api/get_protocol_spec.rb
|
257
263
|
- spec/lib/roqua/rom_api/get_respondent_spec.rb
|
258
264
|
- spec/lib/roqua/rom_api/list_dossier_stats_spec.rb
|
265
|
+
- spec/lib/roqua/rom_api/list_non_responses_spec.rb
|
259
266
|
- spec/lib/roqua/rom_api/list_protocol_subscriptions_spec.rb
|
260
267
|
- spec/lib/roqua/rom_api/list_protocols_spec.rb
|
261
268
|
- spec/lib/roqua/rom_api/list_respondents_spec.rb
|