Class: HasHelpers::RackAPI
- Inherits:
-
Object
- Object
- HasHelpers::RackAPI
- Defined in:
- app/api/has_helpers/rack_api.rb
Direct Known Subclasses
Constant Summary collapse
- INTERNAL_ERROR_MSG =
"Server internal error"- NOT_ACCEPTABLE_MSG =
"Not Acceptable"- UNAUTHORIZED_MSG =
"Unauthorized"- DEFAULT_HEADERS =
{ "Content-Type" => "application/json" }.freeze
Instance Attribute Summary collapse
-
#request ⇒ Object
Returns the value of attribute request.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(env) ⇒ RackAPI
constructor
A new instance of RackAPI.
- #run ⇒ Object
Constructor Details
#initialize(env) ⇒ RackAPI
Returns a new instance of RackAPI.
22 23 24 |
# File 'app/api/has_helpers/rack_api.rb', line 22 def initialize(env) self.request = Rack::Request.new(env) end |
Instance Attribute Details
#request ⇒ Object
Returns the value of attribute request.
20 21 22 |
# File 'app/api/has_helpers/rack_api.rb', line 20 def request @request end |
Class Method Details
.call(env) ⇒ Object
16 17 18 |
# File 'app/api/has_helpers/rack_api.rb', line 16 def self.call(env) new(env).run end |
Instance Method Details
#run ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'app/api/has_helpers/rack_api.rb', line 26 def run catch(:response) do validate_request_format! handle_request end.tap do |response| # Log the API request. ::Rails.logger.info do [ "SearchAPI: ", response.first, *( (400..599).cover?(response.first.to_i) && response[-1] # Logs the body containing an error message ) ].join(" ") end end rescue => e ::Rails.logger.info { "\n\n#{ ["SearchAPI Error", "~" * 40, e., *e.backtrace].join("\n") }" } api_response( status: 500, body: error_body(title: INTERNAL_ERROR_MSG) ) end |