Method: Acfs::Middleware::Serializer#call

Defined in:
lib/acfs/middleware/serializer.rb

#call(request) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/acfs/middleware/serializer.rb', line 21

def call(request)
  unless request.headers['Content-Type']
    request.body = encode request.data
    request.headers['Content-Type'] = mime
  end

  accept = request.headers['Accept'].to_s.split(',')
  accept << "#{mime};q=#{options.fetch(:q, 1)}"
  request.headers['Accept'] = accept.join(',')

  request.on_complete do |response, nxt|
    response.data = decode(response.body) if mime == response.content_type

    nxt.call response
  end

  app.call(request)
end