Class: FaaStRuby::Server
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- FaaStRuby::Server
show all
- Includes:
- Logger::Requests
- Defined in:
- lib/faastruby/server/app.rb
Instance Method Summary
collapse
-
#body_content(request_body) ⇒ Object
-
#form_content(request_env) ⇒ Object
-
#is_a_function?(name) ⇒ Boolean
-
#log_request_message(function_name, request, request_uuid, query_params, body, context, request_headers) ⇒ Object
-
#log_response_message(function_name, time, request_uuid, response, print_body) ⇒ Object
-
#parse_body(request, content_type, method) ⇒ Object
-
#parse_headers(env) ⇒ Object
-
#parse_query(query_string) ⇒ Object
-
#parse_response(response) ⇒ Object
-
#resolve_function_name(splat) ⇒ Object
-
#set_response_headers(response, request_uuid, original_request_id = nil, time) ⇒ Object
#puts, rougify, #rougify, #tag
Instance Method Details
#body_content(request_body) ⇒ Object
99
100
101
102
|
# File 'lib/faastruby/server/app.rb', line 99
def body_content(request_body)
return {} if (content = request_body.read).nil?
content
end
|
#form_content(request_env) ⇒ Object
94
95
96
97
|
# File 'lib/faastruby/server/app.rb', line 94
def form_content(request_env)
return {} if (content = request_env['rack.request.form_hash']).nil?
content.to_json
end
|
#is_a_function?(name) ⇒ Boolean
#log_request_message(function_name, request, request_uuid, query_params, body, context, request_headers) ⇒ Object
54
55
56
|
# File 'lib/faastruby/server/app.rb', line 54
def log_request_message(function_name, request, request_uuid, query_params, body, context, )
puts "[#{function_name}] <- [REQUEST: #{request.request_method} \"#{request.fullpath}\"] request_id=\"#{request_uuid}\" body=#{body.inspect} query_params=#{query_params} headers=#{}"
end
|
#log_response_message(function_name, time, request_uuid, response, print_body) ⇒ Object
58
59
60
|
# File 'lib/faastruby/server/app.rb', line 58
def log_response_message(function_name, time, request_uuid, response, print_body)
puts "[#{function_name}] -> [RESPONSE: #{time}ms] request_id=\"#{request_uuid}\" status=#{response.status} body=#{print_body.inspect} headers=#{response.}"
end
|
#parse_body(request, content_type, method) ⇒ Object
88
89
90
91
92
|
# File 'lib/faastruby/server/app.rb', line 88
def parse_body(request, content_type, method)
return nil if method == 'GET'
return form_content(request.env) if content_type == 'application/x-www-form-urlencoded'
body_content(request.body)
end
|
113
114
115
116
117
118
119
120
121
122
123
124
|
# File 'lib/faastruby/server/app.rb', line 113
def (env)
result = {}
env.select{|e| e.match(/^HTTP_/)}.each do |k, v|
newkey = k.sub(/^HTTP_/, '').split('_').map{|x| x.capitalize}.join('-')
result[newkey] = v
end
result['Content-Type'] = env['CONTENT_TYPE']
result['Request-Method'] = env['REQUEST_METHOD']
result['Content-Length'] = env['CONTENT_LENGTH']
result['Remote-Addr'] = env['REMOTE_ADDR']
result
end
|
#parse_query(query_string) ⇒ Object
104
105
106
107
108
109
110
111
|
# File 'lib/faastruby/server/app.rb', line 104
def parse_query(query_string)
hash = {}
query_string.split('&').each do |param|
key, value = param.split('=')
hash[key] = value
end
hash
end
|
#parse_response(response) ⇒ Object
69
70
71
72
|
# File 'lib/faastruby/server/app.rb', line 69
def parse_response(response)
return [Base64.urlsafe_decode64(response.body), "Base64(#{response.body})"] if response.binary?
return [response.body, response.body]
end
|
#resolve_function_name(splat) ⇒ Object
62
63
64
65
66
67
|
# File 'lib/faastruby/server/app.rb', line 62
def (response, request_uuid, original_request_id = nil, time)
response.['X-Request-Id'] = request_uuid
response.['X-Original-Request-Id'] = original_request_id if original_request_id
response.['X-Execution-time'] = "#{time}ms"
response.
end
|