roqua-rom-api 2.1.0 → 2.2.0
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/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
|