86 lines
2.8 KiB
Ruby
Executable File
86 lines
2.8 KiB
Ruby
Executable File
class Api::ApiController < ActionController::API
|
|
include MultiTenancy
|
|
include TokenVerification
|
|
include ActionController::MimeResponds
|
|
include ActionView::Rendering
|
|
include Customers
|
|
|
|
before_action :core_allow
|
|
helper_method :current_token, :current_login_employee, :get_cashier
|
|
|
|
def core_allow
|
|
headers['Access-Control-Allow-Origin'] = '*'
|
|
headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
|
|
headers['Access-Control-Request-Method'] = '*'
|
|
headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization'
|
|
end
|
|
|
|
private
|
|
|
|
# ActionView::Rendering override render_to_body breaks render :json,
|
|
# resulting in an ActionView::MissingTemplate error.
|
|
def render_to_body(options)
|
|
_render_to_body_with_renderer(options) || super
|
|
end
|
|
|
|
#this is base api base controller to need to inherit.
|
|
#all token authentication must be done here
|
|
#response format must be set to JSON
|
|
def current_token
|
|
authenticate_with_http_token do |token, options|
|
|
return token
|
|
end
|
|
end
|
|
|
|
# Get current Cashier
|
|
def get_cashier
|
|
@cashier = Employee.where("role = 'cashier' AND token_session <> ''")
|
|
end
|
|
|
|
def current_login_employee
|
|
@employee ||= Employee.find_by_token_session(current_token)
|
|
end
|
|
|
|
# def lookup_domain
|
|
# if request.subdomain.present? && request.subdomain != "www"
|
|
# from = request.subdomain.downcase + "." + request.domain.downcase
|
|
# @license = cache_license(ENV["SX_PROVISION_URL"], from) # request.subdomain.downcase
|
|
# if (!@license.nil?)
|
|
# logger.info "Location - " + @license.dbhost
|
|
# ActiveRecord::Base.establish_connection(website_connection(@license))
|
|
# # authenticate_session_token
|
|
# # logger.info "Connecting to - " + @license.subdomain + " - "+ @license.dbhost + "@" + @license.dbschema
|
|
# else
|
|
# # reconnect_default_db
|
|
# logger.info 'License is nil'
|
|
# # redirect_to root_url(:host => request.domain) + "store_error"
|
|
# render :json => [{ status: false, message: 'Invalid Access!'}]
|
|
# end
|
|
# end
|
|
# end
|
|
|
|
# def website_connection(license)
|
|
# default_connection.dup.update(:host => license.dbhost, :database => license.dbschema.to_s.downcase,
|
|
# :username => license.dbusername, :password => license.dbpassword)
|
|
# end
|
|
|
|
# def reconnect_default_db
|
|
# ActiveRecord::Base.establish_connection(Rails.env)
|
|
# end
|
|
|
|
# # Regular database.yml configuration hash
|
|
# def default_connection
|
|
# @default_config ||= ActiveRecord::Base.connection.instance_variable_get("@config").dup
|
|
# end
|
|
|
|
# def cache_license(url, lookup)
|
|
# @license = License.new(url, lookup)
|
|
|
|
# if (@license.detail_with_local_cache(lookup) == true)
|
|
# return @license
|
|
# else
|
|
# return nil
|
|
# end
|
|
# end
|
|
end
|