aqua-io 0.1.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 +7 -0
- data/lib/aqua-io.rb +8 -0
- data/lib/aqua_io/api/access_token.rb +25 -0
- data/lib/aqua_io/api/icd10.rb +73 -0
- data/lib/aqua_io/api/icd9.rb +73 -0
- data/lib/aqua_io/client.rb +33 -0
- data/lib/aqua_io/error.rb +9 -0
- data/lib/aqua_io/error/client_error.rb +18 -0
- data/lib/aqua_io/http_client.rb +122 -0
- data/lib/aqua_io/http_client/auth_handler.rb +91 -0
- data/lib/aqua_io/http_client/error_handler.rb +51 -0
- data/lib/aqua_io/http_client/request_handler.rb +30 -0
- data/lib/aqua_io/http_client/response.rb +20 -0
- data/lib/aqua_io/http_client/response_handler.rb +24 -0
- data/lib/aqua_io/version.rb +3 -0
- metadata +99 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 48d31b07dfa68e868a37588213d209e5b12003ad
|
4
|
+
data.tar.gz: c498be93026a69d7afe2e0dd802dec9a682b4cd4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 132d4336e133162824d69720dc65f29bfe4f5b74dbf55ff543849c56eb705733a58816cf40bd763b459edc44ee0ae6e2d439b58559fd037aa462708006b5429a
|
7
|
+
data.tar.gz: 0c595d99ad1866248dea7b656ceb433cb1a0b3101a28a55382fa9cf5dc4127bcf66b9656522a10cd35ed03c8f9799ad53bce5868ec286173501c5de73be7e25a
|
data/lib/aqua-io.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
module AquaIo
|
2
|
+
|
3
|
+
module Api
|
4
|
+
|
5
|
+
# Retrieve access token using API credentials.
|
6
|
+
class AccessToken
|
7
|
+
|
8
|
+
def initialize(client)
|
9
|
+
@client = client
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns an access token (required for making all other API calls).
|
13
|
+
#
|
14
|
+
# 'oauth/token?grant_type=client_credentials' POST
|
15
|
+
def retrieve(options = {})
|
16
|
+
body = options.fetch(:body, {})
|
17
|
+
|
18
|
+
@client.post("oauth/token?grant_type=client_credentials", body, options)
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module AquaIo
|
2
|
+
|
3
|
+
module Api
|
4
|
+
|
5
|
+
# Returns an ICD-10 code.
|
6
|
+
class Icd10
|
7
|
+
|
8
|
+
def initialize(client)
|
9
|
+
@client = client
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns all top-level ICD-10 codes. Useful for helping a user navigate down the ICD-10 hierarchy to find a code.
|
13
|
+
#
|
14
|
+
# 'codes/v1/icd10' GET
|
15
|
+
def top_level_codes(options = {})
|
16
|
+
body = options.fetch(:query, {})
|
17
|
+
|
18
|
+
@client.get("codes/v1/icd10", body, options)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns a single code matching the name, if any exists. Replace periods with hypens (e.g. 'R50-9' for 'R50.9')
|
22
|
+
#
|
23
|
+
# 'codes/v1/icd10/:code_name' GET
|
24
|
+
#
|
25
|
+
# code_name - name of code
|
26
|
+
def single_code(code_name, options = {})
|
27
|
+
body = options.fetch(:query, {})
|
28
|
+
body[:code_name] = code_name
|
29
|
+
|
30
|
+
@client.get("codes/v1/icd10/#{code_name}", body, options)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Returns all codes whose name contains the search string.
|
34
|
+
#
|
35
|
+
# 'codes/v1/icd10?q[name_cont]=:query' GET
|
36
|
+
#
|
37
|
+
# query - the search query string
|
38
|
+
def search_by_name(query, options = {})
|
39
|
+
body = options.fetch(:query, {})
|
40
|
+
body[:query] = query
|
41
|
+
|
42
|
+
@client.get("codes/v1/icd10?q[name_cont]=#{query}", body, options)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Returns all codes whose description contains the search string.
|
46
|
+
#
|
47
|
+
# 'codes/v1/icd10?q[description_cont]=:query' GET
|
48
|
+
#
|
49
|
+
# query - the search query string
|
50
|
+
def search_by_description(query, options = {})
|
51
|
+
body = options.fetch(:query, {})
|
52
|
+
body[:query] = query
|
53
|
+
|
54
|
+
@client.get("codes/v1/icd10?q[description_cont]=#{query}", body, options)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Returns all codes whose name or description contains the search string.
|
58
|
+
#
|
59
|
+
# 'codes/v1/icd10?q[name_or_description_cont]=:query' GET
|
60
|
+
#
|
61
|
+
# query - the search query string
|
62
|
+
def search_by_name_or_description(query, options = {})
|
63
|
+
body = options.fetch(:query, {})
|
64
|
+
body[:query] = query
|
65
|
+
|
66
|
+
@client.get("codes/v1/icd10?q[name_or_description_cont]=#{query}", body, options)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
@@ -0,0 +1,73 @@
|
|
1
|
+
module AquaIo
|
2
|
+
|
3
|
+
module Api
|
4
|
+
|
5
|
+
# Returns an ICD-9 code.
|
6
|
+
class Icd9
|
7
|
+
|
8
|
+
def initialize(client)
|
9
|
+
@client = client
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns all top-level ICD-9 codes. Useful for helping a user navigate down the ICD-9 hierarchy to find a code.
|
13
|
+
#
|
14
|
+
# 'codes/v1/icd9' GET
|
15
|
+
def top_level_codes(options = {})
|
16
|
+
body = options.fetch(:query, {})
|
17
|
+
|
18
|
+
@client.get("codes/v1/icd9", body, options)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns a single code matching the name, if any exists. Replace periods with hypens (e.g. '066-4' for '066.4')
|
22
|
+
#
|
23
|
+
# 'codes/v1/icd9/:code_name' GET
|
24
|
+
#
|
25
|
+
# code_name - name of code
|
26
|
+
def single_code(code_name, options = {})
|
27
|
+
body = options.fetch(:query, {})
|
28
|
+
body[:code_name] = code_name
|
29
|
+
|
30
|
+
@client.get("codes/v1/icd9/#{code_name}", body, options)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Returns all codes whose name contains the search string.
|
34
|
+
#
|
35
|
+
# 'codes/v1/icd9?q[name_cont]=:query' GET
|
36
|
+
#
|
37
|
+
# query - the search query string
|
38
|
+
def search_by_name(query, options = {})
|
39
|
+
body = options.fetch(:query, {})
|
40
|
+
body[:query] = query
|
41
|
+
|
42
|
+
@client.get("codes/v1/icd9?q[name_cont]=#{query}", body, options)
|
43
|
+
end
|
44
|
+
|
45
|
+
# Returns all codes whose description contains the search string.
|
46
|
+
#
|
47
|
+
# 'codes/v1/icd9?q[description_cont]=:query' GET
|
48
|
+
#
|
49
|
+
# query - the search query string
|
50
|
+
def search_by_description(query, options = {})
|
51
|
+
body = options.fetch(:query, {})
|
52
|
+
body[:query] = query
|
53
|
+
|
54
|
+
@client.get("codes/v1/icd9?q[description_cont]=#{query}", body, options)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Returns all codes whose name or description contains the search string.
|
58
|
+
#
|
59
|
+
# 'codes/v1/icd9?q[name_or_description_cont]=:query' GET
|
60
|
+
#
|
61
|
+
# query - the search query string
|
62
|
+
def search_by_name_or_description(query, options = {})
|
63
|
+
body = options.fetch(:query, {})
|
64
|
+
body[:query] = query
|
65
|
+
|
66
|
+
@client.get("codes/v1/icd9?q[name_or_description_cont]=#{query}", body, options)
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "faraday"
|
2
|
+
require "json"
|
3
|
+
|
4
|
+
require "aqua_io/api/access_token"
|
5
|
+
require "aqua_io/api/icd9"
|
6
|
+
require "aqua_io/api/icd10"
|
7
|
+
|
8
|
+
module AquaIo
|
9
|
+
|
10
|
+
class Client
|
11
|
+
|
12
|
+
def initialize(auth = {}, options = {})
|
13
|
+
@http_client = AquaIo::HttpClient::HttpClient.new(auth, options)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Retrieve access token using API credentials.
|
17
|
+
def access_token()
|
18
|
+
AquaIo::Api::AccessToken.new(@http_client)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Returns an ICD-9 code.
|
22
|
+
def icd9()
|
23
|
+
AquaIo::Api::Icd9.new(@http_client)
|
24
|
+
end
|
25
|
+
|
26
|
+
# Returns an ICD-10 code.
|
27
|
+
def icd10()
|
28
|
+
AquaIo::Api::Icd10.new(@http_client)
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,122 @@
|
|
1
|
+
require "aqua_io/http_client/auth_handler"
|
2
|
+
require "aqua_io/http_client/error_handler"
|
3
|
+
require "aqua_io/http_client/request_handler"
|
4
|
+
require "aqua_io/http_client/response"
|
5
|
+
require "aqua_io/http_client/response_handler"
|
6
|
+
|
7
|
+
module AquaIo
|
8
|
+
|
9
|
+
module HttpClient
|
10
|
+
|
11
|
+
# Main HttpClient which is used by Api classes
|
12
|
+
class HttpClient
|
13
|
+
|
14
|
+
attr_accessor :options, :headers
|
15
|
+
|
16
|
+
def initialize(auth = {}, options = {})
|
17
|
+
|
18
|
+
if auth.is_a?(String)
|
19
|
+
auth = { :access_token => auth }
|
20
|
+
end
|
21
|
+
|
22
|
+
@options = {
|
23
|
+
:base => "https://api.aqua.io",
|
24
|
+
:user_agent => "Aqua.io official Ruby client (0.1.0)"
|
25
|
+
}
|
26
|
+
|
27
|
+
@options.update(options)
|
28
|
+
|
29
|
+
@headers = {
|
30
|
+
"user-agent" => @options[:user_agent]
|
31
|
+
}
|
32
|
+
|
33
|
+
if @options.has_key?(:headers)
|
34
|
+
@headers.update(Hash[@options[:headers].map { |k, v| [k.downcase, v] }])
|
35
|
+
@options.delete(:headers)
|
36
|
+
end
|
37
|
+
|
38
|
+
@client = Faraday.new(@options[:base]) do |conn|
|
39
|
+
conn.use(AquaIo::HttpClient::AuthHandler, auth)
|
40
|
+
conn.use(AquaIo::HttpClient::ErrorHandler)
|
41
|
+
|
42
|
+
conn.adapter(Faraday.default_adapter)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def get(path, params = {}, options = {})
|
47
|
+
request(path, nil, "get", options.merge({ :query => params }))
|
48
|
+
end
|
49
|
+
|
50
|
+
def post(path, body = {}, options = {})
|
51
|
+
request(path, body, "post", options)
|
52
|
+
end
|
53
|
+
|
54
|
+
def patch(path, body = {}, options = {})
|
55
|
+
request(path, body, "patch", options)
|
56
|
+
end
|
57
|
+
|
58
|
+
def delete(path, body = {}, options = {})
|
59
|
+
request(path, body, "delete", options)
|
60
|
+
end
|
61
|
+
|
62
|
+
def put(path, body = {}, options = {})
|
63
|
+
request(path, body, "put", options)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Intermediate function which does three main things
|
67
|
+
#
|
68
|
+
# - Transforms the body of request into correct format
|
69
|
+
# - Creates the requests with give parameters
|
70
|
+
# - Returns response body after parsing it into correct format
|
71
|
+
def request(path, body, method, options)
|
72
|
+
options = @options.merge(options)
|
73
|
+
|
74
|
+
options[:headers] = options[:headers] || {}
|
75
|
+
options[:headers] = @headers.merge(Hash[options[:headers].map { |k, v| [k.downcase, v] }])
|
76
|
+
|
77
|
+
options[:body] = body
|
78
|
+
|
79
|
+
if method != "get"
|
80
|
+
options[:body] = options[:body] || {}
|
81
|
+
options = set_body(options)
|
82
|
+
end
|
83
|
+
|
84
|
+
response = create_request(method, path, options)
|
85
|
+
|
86
|
+
body = get_body(response)
|
87
|
+
|
88
|
+
AquaIo::HttpClient::Response.new(body, response.status, response.headers)
|
89
|
+
end
|
90
|
+
|
91
|
+
# Creating a request with the given arguments
|
92
|
+
#
|
93
|
+
# If api_version is set, appends it immediately after host
|
94
|
+
def create_request(method, path, options)
|
95
|
+
version = options.has_key?(:api_version) ? "/#{options[:api_version]}" : ""
|
96
|
+
|
97
|
+
path = "#{version}#{path}"
|
98
|
+
|
99
|
+
instance_eval <<-RUBY, __FILE__, __LINE__ + 1
|
100
|
+
@client.#{method}(path) do |req|
|
101
|
+
req.body = options[:body]
|
102
|
+
req.headers.update(options[:headers])
|
103
|
+
req.params.update(options[:query]) if options[:query]
|
104
|
+
end
|
105
|
+
RUBY
|
106
|
+
end
|
107
|
+
|
108
|
+
# Get response body in correct format
|
109
|
+
def get_body(response)
|
110
|
+
AquaIo::HttpClient::ResponseHandler.get_body(response)
|
111
|
+
end
|
112
|
+
|
113
|
+
# Set request body in correct format
|
114
|
+
def set_body(options)
|
115
|
+
AquaIo::HttpClient::RequestHandler.set_body(options)
|
116
|
+
end
|
117
|
+
|
118
|
+
end
|
119
|
+
|
120
|
+
end
|
121
|
+
|
122
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require "base64"
|
2
|
+
|
3
|
+
module AquaIo
|
4
|
+
|
5
|
+
module HttpClient
|
6
|
+
|
7
|
+
# AuthHandler takes care of devising the auth type and using it
|
8
|
+
class AuthHandler < Faraday::Middleware
|
9
|
+
|
10
|
+
URL_SECRET = 2
|
11
|
+
URL_TOKEN = 3
|
12
|
+
|
13
|
+
def initialize(app, auth = {}, options = {})
|
14
|
+
@auth = auth
|
15
|
+
super(app)
|
16
|
+
end
|
17
|
+
|
18
|
+
def call(env)
|
19
|
+
if !@auth.empty?
|
20
|
+
auth = get_auth_type
|
21
|
+
flag = false
|
22
|
+
|
23
|
+
if auth == URL_SECRET
|
24
|
+
env = url_secret(env)
|
25
|
+
flag = true
|
26
|
+
end
|
27
|
+
|
28
|
+
if auth == URL_TOKEN
|
29
|
+
env = url_token(env)
|
30
|
+
flag = true
|
31
|
+
end
|
32
|
+
|
33
|
+
if !flag
|
34
|
+
raise StandardError.new "Unable to calculate authorization method. Please check"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
@app.call(env)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Calculating the Authentication Type
|
42
|
+
def get_auth_type()
|
43
|
+
|
44
|
+
if @auth.has_key?(:client_id) and @auth.has_key?(:client_secret)
|
45
|
+
return URL_SECRET
|
46
|
+
end
|
47
|
+
|
48
|
+
if @auth.has_key?(:access_token)
|
49
|
+
return URL_TOKEN
|
50
|
+
end
|
51
|
+
|
52
|
+
return -1
|
53
|
+
end
|
54
|
+
|
55
|
+
# OAUTH2 Authorization with client secret
|
56
|
+
def url_secret(env)
|
57
|
+
query = {
|
58
|
+
:client_id => @auth[:client_id],
|
59
|
+
:client_secret => @auth[:client_secret]
|
60
|
+
}
|
61
|
+
|
62
|
+
merge_query(env, query)
|
63
|
+
end
|
64
|
+
|
65
|
+
# OAUTH2 Authorization with access token
|
66
|
+
def url_token(env)
|
67
|
+
query = { :access_token => @auth[:access_token] }
|
68
|
+
|
69
|
+
merge_query(env, query)
|
70
|
+
end
|
71
|
+
|
72
|
+
def query_params(url)
|
73
|
+
if url.query.nil? or url.query.empty?
|
74
|
+
{}
|
75
|
+
else
|
76
|
+
Faraday::Utils.parse_query(url.query)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def merge_query(env, query)
|
81
|
+
query = query.update query_params(env[:url])
|
82
|
+
|
83
|
+
env[:url].query = Faraday::Utils.build_query(query)
|
84
|
+
|
85
|
+
return env
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module AquaIo
|
2
|
+
|
3
|
+
module HttpClient
|
4
|
+
|
5
|
+
# ErrorHanlder takes care of selecting the error message from response body
|
6
|
+
class ErrorHandler < Faraday::Middleware
|
7
|
+
|
8
|
+
def initialize(app)
|
9
|
+
super(app)
|
10
|
+
end
|
11
|
+
|
12
|
+
def call(env)
|
13
|
+
@app.call(env).on_complete do |env|
|
14
|
+
code = env.status
|
15
|
+
type = env.response_headers["content-type"]
|
16
|
+
|
17
|
+
case code
|
18
|
+
when 500...599
|
19
|
+
raise AquaIo::Error::ClientError.new("Error #{code}", code)
|
20
|
+
when 400...499
|
21
|
+
body = AquaIo::HttpClient::ResponseHandler.get_body(env)
|
22
|
+
message = ""
|
23
|
+
|
24
|
+
# If HTML, whole body is taken
|
25
|
+
if body.is_a?(String)
|
26
|
+
message = body
|
27
|
+
end
|
28
|
+
|
29
|
+
# If JSON, a particular field is taken and used
|
30
|
+
if type.include?("json") and body.is_a?(Hash)
|
31
|
+
if body.has_key?("")
|
32
|
+
message = body[""]
|
33
|
+
else
|
34
|
+
message = "Unable to select error message from json returned by request responsible for error"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
if message == ""
|
39
|
+
message = "Unable to understand the content type of response returned by request responsible for error"
|
40
|
+
end
|
41
|
+
|
42
|
+
raise AquaIo::Error::ClientError.new message, code
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module AquaIo
|
2
|
+
|
3
|
+
module HttpClient
|
4
|
+
|
5
|
+
# RequestHandler takes care of encoding the request body into format given by options
|
6
|
+
class RequestHandler
|
7
|
+
|
8
|
+
def self.set_body(options)
|
9
|
+
type = options.fetch(:request_type, "json")
|
10
|
+
|
11
|
+
# Encoding request body into JSON format
|
12
|
+
if type && type == "json"
|
13
|
+
options[:body] = options[:body].to_json
|
14
|
+
options[:headers]["content-type"] = "application/json"
|
15
|
+
end
|
16
|
+
|
17
|
+
# Raw body
|
18
|
+
if type && type == "raw"
|
19
|
+
options[:body] = options[:body].is_a?(Hash) ? "" : options[:body]
|
20
|
+
options[:headers].delete("content-type")
|
21
|
+
end
|
22
|
+
|
23
|
+
return options
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module AquaIo
|
2
|
+
|
3
|
+
module HttpClient
|
4
|
+
|
5
|
+
# Response object contains the response returned by the client
|
6
|
+
class Response
|
7
|
+
|
8
|
+
attr_accessor :body, :code, :headers
|
9
|
+
|
10
|
+
def initialize(body, code, headers)
|
11
|
+
@body = body
|
12
|
+
@code = code
|
13
|
+
@headers = headers
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module AquaIo
|
2
|
+
|
3
|
+
module HttpClient
|
4
|
+
|
5
|
+
# ResponseHandler takes care of decoding the response body into suitable type
|
6
|
+
class ResponseHandler
|
7
|
+
|
8
|
+
def self.get_body(response)
|
9
|
+
type = response.response_headers["content-type"]
|
10
|
+
body = response.body
|
11
|
+
|
12
|
+
# Response body is in JSON
|
13
|
+
if type && type.include?("json")
|
14
|
+
body = JSON.parse body
|
15
|
+
end
|
16
|
+
|
17
|
+
return body
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: aqua-io
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michael Carroll / Aqua.io
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-02-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.9'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 0.9.0
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.9'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 0.9.0
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: json
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '1.7'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 1.7.7
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '1.7'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 1.7.7
|
53
|
+
description: Official Aqua.io API library client for ruby. Covers API authentication
|
54
|
+
and methods for ICD-9 and ICD-10 code endpoints.
|
55
|
+
email: michael@aqua.io
|
56
|
+
executables: []
|
57
|
+
extensions: []
|
58
|
+
extra_rdoc_files: []
|
59
|
+
files:
|
60
|
+
- lib/aqua-io.rb
|
61
|
+
- lib/aqua_io/api/access_token.rb
|
62
|
+
- lib/aqua_io/api/icd10.rb
|
63
|
+
- lib/aqua_io/api/icd9.rb
|
64
|
+
- lib/aqua_io/client.rb
|
65
|
+
- lib/aqua_io/error.rb
|
66
|
+
- lib/aqua_io/error/client_error.rb
|
67
|
+
- lib/aqua_io/http_client.rb
|
68
|
+
- lib/aqua_io/http_client/auth_handler.rb
|
69
|
+
- lib/aqua_io/http_client/error_handler.rb
|
70
|
+
- lib/aqua_io/http_client/request_handler.rb
|
71
|
+
- lib/aqua_io/http_client/response.rb
|
72
|
+
- lib/aqua_io/http_client/response_handler.rb
|
73
|
+
- lib/aqua_io/version.rb
|
74
|
+
homepage: https://aqua.io
|
75
|
+
licenses:
|
76
|
+
- MIT
|
77
|
+
metadata: {}
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options: []
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
requirements: []
|
93
|
+
rubyforge_project:
|
94
|
+
rubygems_version: 2.2.2
|
95
|
+
signing_key:
|
96
|
+
specification_version: 4
|
97
|
+
summary: Official Aqua.io API library client for ruby (ICD-9 and ICD-10).
|
98
|
+
test_files: []
|
99
|
+
has_rdoc:
|