module Aircall::Connection
Attributes
aircall[R]
Public Class Methods
new(aircall)
click to toggle source
# File lib/aircall/connection.rb, line 7 def initialize(aircall) @aircall = aircall end
Public Instance Methods
get_method_arguments(ext_binding)
click to toggle source
# File lib/aircall/connection.rb, line 36 def get_method_arguments(ext_binding) raise ArgumentError, "Binding expected, #{ext_binding.class.name} given" unless ext_binding.is_a?(Binding) method_name = ext_binding.eval("__method__") ext_binding.receiver.method(method_name).parameters.map do |_, name| [name, ext_binding.local_variable_get(name)] end.to_h end
require_settings(required)
click to toggle source
# File lib/aircall/connection.rb, line 11 def require_settings(required) required.each do |setting| raise "Required setting #{setting} is missing." unless aircall.send(setting) end end
Private Instance Methods
construct_request_with_arguments(base_request, ext_binding)
click to toggle source
La requete se construit selon le nom et la valeur des arguments passés à la fonction
# File lib/aircall/connection.rb, line 45 def construct_request_with_arguments(base_request, ext_binding) request = base_request.concat("?") get_method_arguments(ext_binding).each do |arg_name, arg_value| if !arg_value.nil? request.concat(arg_name.to_s).concat("=").concat(arg_value.to_s).concat("&") end end # Suppression du dernier "&" request[0..-2] end
get(path)
click to toggle source
# File lib/aircall/connection.rb, line 26 def get(path) url = "https://api.aircall.io/v1#{path}" response = HTTParty.get( url, basic_auth: { username: aircall.id, password: aircall.token } ) parse(response) end
parse(result)
click to toggle source
# File lib/aircall/connection.rb, line 17 def parse(result) parsed = JSON.parse result.body if parsed.kind_of? Hash and parsed['status'] and parsed['status'] == 'failure' raise Error.new(parsed['error']) end parsed end