Class: BatchApi::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/batch_api/middleware.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app) {|BatchApi.config| ... } ⇒ Middleware

Returns a new instance of Middleware.

Yields:



3
4
5
6
# File 'lib/batch_api/middleware.rb', line 3

def initialize(app, &block)
  @app = app
  yield BatchApi.config if block
end

Class Method Details

.content_typeObject



22
23
24
# File 'lib/batch_api/middleware.rb', line 22

def self.content_type
  {"Content-Type" => "application/json"}
end

Instance Method Details

#call(env) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/batch_api/middleware.rb', line 8

def call(env)
  if batch_request?(env)
    begin
      request = request_klass.new(env)
      result = BatchApi::Processor.new(request, @app).execute!
      [200, self.class.content_type, [MultiJson.dump(result)]]
    rescue => err
      BatchApi::Errors::Request.new(err).render
    end
  else
    @app.call(env)
  end
end