Sha256: 29c1ae568e08cd3ddbc8a84d29914f547e2888bd223ae63ef1eef01bf05e15b9
Contents?: true
Size: 1.45 KB
Versions: 3
Compression:
Stored size: 1.45 KB
Contents
require 'sinatra/base' require 'rubypitaya/core/parameters' module RubyPitaya class HttpRoutes < Sinatra::Base def self.auto_reload require 'sinatra/reloader' register ::Sinatra::Reloader end helpers do def find_template(views, name, engine, &block) views.each { |v| super(v, name, engine, &block) } end end before do content_type :json @bll = settings.bll @mongo = settings.mongo @setup = settings.setup @config = settings.config return error_unauthorized unless authorized?(request) @config.clear_cache if request.content_type == 'application/json' request_body = request.body.read @params.merge!(JSON.parse(request_body)) if !request_body.blank? end @params = Parameters.new(@params) end private def error_unauthorized return halt(401, 'Unauthorized') end def authorized?(request) return true unless http_auth_enabled? auth_token = request.env['HTTP_AUTHORIZATION'] return auth_token == get_http_auth end def http_auth_enabled? return @setup.fetch('rubypitaya.http.auth.enabled') { 'false' } == 'true' end def get_http_auth user = @setup.fetch('rubypitaya.http.auth.user') { '' } pass = @setup.fetch('rubypitaya.http.auth.pass') { '' } auth_token = ::Base64.strict_encode64("#{user}:#{pass}") return "Basic #{auth_token}" end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rubypitaya-2.25.0 | ./lib/rubypitaya/core/http_routes.rb |
rubypitaya-2.24.0 | ./lib/rubypitaya/core/http_routes.rb |
rubypitaya-2.23.0 | ./lib/rubypitaya/core/http_routes.rb |