class DoceboRuby::API
Public Class Methods
new()
click to toggle source
# File lib/docebo_ruby/api.rb, line 8 def initialize @url = DoceboRuby.config.api_url @key = DoceboRuby.config.api_key @secret = DoceboRuby.config.api_secret end
Public Instance Methods
send_request(api, method, params) { |response| ... }
click to toggle source
# File lib/docebo_ruby/api.rb, line 14 def send_request(api, method, params, &block) raise ArgumentError.new('Please specify parameters') if params.nil? parameters = Parameters.new params options = request_options parameters url = rest_url api, method RestClient.post(url, params, options) do |raw_response| case raw_response.code when 200 response = parse_response raw_response if block_given? yield response else return response end when 404 raise NotFound.new(response) else raise RequestError.new(response) end end end
Protected Instance Methods
code(parameters)
click to toggle source
# File lib/docebo_ruby/api.rb, line 50 def code(parameters) codice = Digest::SHA1.hexdigest "#{parameters.to_s},#{@secret}" code = Base64.strict_encode64 "#{@key}:#{codice}" "Docebo #{code}" end
parse_response(raw_response)
click to toggle source
# File lib/docebo_ruby/api.rb, line 39 def parse_response(raw_response) JSON.parse(raw_response) end
request_options(parameters)
click to toggle source
# File lib/docebo_ruby/api.rb, line 56 def request_options(parameters) { content_type: :json, accept: :json, 'X-Authorization' => code(parameters) } end
rest_url(api, method)
click to toggle source
# File lib/docebo_ruby/api.rb, line 43 def rest_url(api, method) if api == '' || method == '' raise ArgumentError.new('You need to specify a module / method') end "#{@url}/#{api}/#{method}" end