roqua-rom-api 2.2.0 → 2.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 1232ec18176d8cb41e579dadce78775014e70034
4
- data.tar.gz: 94bd0b445ebc2ea4cd317312ca3e2c2c410753fe
2
+ SHA256:
3
+ metadata.gz: f93240e16e4d8389c9b002a0093974f5eb830c8b7b52ae38751d92dc90cb9295
4
+ data.tar.gz: e4dea8ee1a71809ad2e4dcf70663ac2ec5c912aff199a16a8f8fc09b28f48389
5
5
  SHA512:
6
- metadata.gz: d37f46dface65bab1ce4a1607dda74d34285b48187f8d5982a5df0702355c8bd9cf03dfd86582fdce61b8b7a79d66af5d1b31a0ca0b82f4c9a5a9a8c36d5c220
7
- data.tar.gz: a3dbaf436487a0951aa6dd1ea0bed1b145142f7f05db105ade285950bc4b709857b95b1509fbb935e9c39e72628726256808ef7e87062813d701eddf61291704
6
+ metadata.gz: f7a101b1214e3b626007dcc9a49c1531deb3fa986d83b82f750f208230de88fe7619724667f7851676e74714040a5ecd402bafe4bec4ecd3c9af4d8cfd9a658d
7
+ data.tar.gz: 877e509d76bbd5de5f8b538ffdb5da70f5b5b992549f1cf6e43db674af12df2c532b8868283c1dae1a8cbb371dc85c052c805b98e7a668b0cdce337be4738114
@@ -1,5 +1,10 @@
1
1
  ### HEAD
2
2
 
3
+ ### 2.2.1 / 2018-06-06
4
+
5
+ * Add key attribute to Protocol model
6
+ * Allow protocol_id as parameter for StartProtocolSubscription
7
+
3
8
  ### 2.2.0 / 2017-02-12
4
9
 
5
10
  * Added ListNonResponses
data/Gemfile CHANGED
@@ -3,8 +3,8 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  group :test do
6
+ gem 'fuubar', '~> 2.0.0'
6
7
  gem 'guard-bundler'
7
8
  gem 'guard-rspec', '~> 4.3'
8
9
  gem 'rb-readline', '~> 0.5.1'
9
- gem 'fuubar', '~> 2.0.0'
10
10
  end
@@ -1,10 +1,15 @@
1
1
  module Roqua
2
2
  module RomApi
3
- # @api private
3
+ # @example To create a fill out request run:
4
+ # Roqua::RomApi::CancelFillOutRequest.run! \
5
+ # dossier_id: dossier_id,
6
+ # fill_out_request_id: for_id
4
7
  class CancelFillOutRequest < Endpoint
5
8
  string :dossier_id
6
9
  string :fill_out_request_id
7
10
 
11
+ private
12
+
8
13
  def execute
9
14
  validate_response_for do
10
15
  basic_auth_session.delete("/dossiers/#{dossier_id}/fill_out_requests/#{fill_out_request_id}")
@@ -1,6 +1,12 @@
1
1
  module Roqua
2
2
  module RomApi
3
- # @api private
3
+ # @example To create a fill out request run:
4
+ # Roqua::RomApi::CreateFillOutRequest.run! \
5
+ # dossier_id: dossier_id,
6
+ # questionnaire_keys: ['key1', 'key2'],
7
+ # callback_url: notify_callback_path(token: 'secret')
8
+ #
9
+ # @see http://docs.roqua.net/developer/rom/dossier/fill_out_requests/ for more info on how callbacks work.
4
10
  class CreateFillOutRequest < Endpoint
5
11
  string :dossier_id
6
12
  integer :measurement_sequence_id, default: nil
@@ -8,11 +14,13 @@ module Roqua
8
14
  string :respondent_type, default: nil
9
15
  string :callback_url, default: nil
10
16
  array :reminders, default: []
11
- time :open_from, default: nil, allow_nil: true
12
- time :open_till, default: nil, allow_nil: true
17
+ time :open_from, default: nil, allow_nil: true
18
+ time :open_till, default: nil, allow_nil: true
13
19
 
14
20
  validates :dossier_id, presence: {allow_blank: false}
15
21
 
22
+ private
23
+
16
24
  def execute
17
25
  validate_response_for do
18
26
  fill_out_request = {
@@ -6,11 +6,26 @@ module Roqua
6
6
  class Protocol
7
7
  include Virtus.model
8
8
 
9
+ # @!attribute [r] id
10
+ # @return [Integer]
9
11
  attribute :id, Integer
12
+ # @!attribute key
13
+ # @return [String]
14
+ attribute :key, String
15
+ # @!attribute name
16
+ # @return [String]
10
17
  attribute :name, String
18
+ # @!attribute description
19
+ # @return [String]
11
20
  attribute :description, String
21
+ # @!attribute active
22
+ # @return [Boolean]
12
23
  attribute :active, Boolean
24
+ # @!attribute automatic
25
+ # @return [Boolean]
13
26
  attribute :automatic, Boolean
27
+ # @!attribute measurements
28
+ # @return [Array<Measurement>]
14
29
  attribute :measurements, Array[Models::Measurement]
15
30
  end
16
31
  end
@@ -9,6 +9,7 @@ module Roqua
9
9
  attribute :id, Integer
10
10
  attribute :label, String
11
11
  attribute :respondent_type, String
12
+ attribute :sbg_code, String
12
13
  end
13
14
  end
14
15
  end
@@ -3,13 +3,14 @@ module Roqua
3
3
  # @api private
4
4
  class StartProtocolSubscription < Endpoint
5
5
  string :dossier_id
6
- string :protocol_key
6
+ string :protocol_key, default: nil # Pass the key
7
+ integer :protocol_id, default: nil # or the id
7
8
  time :start_at, default: nil
8
9
  hash :flags, default: {}, strip: false
9
10
  hash :textvars, default: {}, strip: false
10
11
 
11
12
  def execute
12
- options = {protocol_key: protocol_key, flags: flags, textvars: textvars}
13
+ options = {protocol_key: protocol_key, protocol_id: protocol_id, flags: flags, textvars: textvars}
13
14
  options[:start_at] = start_at.to_i if start_at
14
15
  validate_response_for do
15
16
  basic_auth_session.post("/dossiers/#{dossier_id}/protocol_subscriptions", options)
@@ -1,5 +1,5 @@
1
1
  module Roqua
2
2
  module RomApi
3
- VERSION = '2.2.0'
3
+ VERSION = '2.2.1'
4
4
  end
5
5
  end
@@ -2,6 +2,6 @@ Fabricator(:basic_auth_session, from: Roqua::RomApi::Sessions::BasicAuthSession)
2
2
  initialize_with do
3
3
  Roqua::RomApi::Sessions::BasicAuthSession.new username: 'some_username',
4
4
  password: 'some_password',
5
- rom_host: 'http://roqua.dev'
5
+ rom_host: 'http://test.rom.roqua.eu'
6
6
  end
7
7
  end
@@ -4,7 +4,7 @@ describe FillOutRequest do
4
4
  let(:response_body) do
5
5
  {'id' => 123,
6
6
  'respondent_type' => 'patient_version',
7
- 'completing_url' => 'http://roqua.dev/client/session/new?token=26aee9a4'
7
+ 'completing_url' => 'http://test.rom.roqua.eu/client/session/new?token=26aee9a4'
8
8
  }
9
9
  end
10
10
 
@@ -12,6 +12,6 @@ describe FillOutRequest do
12
12
  response = FillOutRequest.new response_body
13
13
  expect(response.id).to eq 123
14
14
  expect(response.respondent_type).to eq 'patient_version'
15
- expect(response.completing_url).to eq 'http://roqua.dev/client/session/new?token=26aee9a4'
15
+ expect(response.completing_url).to eq 'http://test.rom.roqua.eu/client/session/new?token=26aee9a4'
16
16
  end
17
17
  end
@@ -13,7 +13,7 @@ describe Response do
13
13
  'completer_type' => 'patient',
14
14
  'completed_at' => nil,
15
15
  'status' => 'open',
16
- 'completing_url' => 'http://roqua.dev/client/session/new?token=26aee9a4',
16
+ 'completing_url' => 'http://test.rom.roqua.eu/client/session/new?token=26aee9a4',
17
17
  'values' => {'some' => 'values'},
18
18
  'outcome' => {'some' => 'outcome'}}
19
19
  end
@@ -31,7 +31,7 @@ describe Response do
31
31
  expect(response.completed_at).to eq nil
32
32
  expect(response.completer_type).to eq 'patient'
33
33
  expect(response.status).to eq 'open'
34
- expect(response.completing_url).to eq 'http://roqua.dev/client/session/new?token=26aee9a4'
34
+ expect(response.completing_url).to eq 'http://test.rom.roqua.eu/client/session/new?token=26aee9a4'
35
35
  expect(response.values).to eq('some' => 'values')
36
36
  expect(response.outcome).to eq('some' => 'outcome')
37
37
  end
@@ -48,7 +48,7 @@ describe BasicAuthSession do
48
48
 
49
49
  describe '#get' do
50
50
  it 'performs a get request' do
51
- expect(HTTParty).to receive(:get).with('http://roqua.dev/api/v1/some_path.json',
51
+ expect(HTTParty).to receive(:get).with('http://test.rom.roqua.eu/api/v1/some_path.json',
52
52
  query: {some: 'param'},
53
53
  basic_auth: {username: 'some_username', password: 'some_password'})
54
54
  .and_return(response)
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe StartProtocolSubscription do
4
- let(:options) { {dossier_id: 'some_dossier_id', protocol_key: 'some_key',
4
+ let(:options) { {dossier_id: 'some_dossier_id', protocol_key: 'some_key', protocol_id: nil,
5
5
  flags: {some_flag: true}, textvars: {some_var: 'string'}} }
6
6
  let(:session) { Sessions::BasicAuthSession.new }
7
7
  let(:response) { httparty_response({}) }
@@ -13,6 +13,7 @@ describe StartProtocolSubscription do
13
13
  it 'does a post to the rom protocol_subscription api' do
14
14
  expect(session).to receive(:post).with("/dossiers/#{options[:dossier_id]}/protocol_subscriptions",
15
15
  protocol_key: options[:protocol_key],
16
+ protocol_id: options[:protocol_id],
16
17
  flags: {some_flag: true},
17
18
  textvars: {some_var: 'string'})
18
19
  StartProtocolSubscription.run!(options)
@@ -22,6 +23,7 @@ describe StartProtocolSubscription do
22
23
  start_at = Time.now
23
24
  expect(session).to receive(:post).with("/dossiers/#{options[:dossier_id]}/protocol_subscriptions",
24
25
  protocol_key: options[:protocol_key],
26
+ protocol_id: options[:protocol_id],
25
27
  start_at: start_at.to_i,
26
28
  flags: {some_flag: true},
27
29
  textvars: {some_var: 'string'})
@@ -6,6 +6,11 @@ include Roqua::RomApi
6
6
  include Roqua::RomApi::Sessions
7
7
  include Roqua::RomApi::Models
8
8
 
9
+ # It seems sometimes the Rails constant is defined and Rails.root is injected (which is nil at that moment) resulting
10
+ # in missing fabricators. Let's just set the path to the current directory to fix this. See:
11
+ # https://github.com/paulelliott/fabrication/blob/42db96f11cbf80d22bd9c87dbf6740894c2b2bdc/lib/fabrication/config.rb#L42
12
+ Fabrication::Config.path_prefix = ['.']
13
+
9
14
  Dir[File.join(File.expand_path(File.dirname(__FILE__)), 'support', '*.rb')].each {|f| require f}
10
15
 
11
16
  I18n.load_path << Dir[File.join(File.expand_path(File.dirname(__FILE__)), 'support', '*.yml')]
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.2.0
4
+ version: 2.2.1
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-12 00:00:00.000000000 Z
15
+ date: 2018-06-07 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: httparty
@@ -247,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  requirements: []
249
249
  rubyforge_project:
250
- rubygems_version: 2.5.1
250
+ rubygems_version: 2.7.6
251
251
  signing_key:
252
252
  specification_version: 4
253
253
  summary: API wrapper gem around RoQua's ROM API
@@ -283,4 +283,3 @@ test_files:
283
283
  - spec/spec_helper.rb
284
284
  - spec/support/httparty_helpers.rb
285
285
  - spec/support/test.yml
286
- has_rdoc: