roqua-rom-api 0.2.1 → 0.2.2
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 +9 -0
- data/README.md +1 -1
- data/config/locales/nl.yml +9 -1
- data/lib/roqua/rom_api/endpoint.rb +5 -1
- data/lib/roqua/rom_api/get_questionnaire.rb +18 -0
- data/lib/roqua/rom_api/list_responses.rb +13 -7
- data/lib/roqua/rom_api/models/questionnaire.rb +21 -0
- data/lib/roqua/rom_api/models/response.rb +2 -0
- data/lib/roqua/rom_api/models.rb +1 -0
- data/lib/roqua/rom_api/version.rb +1 -1
- data/lib/roqua/rom_api.rb +1 -0
- data/spec/lib/roqua/rom_api/list_responses_spec.rb +8 -7
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1147f731426ba8d48888a09646f3860a6a8021e8
|
4
|
+
data.tar.gz: fedd0999ef1093c511d1ca9ac73d4f9c9cb7f727
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09739ac4db79ec5d8df98bfb6c05257ee75d88cd012bbf713deb1ae062cab204ae335c43f5f357fb720aaf65823a66eae7200199b4d71138199cf048be9f9678
|
7
|
+
data.tar.gz: b93858850435d5b864b880bb1db32914fa8b7b2ea7da118ff70d04aa3b148b986bddc85f7f0d07c89ade78be9cb15c69d8617eaac65b2789b9ac37a2e9f5cb99
|
data/ChangeLog.md
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
### HEAD
|
2
2
|
|
3
|
+
* Retrieve responses by response_ids.
|
4
|
+
|
5
|
+
### 0.2.2 / 2014-12-15
|
6
|
+
|
7
|
+
* Improve validation errors for protocol_subscriptions
|
8
|
+
* Add API endpoint for retrieving questionnaires
|
9
|
+
* Pass textvar and flag definitions of questionnaires
|
10
|
+
* Pass textvars and flags of responses
|
11
|
+
|
3
12
|
### 0.2.1 / 2014-11-17
|
4
13
|
|
5
14
|
* Add progress url to fill_out session api endpoint
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Make sure the following environment variables are defined:
|
4
4
|
|
5
|
-
ENV['
|
5
|
+
ENV['ROM_SITE'] # URI of the RoQua application whose API you are targeting
|
6
6
|
ENV['ROM_BASICAUTH_ID'] # username used for HTTP basic authentication on the RoQua API
|
7
7
|
ENV['ROM_BASICAUTH_SECRET'] # password used for HTTP basic authentication on the RoQua API
|
8
8
|
|
data/config/locales/nl.yml
CHANGED
@@ -6,11 +6,19 @@ nl:
|
|
6
6
|
attributes:
|
7
7
|
roqua/rom_api/start_protocol_subscription:
|
8
8
|
attributes:
|
9
|
+
start_at:
|
10
|
+
must_not_be_in_the_past: mag niet in het verleden liggen.
|
9
11
|
base:
|
12
|
+
protocol_must_be_automatic: Het protocol is niet geautomatiseerd.
|
13
|
+
protocol_scheduler_options_invalid: Het protocol is verkeerd ingesteld.
|
14
|
+
patient_id_taken: Dit dossier is reeds geabonneerd op dit protocol.
|
10
15
|
flag_does_not_exist: Een van de opgegeven vlaggen bestaat niet.
|
11
16
|
flag_value_invalid: Een van de opgegeven vlaggen bevat een waarde anders dan true, false of nil.
|
12
|
-
|
17
|
+
text_message_template_blank: Er is geen SMS-template beschikbaar voor het protocol.
|
18
|
+
invitation_template_blank: Er is geen Email-template beschikbaar voor het protocol.
|
13
19
|
attributes:
|
14
20
|
roqua/rom_api/start_fill_out_session:
|
15
21
|
questionnaire_keys: Vragenlijsten
|
16
22
|
return_to: Return url
|
23
|
+
roqua/rom_api/start_protocol_subscription:
|
24
|
+
start_at: Startmoment
|
@@ -9,7 +9,11 @@ module Roqua
|
|
9
9
|
if response.parsed_response.is_a?(Hash) && response['errors'].present?
|
10
10
|
response['errors'].each do |attribute, attribute_errors|
|
11
11
|
attribute_errors.each do |error|
|
12
|
-
|
12
|
+
if respond_to?(attribute.to_sym) || attribute.to_sym == :base
|
13
|
+
errors.add attribute.to_sym, error.to_sym
|
14
|
+
else
|
15
|
+
errors.add :base, [attribute, error].join('_').to_sym
|
16
|
+
end
|
13
17
|
end
|
14
18
|
end
|
15
19
|
elsif response.code == 422
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Roqua
|
2
|
+
module RomApi
|
3
|
+
# @api private
|
4
|
+
class GetQuestionnaire < Endpoint
|
5
|
+
string :questionnaire_key
|
6
|
+
|
7
|
+
def execute
|
8
|
+
validate_response_for do
|
9
|
+
RomApi.basic_auth_session.get "/questionnaires/#{questionnaire_key}"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def response_to_result(response)
|
14
|
+
Models::Questionnaire.new(response)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -3,6 +3,7 @@ module Roqua
|
|
3
3
|
# @api private
|
4
4
|
class ListResponses < Endpoint
|
5
5
|
string :dossier_id
|
6
|
+
array :response_ids, default: [] { string }
|
6
7
|
array :questionnaire_keys, default: [] { string }
|
7
8
|
time :completed_before, default: nil
|
8
9
|
time :completed_after, default: nil
|
@@ -12,16 +13,21 @@ module Roqua
|
|
12
13
|
|
13
14
|
def execute
|
14
15
|
validate_response_for do
|
15
|
-
RomApi.basic_auth_session.get "/dossiers/#{dossier_id}/responses",
|
16
|
-
respondent_type: respondent_type,
|
17
|
-
status: status,
|
18
|
-
questionnaire_keys: questionnaire_keys,
|
19
|
-
completed_after: completed_after,
|
20
|
-
completed_before: completed_before,
|
21
|
-
protocol_subscription_id: protocol_subscription_id
|
16
|
+
RomApi.basic_auth_session.get "/dossiers/#{dossier_id}/responses", filter_params
|
22
17
|
end
|
23
18
|
end
|
24
19
|
|
20
|
+
def filter_params
|
21
|
+
{response_ids: response_ids,
|
22
|
+
respondent_type: respondent_type,
|
23
|
+
status: status,
|
24
|
+
questionnaire_keys: questionnaire_keys,
|
25
|
+
completed_after: completed_after,
|
26
|
+
completed_before: completed_before,
|
27
|
+
protocol_subscription_id: protocol_subscription_id
|
28
|
+
}.keep_if { |_k, v| v.present? }
|
29
|
+
end
|
30
|
+
|
25
31
|
def response_to_result(response)
|
26
32
|
response.map { |r| Models::Response.new(r) }
|
27
33
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'virtus'
|
2
|
+
|
3
|
+
module Roqua
|
4
|
+
module RomApi
|
5
|
+
module Models
|
6
|
+
class Questionnaire
|
7
|
+
include Virtus.model
|
8
|
+
|
9
|
+
attribute :id, Integer
|
10
|
+
attribute :name, String
|
11
|
+
attribute :key, String
|
12
|
+
attribute :description, String
|
13
|
+
attribute :short_description, String
|
14
|
+
attribute :questions, Hash
|
15
|
+
attribute :scores, Hash
|
16
|
+
attribute :textvars, Hash
|
17
|
+
attribute :flags, Hash
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/roqua/rom_api/models.rb
CHANGED
data/lib/roqua/rom_api.rb
CHANGED
@@ -13,6 +13,7 @@ require 'roqua/rom_api/create_fill_out_request'
|
|
13
13
|
require 'roqua/rom_api/start_protocol_subscription'
|
14
14
|
require 'roqua/rom_api/stop_protocol_subscription'
|
15
15
|
require 'roqua/rom_api/report_calculations'
|
16
|
+
require 'roqua/rom_api/get_questionnaire'
|
16
17
|
|
17
18
|
module Roqua
|
18
19
|
module RomApi
|
@@ -25,14 +25,15 @@ describe ListResponses do
|
|
25
25
|
protocol_subscription_id: 'protocol_subscription_id').result
|
26
26
|
end
|
27
27
|
|
28
|
+
it 'can get responses by id' do
|
29
|
+
expect(session).to receive(:get).with(api_path, response_ids: ['1', '5', '7'])
|
30
|
+
.and_return response
|
31
|
+
ListResponses.run!(dossier_id: options[:dossier_id],
|
32
|
+
response_ids: ['1', '5', '7'])
|
33
|
+
end
|
34
|
+
|
28
35
|
it 'returns an array of response objects' do
|
29
|
-
allow(session).to receive(:get).with(api_path,
|
30
|
-
respondent_type: nil,
|
31
|
-
status: nil,
|
32
|
-
questionnaire_keys: [],
|
33
|
-
completed_after: nil,
|
34
|
-
completed_before: nil,
|
35
|
-
protocol_subscription_id: nil)
|
36
|
+
allow(session).to receive(:get).with(api_path, {})
|
36
37
|
.and_return response
|
37
38
|
responses = ListResponses.run(options).result
|
38
39
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roqua-rom-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Samuel Esposito
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -145,12 +145,14 @@ files:
|
|
145
145
|
- lib/roqua/rom_api/create_measurement_sequence.rb
|
146
146
|
- lib/roqua/rom_api/create_response.rb
|
147
147
|
- lib/roqua/rom_api/endpoint.rb
|
148
|
+
- lib/roqua/rom_api/get_questionnaire.rb
|
148
149
|
- lib/roqua/rom_api/list_protocol_subscriptions.rb
|
149
150
|
- lib/roqua/rom_api/list_responses.rb
|
150
151
|
- lib/roqua/rom_api/models.rb
|
151
152
|
- lib/roqua/rom_api/models/fill_out_request.rb
|
152
153
|
- lib/roqua/rom_api/models/measurement_sequence.rb
|
153
154
|
- lib/roqua/rom_api/models/protocol_subscription.rb
|
155
|
+
- lib/roqua/rom_api/models/questionnaire.rb
|
154
156
|
- lib/roqua/rom_api/models/response.rb
|
155
157
|
- lib/roqua/rom_api/report_calculations.rb
|
156
158
|
- lib/roqua/rom_api/sessions.rb
|
@@ -200,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
202
|
version: '0'
|
201
203
|
requirements: []
|
202
204
|
rubyforge_project:
|
203
|
-
rubygems_version: 2.
|
205
|
+
rubygems_version: 2.3.0
|
204
206
|
signing_key:
|
205
207
|
specification_version: 4
|
206
208
|
summary: API wrapper gem around RoQua's ROM API
|