def call(env)
params = Utils.symbolize_keys Rack::Request.new(env).params
value = @block.call(params.merge(routing_params(env)), @app, env)
case value
when nil then plain_response(404, "Not Found")
when Job, Model::Attachment
job = value.is_a?(Model::Attachment) ? value.job : value
Response.new(job, env).to_response
else
Dragonfly.warn("can't handle return value from routed endpoint: #{value.inspect}")
plain_response(500, "Server Error")
end
rescue Job::NoSHAGiven
plain_response(400, "You need to give a SHA parameter")
rescue Job::IncorrectSHA
plain_response(400, "The SHA parameter you gave is incorrect")
end