class Quber::Rack

Public Instance Methods

call(env) click to toggle source
# File lib/quber/rack.rb, line 8
def call(env)
  request = ::Rack::Request.new(env)
  payload = extract_payload(request)

  ActiveJob::Base.execute payload

  [200, {}, ['OK']]
rescue PayloadError => e
  [400, {}, [e.cause.message]]
rescue => e
  [500, {}, [e.message]]
end

Private Instance Methods

extract_payload(request) click to toggle source
# File lib/quber/rack.rb, line 23
def extract_payload(request)
  JSON.parse(request.body.read).fetch('data')
  rescue JSON::ParserError, KeyError
    raise PayloadError
end