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
|
2015-09-17 13:15:19 +03:00
|
|
|
def insert_statistic msg=nil
|
2014-12-12 17:00:06 +03:00
|
|
|
unless request.get?
|
2015-09-17 13:15:19 +03:00
|
|
|
settings.mongo.insert_statistic request.env['REMOTE_USER'], request.path, request.request_method, @body_json, response.status
|
2014-12-12 17:00:06 +03:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|