roqua-rom-api 0.0.3 → 0.0.4
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 +4 -0
- data/Gemfile.lock +7 -4
- data/README.md +1 -1
- data/lib/roqua/rom_api.rb +4 -2
- data/lib/roqua/rom_api/list_responses.rb +18 -0
- data/lib/roqua/rom_api/results.rb +1 -0
- data/lib/roqua/rom_api/results/response.rb +20 -0
- data/lib/roqua/rom_api/sessions.rb +2 -0
- data/lib/roqua/rom_api/sessions/basic_auth_session.rb +61 -0
- data/lib/roqua/rom_api/start_protocol_subscription.rb +4 -2
- data/lib/roqua/rom_api/version.rb +1 -1
- data/roqua_rom_api.gemspec +6 -4
- data/spec/fabricators/basic_auth_session_fabricator.rb +7 -0
- data/spec/lib/roqua/rom_api/list_responses_spec.rb +18 -0
- data/spec/lib/roqua/rom_api/results/response_spec.rb +24 -0
- data/spec/lib/roqua/rom_api/sessions/basic_auth_session_spec.rb +69 -0
- data/spec/lib/roqua/rom_api/start_protocol_subscription_spec.rb +11 -12
- data/spec/spec_helper.rb +3 -0
- metadata +44 -6
- data/lib/roqua/rom_api/base.rb +0 -50
- data/spec/lib/roqua/rom_api/base_spec.rb +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05a0d9ec612437981f82ec1c3b7236437c6aa58b
|
4
|
+
data.tar.gz: bc1bb0cac2a640d4038ba6a165a1ab38a6da3b40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5df8650874825cc203a28a51522b34079271d3b8f9e6624e928a3f04508661d6832093c71b3629a7c904a6aec34726d0f584af95919c46237e6712546e37c05
|
7
|
+
data.tar.gz: 8064fc956752998a5f42970b7b96553e9efb7c51de471e9e5a2a59438f7218fc83a1c0a46b8d29ce0642124944c77b33e644970620ab574339770dce63962b30
|
data/ChangeLog.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
roqua-rom-api (0.0.
|
4
|
+
roqua-rom-api (0.0.4)
|
5
5
|
active_interaction (~> 1.0.4)
|
6
6
|
httparty (~> 0.12.0)
|
7
7
|
|
@@ -10,10 +10,10 @@ GEM
|
|
10
10
|
specs:
|
11
11
|
active_interaction (1.0.4)
|
12
12
|
activemodel (>= 3, < 5)
|
13
|
-
activemodel (4.0.
|
14
|
-
activesupport (= 4.0.
|
13
|
+
activemodel (4.0.3)
|
14
|
+
activesupport (= 4.0.3)
|
15
15
|
builder (~> 3.1.0)
|
16
|
-
activesupport (4.0.
|
16
|
+
activesupport (4.0.3)
|
17
17
|
i18n (~> 0.6, >= 0.6.4)
|
18
18
|
minitest (~> 4.2)
|
19
19
|
multi_json (~> 1.3)
|
@@ -28,6 +28,7 @@ GEM
|
|
28
28
|
nio4r (>= 0.5.0)
|
29
29
|
coderay (1.1.0)
|
30
30
|
diff-lcs (1.2.5)
|
31
|
+
fabrication (2.9.6)
|
31
32
|
ffi (1.9.3)
|
32
33
|
formatador (0.2.4)
|
33
34
|
fuubar (1.3.2)
|
@@ -88,8 +89,10 @@ PLATFORMS
|
|
88
89
|
|
89
90
|
DEPENDENCIES
|
90
91
|
bundler (~> 1.0)
|
92
|
+
fabrication (~> 2.9.6)
|
91
93
|
fuubar (~> 1.3.2)
|
92
94
|
guard-rspec (~> 4.2.6)
|
93
95
|
rake (~> 10.1)
|
94
96
|
roqua-rom-api!
|
97
|
+
rspec (~> 2.14.1)
|
95
98
|
yard (~> 0.8)
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@ Make sure the following environment variables are defined:
|
|
6
6
|
ENV['ROQUA_ROM_KEY'] # username used for HTTP basic authentication on the RoQua API
|
7
7
|
ENV['ROQUA_ROM_SECRET'] # password used for HTTP basic authentication on the RoQua API
|
8
8
|
|
9
|
-
|
9
|
+
An HTTP basic auth username password combination can be generated in the RoQua admin interface integration tab
|
10
10
|
|
11
11
|
## Protocol Subscriptions
|
12
12
|
|
data/lib/roqua/rom_api.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
require 'roqua/rom_api/version'
|
2
2
|
require 'active_interaction'
|
3
|
-
require 'roqua/rom_api/
|
4
|
-
require 'roqua/rom_api/
|
3
|
+
require 'roqua/rom_api/sessions'
|
4
|
+
require 'roqua/rom_api/results'
|
5
|
+
require 'roqua/rom_api/start_protocol_subscription'
|
6
|
+
require 'roqua/rom_api/list_responses'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Roqua
|
2
|
+
module RomApi
|
3
|
+
# @api private
|
4
|
+
class ListResponses < ActiveInteraction::Base
|
5
|
+
include Sessions
|
6
|
+
include Results
|
7
|
+
string :dossier_id
|
8
|
+
|
9
|
+
def execute
|
10
|
+
session = BasicAuthSession.new
|
11
|
+
response = session.get "/dossiers/#{dossier_id}/responses"
|
12
|
+
JSON.parse(response.body)['responses'].map do |response_entry|
|
13
|
+
Response.new response_entry
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'roqua/rom_api/results/response'
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Roqua
|
2
|
+
module RomApi
|
3
|
+
module Results
|
4
|
+
class Response
|
5
|
+
attr_reader :response, :name, :open_from, :open_till, :completing_url, :completer_type, :completed_at, :status
|
6
|
+
|
7
|
+
def initialize(response)
|
8
|
+
@response = response
|
9
|
+
@name = response['name']
|
10
|
+
@open_from = response['open_from']
|
11
|
+
@open_till = response['open_till']
|
12
|
+
@completing_url = response['completing_url']
|
13
|
+
@completer_type = response['completer_type']
|
14
|
+
@status = response['status']
|
15
|
+
@completed_at = response['completed_at']
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
module Roqua
|
2
|
+
module RomApi
|
3
|
+
module Sessions
|
4
|
+
class BasicAuthSession
|
5
|
+
attr_reader :rom_host
|
6
|
+
attr_reader :username
|
7
|
+
attr_reader :password
|
8
|
+
|
9
|
+
def initialize(rom_host: ENV['ROQUA_ROM_HOST'],
|
10
|
+
username: ENV['ROQUA_ROM_KEY'],
|
11
|
+
password: ENV['ROQUA_ROM_SECRET'])
|
12
|
+
@rom_host = rom_host
|
13
|
+
@username = username
|
14
|
+
@password = password
|
15
|
+
end
|
16
|
+
|
17
|
+
def get(path, params = {})
|
18
|
+
perform_request_or_fail do
|
19
|
+
HTTParty.get(full_url_for(path), query: params, basic_auth: basic_auth)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def post(path, params = {})
|
24
|
+
perform_request_or_fail do
|
25
|
+
HTTParty.post(full_url_for(path), body: params, basic_auth: basic_auth)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def patch(path, params = {})
|
30
|
+
perform_request_or_fail do
|
31
|
+
HTTParty.patch(full_url_for(path), body: params, basic_auth: basic_auth)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def delete(path, params = {})
|
36
|
+
HTTParty.delete(full_url_for(path), query: params, basic_auth: basic_auth)
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
|
41
|
+
def perform_request_or_fail(&block)
|
42
|
+
response = yield
|
43
|
+
fail response.parsed_response unless (200..299).include? response.code
|
44
|
+
response
|
45
|
+
end
|
46
|
+
|
47
|
+
def full_url_for(path)
|
48
|
+
rom_host + api_base + path + '.json'
|
49
|
+
end
|
50
|
+
|
51
|
+
def api_base
|
52
|
+
'/api/v1'
|
53
|
+
end
|
54
|
+
|
55
|
+
def basic_auth
|
56
|
+
{username: username, password: password}
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -2,16 +2,18 @@ module Roqua
|
|
2
2
|
module RomApi
|
3
3
|
# @api private
|
4
4
|
class StartProtocolSubscription < ActiveInteraction::Base
|
5
|
+
include Sessions
|
5
6
|
string :dossier_id
|
6
7
|
string :protocol_key
|
7
8
|
time :start_at, default: nil
|
8
9
|
|
9
10
|
def execute
|
11
|
+
session = BasicAuthSession.new
|
10
12
|
options = {dossier_id: dossier_id,
|
11
13
|
protocol_key: protocol_key}
|
12
14
|
options[:start_at] = start_at.to_i if start_at
|
13
|
-
response =
|
14
|
-
fail response.parsed_response.inspect unless response.code
|
15
|
+
response = session.post '/protocol_subscriptions', options
|
16
|
+
fail response.parsed_response.inspect unless (200..299).include? response.code
|
15
17
|
response
|
16
18
|
end
|
17
19
|
end
|
data/roqua_rom_api.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |gem|
|
|
9
9
|
gem.license = "MIT"
|
10
10
|
gem.authors = ["Samuel Esposito"]
|
11
11
|
gem.email = "s.esposito@roqua.nl"
|
12
|
-
gem.homepage = "https://github.com/roqua/
|
12
|
+
gem.homepage = "https://github.com/roqua/roqua/blob/master/rom_api/README.md"
|
13
13
|
|
14
14
|
gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
|
15
15
|
gem.executables = gem.files.grep(%r{^bin/}).map { |f| File.basename(f) }
|
@@ -19,7 +19,9 @@ Gem::Specification.new do |gem|
|
|
19
19
|
gem.add_dependency 'httparty', '~> 0.12.0'
|
20
20
|
gem.add_dependency 'active_interaction', '~> 1.0.4'
|
21
21
|
|
22
|
-
gem.add_development_dependency 'bundler',
|
23
|
-
gem.add_development_dependency 'rake',
|
24
|
-
gem.add_development_dependency 'yard',
|
22
|
+
gem.add_development_dependency 'bundler', '~> 1.0'
|
23
|
+
gem.add_development_dependency 'rake', '~> 10.1'
|
24
|
+
gem.add_development_dependency 'yard', '~> 0.8'
|
25
|
+
gem.add_development_dependency 'rspec', '~> 2.14.1'
|
26
|
+
gem.add_development_dependency 'fabrication', '~> 2.9.6'
|
25
27
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ListResponses do
|
4
|
+
let(:options) { {dossier_id: '1'} }
|
5
|
+
let(:api_path) { "/dossiers/#{options[:dossier_id]}/responses" }
|
6
|
+
let(:response) { '{"responses":[{"name":"response_1"},{"name":"response_2"}]}' }
|
7
|
+
let(:session) { Fabricate :basic_auth_session }
|
8
|
+
before { allow(BasicAuthSession).to receive(:new).and_return session }
|
9
|
+
|
10
|
+
it 'returns an array of response objects' do
|
11
|
+
allow(session).to receive(:get).with(api_path).and_return double(body: response)
|
12
|
+
result = ListResponses.run(options).result
|
13
|
+
|
14
|
+
expect(result).to be_a(Array)
|
15
|
+
expect(result.first).to be_a(Response)
|
16
|
+
expect(result.first.name).to eq('response_1')
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Response do
|
4
|
+
let(:response_body) do
|
5
|
+
{'name' => 'RS-12',
|
6
|
+
'open_from' => '2014-02-19T14:15:49+01:00',
|
7
|
+
'open_till' => '2014-02-20T14:15:49+01:00',
|
8
|
+
'completer_type' => 'patient',
|
9
|
+
'completed_at' => nil,
|
10
|
+
'status' => 'open',
|
11
|
+
'completing_url' => 'http://roqua.dev/client/session/new?token=26aee9a4'}
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'assigns fields to attr_accessors' do
|
15
|
+
response = Response.new response_body
|
16
|
+
expect(response.name).to eq 'RS-12'
|
17
|
+
expect(response.open_from).to eq '2014-02-19T14:15:49+01:00'
|
18
|
+
expect(response.open_till).to eq '2014-02-20T14:15:49+01:00'
|
19
|
+
expect(response.completed_at).to eq nil
|
20
|
+
expect(response.completer_type).to eq 'patient'
|
21
|
+
expect(response.status).to eq 'open'
|
22
|
+
expect(response.completing_url).to eq 'http://roqua.dev/client/session/new?token=26aee9a4'
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
include Sessions
|
3
|
+
|
4
|
+
describe BasicAuthSession do
|
5
|
+
let(:session) { Fabricate :basic_auth_session }
|
6
|
+
let(:response) { double('response', code: 201, parsed_response: 'some_response') }
|
7
|
+
|
8
|
+
describe '#initialize' do
|
9
|
+
it 'sets the rom_host instance attribute' do
|
10
|
+
session = BasicAuthSession.new rom_host: 'some_rom_host'
|
11
|
+
expect(session.rom_host).to eq('some_rom_host')
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'defaults the rom_host to the ROQUA_ROM_HOST env variable' do
|
15
|
+
orginal_env_rom_host = ENV['ROQUA_ROM_HOST']
|
16
|
+
ENV['ROQUA_ROM_HOST'] = 'some_env_rom_host'
|
17
|
+
session = BasicAuthSession.new
|
18
|
+
ENV['ROQUA_ROM_HOST'] = orginal_env_rom_host
|
19
|
+
expect(session.rom_host).to eq('some_env_rom_host')
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'sets the username instance variable' do
|
23
|
+
session = BasicAuthSession.new username: 'some_username'
|
24
|
+
expect(session.username).to eq('some_username')
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'defaults the username to the ROQUA_ROM_KEY env variable' do
|
28
|
+
orginal_env_rom_key = ENV['ROQUA_ROM_KEY']
|
29
|
+
ENV['ROQUA_ROM_KEY'] = 'some_env_rom_key'
|
30
|
+
session = BasicAuthSession.new
|
31
|
+
ENV['ROQUA_ROM_KEY'] = orginal_env_rom_key
|
32
|
+
expect(session.username).to eq('some_env_rom_key')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'sets the password instance variable' do
|
36
|
+
session = BasicAuthSession.new password: 'some_password'
|
37
|
+
expect(session.password).to eq('some_password')
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'defaults the password to the ROQUA_ROM_SECRET env variable' do
|
41
|
+
orginal_env_rom_secret = ENV['ROQUA_ROM_SECRET']
|
42
|
+
ENV['ROQUA_ROM_SECRET'] = 'some_env_rom_secret'
|
43
|
+
session = BasicAuthSession.new
|
44
|
+
ENV['ROQUA_ROM_SECRET'] = orginal_env_rom_secret
|
45
|
+
expect(session.password).to eq('some_env_rom_secret')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe '#get' do
|
50
|
+
it 'performs a get request' do
|
51
|
+
expect(HTTParty).to receive(:get).with('http://roqua.dev/api/v1/some_path.json',
|
52
|
+
query: {some: 'param'},
|
53
|
+
basic_auth: {username: 'some_username', password: 'some_password'})
|
54
|
+
.and_return(response)
|
55
|
+
session.get '/some_path', some: 'param'
|
56
|
+
end
|
57
|
+
|
58
|
+
it 'throws an error if the reponse is not within the 200 range' do
|
59
|
+
allow(response).to receive(:code).and_return(500)
|
60
|
+
allow(HTTParty).to receive(:get).and_return(response)
|
61
|
+
expect { session.get '/some_path' }.to raise_error(RuntimeError, 'some_response')
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'returns the response' do
|
65
|
+
allow(HTTParty).to receive(:get).and_return(response)
|
66
|
+
expect(session.get '/some_path').to eq(response)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -1,29 +1,28 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe StartProtocolSubscription do
|
4
|
-
let(:options)
|
5
|
-
|
6
|
-
|
7
|
-
end
|
4
|
+
let(:options) { {dossier_id: 'some_dossier_id', protocol_key: 'some_key'} }
|
5
|
+
let(:session) { Sessions::BasicAuthSession.new }
|
6
|
+
before { allow(Sessions::BasicAuthSession).to receive(:new).and_return session }
|
8
7
|
|
9
8
|
it 'does a post to the rom protocol_subscription api' do
|
10
|
-
expect(
|
11
|
-
|
12
|
-
|
9
|
+
expect(session).to receive(:post).with('/protocol_subscriptions', dossier_id: options[:dossier_id],
|
10
|
+
protocol_key: options[:protocol_key])
|
11
|
+
.and_return double('response', code: 200)
|
13
12
|
StartProtocolSubscription.run(options)
|
14
13
|
end
|
15
14
|
|
16
15
|
it 'passes in the start_at option when provided' do
|
17
16
|
start_at = Time.now
|
18
|
-
expect(
|
19
|
-
|
20
|
-
|
21
|
-
|
17
|
+
expect(session).to receive(:post).with('/protocol_subscriptions', dossier_id: options[:dossier_id],
|
18
|
+
protocol_key: options[:protocol_key],
|
19
|
+
start_at: start_at.to_i)
|
20
|
+
.and_return double('response', code: 200)
|
22
21
|
StartProtocolSubscription.run(options.merge start_at: start_at)
|
23
22
|
end
|
24
23
|
|
25
24
|
it 'raises when the response HTTP status is not in the 200 range' do
|
26
|
-
allow(
|
25
|
+
allow(session).to receive(:post).and_return double('response', code: 401)
|
27
26
|
expect { StartProtocolSubscription.run(options) }.to raise_error
|
28
27
|
end
|
29
28
|
end
|
data/spec/spec_helper.rb
CHANGED
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.0.
|
4
|
+
version: 0.0.4
|
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-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0.8'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 2.14.1
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 2.14.1
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: fabrication
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 2.9.6
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 2.9.6
|
83
111
|
description: Provides authenticated access to ROM utilities
|
84
112
|
email: s.esposito@roqua.nl
|
85
113
|
executables: []
|
@@ -97,15 +125,22 @@ files:
|
|
97
125
|
- Rakefile
|
98
126
|
- lib/roqua-rom-api.rb
|
99
127
|
- lib/roqua/rom_api.rb
|
100
|
-
- lib/roqua/rom_api/
|
128
|
+
- lib/roqua/rom_api/list_responses.rb
|
129
|
+
- lib/roqua/rom_api/results.rb
|
130
|
+
- lib/roqua/rom_api/results/response.rb
|
131
|
+
- lib/roqua/rom_api/sessions.rb
|
132
|
+
- lib/roqua/rom_api/sessions/basic_auth_session.rb
|
101
133
|
- lib/roqua/rom_api/start_protocol_subscription.rb
|
102
134
|
- lib/roqua/rom_api/version.rb
|
103
135
|
- roqua_rom_api.gemspec
|
104
|
-
- spec/
|
136
|
+
- spec/fabricators/basic_auth_session_fabricator.rb
|
137
|
+
- spec/lib/roqua/rom_api/list_responses_spec.rb
|
138
|
+
- spec/lib/roqua/rom_api/results/response_spec.rb
|
139
|
+
- spec/lib/roqua/rom_api/sessions/basic_auth_session_spec.rb
|
105
140
|
- spec/lib/roqua/rom_api/start_protocol_subscription_spec.rb
|
106
141
|
- spec/lib/roqua_rom_api_spec.rb
|
107
142
|
- spec/spec_helper.rb
|
108
|
-
homepage: https://github.com/roqua/
|
143
|
+
homepage: https://github.com/roqua/roqua/blob/master/rom_api/README.md
|
109
144
|
licenses:
|
110
145
|
- MIT
|
111
146
|
metadata: {}
|
@@ -130,7 +165,10 @@ signing_key:
|
|
130
165
|
specification_version: 4
|
131
166
|
summary: API wrapper gem around RoQua's ROM API
|
132
167
|
test_files:
|
133
|
-
- spec/
|
168
|
+
- spec/fabricators/basic_auth_session_fabricator.rb
|
169
|
+
- spec/lib/roqua/rom_api/list_responses_spec.rb
|
170
|
+
- spec/lib/roqua/rom_api/results/response_spec.rb
|
171
|
+
- spec/lib/roqua/rom_api/sessions/basic_auth_session_spec.rb
|
134
172
|
- spec/lib/roqua/rom_api/start_protocol_subscription_spec.rb
|
135
173
|
- spec/lib/roqua_rom_api_spec.rb
|
136
174
|
- spec/spec_helper.rb
|
data/lib/roqua/rom_api/base.rb
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'httparty'
|
2
|
-
|
3
|
-
module Roqua
|
4
|
-
module RomApi
|
5
|
-
# @api private
|
6
|
-
class Base
|
7
|
-
def self.get(url, params = {})
|
8
|
-
HTTParty.get(api_base + url + '.json', query: params, basic_auth: authentication)
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.post(url, params = {})
|
12
|
-
HTTParty.post(api_base + url + '.json', query: params, basic_auth: authentication)
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.put(url, params = {})
|
16
|
-
HTTParty.put(api_base + url + '.json', query: params, basic_auth: authentication)
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.delete(url, params = {})
|
20
|
-
HTTParty.delete(api_base + url + '.json', query: params, basic_auth: authentication)
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def self.rom_host
|
26
|
-
@roqua_rom_host || ENV['ROQUA_ROM_HOST']
|
27
|
-
end
|
28
|
-
|
29
|
-
def self.username
|
30
|
-
@roqua_rom_key || ENV['ROQUA_ROM_KEY']
|
31
|
-
end
|
32
|
-
|
33
|
-
def self.password
|
34
|
-
@roqua_rom_secret || ENV['ROQUA_ROM_SECRET']
|
35
|
-
end
|
36
|
-
|
37
|
-
def self.authentication
|
38
|
-
{username: username, password: password}
|
39
|
-
end
|
40
|
-
|
41
|
-
def self.api_path
|
42
|
-
'/api/v1'
|
43
|
-
end
|
44
|
-
|
45
|
-
def self.api_base
|
46
|
-
rom_host + api_path
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Roqua
|
4
|
-
describe RomApi::Base do
|
5
|
-
let(:url) { '/some/url' }
|
6
|
-
let(:params) { {some: 'params'} }
|
7
|
-
before do
|
8
|
-
RomApi::Base.instance_eval do
|
9
|
-
@roqua_rom_host = 'http://roqua.dev'
|
10
|
-
@roqua_rom_key = 'uname'
|
11
|
-
@roqua_rom_secret = 'pwd'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
describe '.get' do
|
16
|
-
it 'performs a get request to a rom_api passing in some parameters' do
|
17
|
-
expect(HTTParty).to receive(:get).with('http://roqua.dev/api/v1/some/url.json',
|
18
|
-
query: params,
|
19
|
-
basic_auth: {username: 'uname', password: 'pwd'})
|
20
|
-
RomApi::Base.get(url, params)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
describe '.post' do
|
25
|
-
it 'performs a get request to a rom_api passing in some parameters' do
|
26
|
-
expect(HTTParty).to receive(:post).with('http://roqua.dev/api/v1/some/url.json',
|
27
|
-
query: params,
|
28
|
-
basic_auth: {username: 'uname', password: 'pwd'})
|
29
|
-
RomApi::Base.post(url, params)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
describe '.put' do
|
34
|
-
it 'performs a get request to a rom_api passing in some parameters' do
|
35
|
-
expect(HTTParty).to receive(:put).with('http://roqua.dev/api/v1/some/url.json',
|
36
|
-
query: params,
|
37
|
-
basic_auth: {username: 'uname', password: 'pwd'})
|
38
|
-
RomApi::Base.put(url, params)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
describe '.delete' do
|
43
|
-
it 'performs a get request to a rom_api passing in some parameters' do
|
44
|
-
expect(HTTParty).to receive(:delete).with('http://roqua.dev/api/v1/some/url.json',
|
45
|
-
query: params,
|
46
|
-
basic_auth: {username: 'uname', password: 'pwd'})
|
47
|
-
RomApi::Base.delete(url, params)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|