require "json" require 'sinatra/base' require "sinatra/json" require "providers/provider_factory" module Devops module API2_0 module Helpers include Sinatra::JSON 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 user = request.env['USER'] user.check_privileges(cmd, p) 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 insert_statistic msg=nil unless request.get? settings.mongo.insert_statistic request.env['REMOTE_USER'], request.path, request.request_method, @body_json, response.status end end end end end