class Seatsio::HttpClient
def delete(endpoint)
def delete(endpoint) execute(:delete, endpoint, {}) end
def execute(*args)
def execute(*args) begin headers = {:Authorization => "Basic #{@secret_key}"} unless @workspace_key.nil? headers[:'X-Workspace-Key'] = @workspace_key end if args[2].include? :params headers[:params] = args[2][:params] end #if args[2] != nil || args[0] == :post # headers[:params] = args[2] #end url = "#{@base_url}/#{args[1]}" request_options = {method: args[0], url: url, headers: headers} if args[0] == :post args[2].delete :params request_options[:payload] = args[2].to_json end response = RestClient::Request.execute(request_options) # If RAW if args[3] return response end JSON.parse(response) unless response.empty? rescue RestClient::NotFound => e raise Exception::NotFoundException.new(e.response) rescue RestClient::ExceptionWithResponse => e if e.response.include? "there is no page after" || e.response.empty? raise Exception::NoMorePagesException end raise Exception::SeatsioException.new(e.response) rescue RestClient::Exceptions::Timeout raise Exception::SeatsioException.new("Timeout ERROR") rescue SocketError raise Exception::SeatsioException.new("Failed to connect to backend") end end
def get(endpoint, params = {})
def get(endpoint, params = {}) payload = {:params => params} execute(:get, endpoint, payload) end
def get_raw(endpoint, params = {})
def get_raw(endpoint, params = {}) execute(:get, endpoint, params, true) end
def initialize(secret_key, workspace_key, base_url)
def initialize(secret_key, workspace_key, base_url) @secret_key = Base64.encode64(secret_key) @workspace_key = workspace_key @base_url = base_url end
def post(endpoint, payload = {})
def post(endpoint, payload = {}) execute(:post, endpoint, payload) end