Class: RailLocatorApi::Request
- Inherits:
-
Object
- Object
- RailLocatorApi::Request
- Defined in:
- lib/rail-locator-api/request.rb
Constant Summary collapse
- AUTH_METHODS =
[:keycloak, :api_key, :base64]
- DEFAULT_AUTH_METHOD =
:keycloak- DEFAULT_TIMEOUT =
60- DEFAULT_OPEN_TIMEOUT =
60
Class Attribute Summary collapse
-
.access_token ⇒ Object
Returns the value of attribute access_token.
-
.api_auth_method ⇒ Object
Returns the value of attribute api_auth_method.
-
.api_endpoint ⇒ Object
Returns the value of attribute api_endpoint.
-
.api_key ⇒ Object
Returns the value of attribute api_key.
-
.api_user_email ⇒ Object
Returns the value of attribute api_user_email.
-
.api_user_password ⇒ Object
Returns the value of attribute api_user_password.
-
.debug ⇒ Object
Returns the value of attribute debug.
-
.faraday_adapter ⇒ Object
Returns the value of attribute faraday_adapter.
-
.logger ⇒ Object
Returns the value of attribute logger.
-
.open_timeout ⇒ Object
Returns the value of attribute open_timeout.
-
.proxy ⇒ Object
Returns the value of attribute proxy.
-
.ssl_options ⇒ Object
Returns the value of attribute ssl_options.
-
.symbolize_keys ⇒ Object
Returns the value of attribute symbolize_keys.
-
.test ⇒ Object
Returns the value of attribute test.
-
.timeout ⇒ Object
Returns the value of attribute timeout.
Instance Attribute Summary collapse
-
#access_token ⇒ Object
Returns the value of attribute access_token.
-
#api_auth_method ⇒ Object
Returns the value of attribute api_auth_method.
-
#api_endpoint ⇒ Object
Returns the value of attribute api_endpoint.
-
#api_key ⇒ Object
Returns the value of attribute api_key.
-
#api_user_email ⇒ Object
Returns the value of attribute api_user_email.
-
#api_user_password ⇒ Object
Returns the value of attribute api_user_password.
-
#debug ⇒ Object
Returns the value of attribute debug.
-
#faraday_adapter ⇒ Object
Returns the value of attribute faraday_adapter.
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#open_timeout ⇒ Object
Returns the value of attribute open_timeout.
-
#proxy ⇒ Object
Returns the value of attribute proxy.
-
#ssl_options ⇒ Object
Returns the value of attribute ssl_options.
-
#symbolize_keys ⇒ Object
Returns the value of attribute symbolize_keys.
-
#test ⇒ Object
Returns the value of attribute test.
-
#timeout ⇒ Object
Returns the value of attribute timeout.
Class Method Summary collapse
- .method_missing(sym, *args, &block) ⇒ Object
- .respond_to_missing?(method_name, include_private = false) ⇒ Boolean
Instance Method Summary collapse
- #create(params: nil, headers: nil, body: {}) ⇒ Object
- #delete(params: nil, headers: nil, body: {}) ⇒ Object
-
#initialize(access_token: nil, api_key: nil, api_user_email: nil, api_user_password: nil, api_endpoint: nil, api_auth_method: nil, timeout: nil, open_timeout: nil, proxy: nil, ssl_options: nil, faraday_adapter: nil, symbolize_keys: false, debug: false, logger: nil, test: false) ⇒ Request
constructor
A new instance of Request.
- #method_missing(method, *args) ⇒ Object
- #path ⇒ Object
- #respond_to_missing?(method_name, include_private = false) ⇒ Boolean
- #retrieve(params: nil, headers: nil, body: {}) ⇒ Object
- #send(*args) ⇒ Object
- #update(params: nil, headers: nil, body: {}) ⇒ Object
Constructor Details
#initialize(access_token: nil, api_key: nil, api_user_email: nil, api_user_password: nil, api_endpoint: nil, api_auth_method: nil, timeout: nil, open_timeout: nil, proxy: nil, ssl_options: nil, faraday_adapter: nil, symbolize_keys: false, debug: false, logger: nil, test: false) ⇒ Request
Returns a new instance of Request.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/rail-locator-api/request.rb', line 11 def initialize(access_token: nil, api_key: nil, api_user_email: nil, api_user_password: nil, api_endpoint: nil, api_auth_method: nil, timeout: nil, open_timeout: nil, proxy: nil, ssl_options: nil, faraday_adapter: nil, symbolize_keys: false, debug: false, logger: nil, test: false) @path_parts = [] @api_key = api_key || self.class.api_key || ENV['RAIL_LOCATOR_API_KEY'] @api_key = @api_key.strip if @api_key @api_key = RailLocatorApi::api_key if @api_key.nil? @access_token = access_token || self.class.access_token || RailLocatorApi.generate_access_token.try(:dig, "access_token") @access_token = @access_token.strip if @access_token @access_token = RailLocatorApi::generate_access_token if @access_token.nil? @api_user_email = api_user_email || RailLocatorApi::api_user_email || ENV['API_USER_EMAIL'] @api_user_password = api_user_password || RailLocatorApi::api_user_password || ENV['API_USER_PASSWORD'] @api_endpoint = api_endpoint || self.class.api_endpoint @api_endpoint = RailLocatorApi::api_endpoint if @api_endpoint.nil? @api_auth_method = api_auth_method || DEFAULT_AUTH_METHOD @timeout = timeout || self.class.timeout || DEFAULT_TIMEOUT @open_timeout = open_timeout || self.class.open_timeout || DEFAULT_OPEN_TIMEOUT @proxy = proxy || self.class.proxy || ENV['RAIL_LOCATOR_API_PROXY'] @ssl_options = || self.class. || { version: "TLSv1_2" } @faraday_adapter = faraday_adapter || self.class.faraday_adapter || Faraday.default_adapter @symbolize_keys = symbolize_keys || self.class.symbolize_keys || false @debug = debug || self.class.debug || false @test = test || self.class.test || false @logger = logger || self.class.logger || ::Logger.new(STDOUT) end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/rail-locator-api/request.rb', line 40 def method_missing(method, *args) @path_parts << method.to_s.gsub("_", "-").downcase @path_parts << args if args.length > 0 @path_parts.flatten! self end |
Class Attribute Details
.access_token ⇒ Object
Returns the value of attribute access_token.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def access_token @access_token end |
.api_auth_method ⇒ Object
Returns the value of attribute api_auth_method.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def api_auth_method @api_auth_method end |
.api_endpoint ⇒ Object
Returns the value of attribute api_endpoint.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def api_endpoint @api_endpoint end |
.api_key ⇒ Object
Returns the value of attribute api_key.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def api_key @api_key end |
.api_user_email ⇒ Object
Returns the value of attribute api_user_email.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def api_user_email @api_user_email end |
.api_user_password ⇒ Object
Returns the value of attribute api_user_password.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def api_user_password @api_user_password end |
.debug ⇒ Object
Returns the value of attribute debug.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def debug @debug end |
.faraday_adapter ⇒ Object
Returns the value of attribute faraday_adapter.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def faraday_adapter @faraday_adapter end |
.logger ⇒ Object
Returns the value of attribute logger.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def logger @logger end |
.open_timeout ⇒ Object
Returns the value of attribute open_timeout.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def open_timeout @open_timeout end |
.proxy ⇒ Object
Returns the value of attribute proxy.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def proxy @proxy end |
.ssl_options ⇒ Object
Returns the value of attribute ssl_options.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def @ssl_options end |
.symbolize_keys ⇒ Object
Returns the value of attribute symbolize_keys.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def symbolize_keys @symbolize_keys end |
.test ⇒ Object
Returns the value of attribute test.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def test @test end |
.timeout ⇒ Object
Returns the value of attribute timeout.
94 95 96 |
# File 'lib/rail-locator-api/request.rb', line 94 def timeout @timeout end |
Instance Attribute Details
#access_token ⇒ Object
Returns the value of attribute access_token.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def access_token @access_token end |
#api_auth_method ⇒ Object
Returns the value of attribute api_auth_method.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def api_auth_method @api_auth_method end |
#api_endpoint ⇒ Object
Returns the value of attribute api_endpoint.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def api_endpoint @api_endpoint end |
#api_key ⇒ Object
Returns the value of attribute api_key.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def api_key @api_key end |
#api_user_email ⇒ Object
Returns the value of attribute api_user_email.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def api_user_email @api_user_email end |
#api_user_password ⇒ Object
Returns the value of attribute api_user_password.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def api_user_password @api_user_password end |
#debug ⇒ Object
Returns the value of attribute debug.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def debug @debug end |
#faraday_adapter ⇒ Object
Returns the value of attribute faraday_adapter.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def faraday_adapter @faraday_adapter end |
#logger ⇒ Object
Returns the value of attribute logger.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def logger @logger end |
#open_timeout ⇒ Object
Returns the value of attribute open_timeout.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def open_timeout @open_timeout end |
#proxy ⇒ Object
Returns the value of attribute proxy.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def proxy @proxy end |
#ssl_options ⇒ Object
Returns the value of attribute ssl_options.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def @ssl_options end |
#symbolize_keys ⇒ Object
Returns the value of attribute symbolize_keys.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def symbolize_keys @symbolize_keys end |
#test ⇒ Object
Returns the value of attribute test.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def test @test end |
#timeout ⇒ Object
Returns the value of attribute timeout.
3 4 5 |
# File 'lib/rail-locator-api/request.rb', line 3 def timeout @timeout end |
Class Method Details
.method_missing(sym, *args, &block) ⇒ Object
97 98 99 100 101 102 103 104 |
# File 'lib/rail-locator-api/request.rb', line 97 def method_missing(sym, *args, &block) new(access_token: self.access_token, api_key: self.api_key, api_user_email: self.api_user_email, api_user_password: self.api_user_email, api_auth_method: self.api_auth_method, api_endpoint: self.api_endpoint, timeout: self.timeout, open_timeout: self.open_timeout, faraday_adapter: self.faraday_adapter, symbolize_keys: self.symbolize_keys, debug: self.debug, proxy: self.proxy, ssl_options: self., logger: self.logger, test: self.test).send(sym, *args, &block) end |
.respond_to_missing?(method_name, include_private = false) ⇒ Boolean
106 107 108 |
# File 'lib/rail-locator-api/request.rb', line 106 def respond_to_missing?(method_name, include_private = false) true end |
Instance Method Details
#create(params: nil, headers: nil, body: {}) ⇒ Object
63 64 65 66 67 |
# File 'lib/rail-locator-api/request.rb', line 63 def create(params: nil, headers: nil, body: {}) APIRequest.new(builder: self).post(params: params, headers: headers, body: body) ensure reset end |
#delete(params: nil, headers: nil, body: {}) ⇒ Object
81 82 83 84 85 |
# File 'lib/rail-locator-api/request.rb', line 81 def delete(params: nil, headers: nil, body: {}) APIRequest.new(builder: self).post(params: params, headers: headers, body: {}) ensure reset end |
#path ⇒ Object
59 60 61 |
# File 'lib/rail-locator-api/request.rb', line 59 def path @path_parts.join('/') end |
#respond_to_missing?(method_name, include_private = false) ⇒ Boolean
47 48 49 |
# File 'lib/rail-locator-api/request.rb', line 47 def respond_to_missing?(method_name, include_private = false) true end |
#retrieve(params: nil, headers: nil, body: {}) ⇒ Object
75 76 77 78 79 |
# File 'lib/rail-locator-api/request.rb', line 75 def retrieve(params: nil, headers: nil, body: {}) APIRequest.new(builder: self).get(params: params, headers: headers, body: body) ensure reset end |
#send(*args) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/rail-locator-api/request.rb', line 51 def send(*args) if args.length == 0 method_missing(:send, args) else __send__(*args) end end |
#update(params: nil, headers: nil, body: {}) ⇒ Object
69 70 71 72 73 |
# File 'lib/rail-locator-api/request.rb', line 69 def update(params: nil, headers: nil, body: {}) APIRequest.new(builder: self).post(params: params, headers: headers, body: body) ensure reset end |