fluke/devops-service/app/api2/helpers/version_2.rb

47 lines
1.1 KiB
Ruby
Raw Normal View History

2014-12-12 17:00:06 +03:00
require "json"
require 'sinatra/base'
require "sinatra/json"
require "providers/provider_factory"
2014-12-15 14:26:54 +03:00
module Devops
2015-07-16 17:18:55 +03:00
module API2_0
2014-12-12 17:00:06 +03:00
module Helpers
2015-08-03 15:09:04 +03:00
include Sinatra::JSON
2014-12-12 17:00:06 +03:00
def create_response msg, obj=nil, rstatus=200
logger.info(msg)
status rstatus
obj = {} if obj.nil?
obj[:message] = msg
json(obj)
end
def halt_response msg, rstatus=400
obj = {:message => msg}
halt(rstatus, json(obj))
end
def check_privileges cmd, p
2015-07-16 17:18:55 +03:00
user = request.env['USER']
user.check_privileges(cmd, p)
2014-12-12 17:00:06 +03:00
end
def check_provider provider
list = ::Provider::ProviderFactory.providers
halt_response("Invalid provider '#{provider}', available providers: '#{list.join("', '")}'", 404) unless list.include?(provider)
end
# Save information about requests with methods POST, PUT, DELETE
def statistic msg=nil
unless request.get?
settings.mongo.statistic request.env['REMOTE_USER'], request.path, request.request_method, @body_json, response.status
end
end
end
end
end