require 'base64' require 'json' class QuandoraApi attr_accessor :domain, :username, :password def initialize domain, username, password @domain = domain @username = username @password = password end def base_url domain "https://#{domain}.quandora.com/m/json" end def auth_header username, password encoded = Base64.encode64 "#{username}:#{password}" {:Authorization => "Basic #{encoded.strip!}"} end def list_bases_url "#{base_url @domain}/kb" end def list_questions_url kb_id, limit url = "#{base_url @domain}/kb/#{kb_id}/list" url = "#{url}?l=#{limit}" if limit url end def request(url) JSON.parse(Excon.get(url, headers: auth_header(@username, @password))) end def list_bases response = request list_bases_url response['data'] end def list_questions kb_id, limit = nil url = list_questions_url(kb_id, limit) response = request url response['data']['result'] end def get_question question_id url = "#{base_url @domain}/q/#{question_id}" response = request url response['data'] end end