class Simpleadmin::Application

API endpoints for integration with cloud version of getsimpleadmin.com

This is used, Rack conception to connect it in any popular web frameworks like Ruby on Rails, Hanami, Sinatra and etc.

@since 1.0.0

@example

# config/routes.rb
Rails.application.routes.draw do
  mount Simpleadmin::Application, at: 'simpleadmin'
end

Constants

WIDGETS

Private Instance Methods

allowed_table?() click to toggle source
# File lib/simpleadmin.rb, line 97
def allowed_table?
  Config.allowed_table?(params['table_name'] || request_body_params['table_name'])
end
client() click to toggle source
# File lib/simpleadmin.rb, line 76
def client
  @client ||= connector.client
end
connector() click to toggle source
# File lib/simpleadmin.rb, line 91
def connector
  @connector ||= DatabaseConnector.new(
    database_credentials: Config.database_credentials
  )
end
current_path?(path) click to toggle source
# File lib/simpleadmin.rb, line 105
def current_path?(path)
  request.path_info == path
end
request_body_params() click to toggle source
# File lib/simpleadmin.rb, line 87
def request_body_params
  @request_body_params ||= Rack::Utils.parse_nested_query(request.body.read)
end
respond_forbidden!(message: 'Forbidden') click to toggle source
# File lib/simpleadmin.rb, line 80
def respond_forbidden!(message: 'Forbidden')
  response.status = 403
  response.write(message)

  finish!
end
secret_key_invalid?() click to toggle source
# File lib/simpleadmin.rb, line 101
def secret_key_invalid?
  BCrypt::Password.new(request.get_header('HTTP_SIMPLEADMIN_SECRET_KEY')) != ENV['SIMPLE_ADMIN_SECRET_KEY']
end