in lib/functions_framework/server.rb [488:515]
def call env
return notfound_response if excluded_path? env
begin
logger = env[::Rack::RACK_LOGGER] ||= @config.logger
request = ::Rack::Request.new env
logger.info "FunctionsFramework: Handling Typed #{request.request_method} request"
begin
req = if @function.request_class
request_class.decode_json request.body.read.to_s
else
JSON.parse request.body.read.to_s
end
rescue JSON::ParserError => e
return bad_request e.message
end
res = @function.call req, globals: @globals, logger: logger
return string_response res.to_json, 200, content_type: "application/json" if res
string_response "", 204
rescue ::StandardError => e
interpret_response e
end
ensure
flush_streams
end