Class: Ecoportal::API::Common::GraphQL::HttpClient
- Inherits:
-
Common::Client
- Object
- Common::Client
- Ecoportal::API::Common::GraphQL::HttpClient
- Defined in:
- lib/ecoportal/api/common/graphql/http_client.rb
Instance Attribute Summary collapse
-
#host ⇒ Object
readonly
Returns the value of attribute host.
-
#version ⇒ Object
readonly
Returns the value of attribute version.
Class Method Summary collapse
Instance Method Summary collapse
-
#base_request ⇒ HTTP
Creates a HTTP object adding the
X-ApiKeyorX-ECOPORTAL-API-KEYparam to the header, depending on the API version. -
#initialize(api_key: nil, version: nil, host: 'live.ecoportal.com', logger: ::Logger.new(IO::NULL), deep_logging: false) ⇒ HttpClient
constructor
A new instance of HttpClient.
- #refresh_key(value) ⇒ Object
-
#url_for(path) ⇒ String
Full URl builder of the request.
Constructor Details
#initialize(api_key: nil, version: nil, host: 'live.ecoportal.com', logger: ::Logger.new(IO::NULL), deep_logging: false) ⇒ HttpClient
Returns a new instance of HttpClient.
18 19 20 21 22 23 24 25 26 |
# File 'lib/ecoportal/api/common/graphql/http_client.rb', line 18 def initialize( api_key: nil, version: nil, host: 'live.ecoportal.com', logger: ::Logger.new(IO::NULL), deep_logging: false ) super end |
Instance Attribute Details
#host ⇒ Object (readonly)
Returns the value of attribute host.
16 17 18 |
# File 'lib/ecoportal/api/common/graphql/http_client.rb', line 16 def host @host end |
#version ⇒ Object (readonly)
Returns the value of attribute version.
16 17 18 |
# File 'lib/ecoportal/api/common/graphql/http_client.rb', line 16 def version @version end |
Class Method Details
.base_url(host) ⇒ Object
7 8 9 |
# File 'lib/ecoportal/api/common/graphql/http_client.rb', line 7 def base_url(host) "#{protocol(host)}://#{host}" end |
.protocol(host) ⇒ Object
11 12 13 |
# File 'lib/ecoportal/api/common/graphql/http_client.rb', line 11 def protocol(host) host.match(/^localhost|^127\.0\.0\.1/)? 'http' : 'https' end |
Instance Method Details
#base_request ⇒ HTTP
Note:
It configures HTTP so it only allows body data in json format.
Creates a HTTP object adding the X-ApiKey or X-ECOPORTAL-API-KEY param to the header, depending on the API version.
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/ecoportal/api/common/graphql/http_client.rb', line 35 def base_request @base_request ||= case @version when NilClass HTTP.accept(:json) when 'v2' HTTP.headers('X-ECOPORTAL-API-KEY' => key_token).accept(:json) when 'graphql' HTTP.headers('Authorization' => "Bearer #{key_token}").accept(:json) else HTTP.headers('X-ApiKey' => key_token).accept(:json) end end |
#refresh_key(value) ⇒ Object
28 29 30 |
# File 'lib/ecoportal/api/common/graphql/http_client.rb', line 28 def refresh_key(value) @api_key = value end |
#url_for(path) ⇒ String
Full URl builder of the request
52 53 54 |
# File 'lib/ecoportal/api/common/graphql/http_client.rb', line 52 def url_for(path) version? ? "#{base_url_api}#{path}" : "#{base_url}#{path}" end |