module TResponse

module for handling all incoming requests to the server stands for TsurezureResponse

Public Class Methods

activate_endpoint(endpoint, request) click to toggle source
# File lib/utils/response.rb, line 79
def self.activate_endpoint(endpoint, request)
  final = endpoint.merge request
  final.delete :responder

  final[:vars] =
    HTTPUtils::URLUtils.get_match_indices(final[:path], final[:url])

  response_from_endpoint = endpoint[:responder].call final

  unless response_from_endpoint.is_a? Hash
    return { status: 200, message: response_from_endpoint }
  end

  response_from_endpoint[:options] = final[:options]

  response_from_endpoint
end
get_response(request, endpoints) click to toggle source

creates the final response from the server

# File lib/utils/response.rb, line 59
def self.get_response(request, endpoints)
  Utils.validate_request request

  @endpoints = endpoints[request[:method]]

  # if no endpoint, respond with root endpoint or 404 middleware
  unless Utils.ensure_response(request, @endpoints) == true
    Logbook::Dev.log(CHECK_METHOD_WARNING)

    return { options: { content_type: 'application/json' },
             code: 22, status: 404,
             message: { status: 404, message: 'undefined endpoint' }.to_json }
  end

  endpoint = @endpoints[Utils.get_correct_endpoint(request, @endpoints)[0]]

  # find the correct endpoint to respond with
  activate_endpoint endpoint, request
end