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