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