Class: Metatron::Controller
- Inherits:
-
Object
- Object
- Metatron::Controller
- Defined in:
- lib/metatron/controller.rb
Overview
Base class for API services
Direct Known Subclasses
Instance Attribute Summary collapse
-
#params ⇒ Object
Returns the value of attribute params.
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(env) ⇒ Controller
constructor
A new instance of Controller.
Constructor Details
#initialize(env) ⇒ Controller
Returns a new instance of Controller.
14 15 16 17 |
# File 'lib/metatron/controller.rb', line 14 def initialize(env) @env = env @request = Rack::Request.new(env) end |
Instance Attribute Details
#params ⇒ Object
Returns the value of attribute params.
12 13 14 |
# File 'lib/metatron/controller.rb', line 12 def params @params end |
Class Method Details
.call(env) ⇒ Object
7 8 9 |
# File 'lib/metatron/controller.rb', line 7 def call(env) new(env).call end |
Instance Method Details
#call ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/metatron/controller.rb', line 19 def call begin if request&.content_type&.include?("json") body = request.body.read request.body.rewind if request.body.respond_to?(:rewind) self.params = JSON.parse(body) unless body.empty? end rescue JSON::ParserError => e return [400, {}, [{ error: "Request must be JSON: #{e.}" }.to_json]] end _call end |