class Fasta::Server::Core::Responder
Constants
- DB
Attributes
headers[R]
params[R]
request[R]
Public Class Methods
call(env)
click to toggle source
# File lib/fasta/server/core/responder.rb, line 35 def call(env) request = Rack::Request.new(env) instance = new(request) instance.call instance.to_rack_array end
new(request)
click to toggle source
# File lib/fasta/server/core/responder.rb, line 45 def initialize(request) $logger.info request @request = request @params = request.env['router.params'] @headers = default_response_headers end
validate_fields(*fields)
click to toggle source
# File lib/fasta/server/core/responder.rb, line 31 def validate_fields(*fields) @fields = fields end
Public Instance Methods
body()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 70 def body { code: http_response_code, result: @body, meta: meta } end
call()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 60 def call; end
db_table()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 52 def db_table DB[db_table_name] end
db_table_name()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 56 def db_table_name Object.const_get(self.class.to_s.rpartition('::').first).db_table_name end
response_code()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 66 def response_code @response_code || default_response_code end
to_rack_array()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 62 def to_rack_array [http_response_code, http_response_headers, http_response_body] end
Private Instance Methods
default_response_code()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 86 def default_response_code 200 end
default_response_headers()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 94 def default_response_headers { 'Content-Type' => 'application/json' }.dup end
http_response_body()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 102 def http_response_body [Oj.dump(body, mode: :compat)] end
http_response_code()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 90 def http_response_code params['suppress_response_code'] ? 200 : response_code end
http_response_headers()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 98 def http_response_headers @headers end
meta()
click to toggle source
# File lib/fasta/server/core/responder.rb, line 80 def meta { server_time: Time.now.to_i } end