class Xapixctl::PhoenixClient::Connection

Constants

DEFAULT_CLIENT_OPTS

Attributes

client[R]
xapix_url[R]

Public Class Methods

new(url, token, default_success_handler, default_error_handler, logging) click to toggle source
# File lib/xapixctl/phoenix_client/connection.rb, line 10
def initialize(url, token, default_success_handler, default_error_handler, logging)
  @xapix_url = url
  client_opts = DEFAULT_CLIENT_OPTS.deep_merge(headers: { Authorization: "Bearer #{token}" })
  client_opts.merge!(log: RestClient.create_log(logging)) if logging
  @client = RestClient::Resource.new(File.join(url, 'api/v1'), client_opts)
  @default_success_handler = default_success_handler
  @default_error_handler = default_error_handler
end

Public Instance Methods

available_resource_types(&block) click to toggle source
# File lib/xapixctl/phoenix_client/connection.rb, line 23
def available_resource_types(&block)
  @available_resource_types ||= begin
    result_handler(block).
      prepare_data(->(data) { data['resource_types'].freeze }).
      run { @client[resource_types_path].get }
  end
end
on_error(&block) click to toggle source
# File lib/xapixctl/phoenix_client/connection.rb, line 21
def on_error(&block); @default_error_handler = block; self; end
on_success(&block) click to toggle source
# File lib/xapixctl/phoenix_client/connection.rb, line 19
def on_success(&block); @default_success_handler = block; self; end
organization(org) click to toggle source
# File lib/xapixctl/phoenix_client/connection.rb, line 31
def organization(org)
  OrganizationConnection.new(self, org)
end
project(org:, project:) click to toggle source
# File lib/xapixctl/phoenix_client/connection.rb, line 35
def project(org:, project:)
  ProjectConnection.new(self, org, project)
end
result_handler(block) click to toggle source
# File lib/xapixctl/phoenix_client/connection.rb, line 39
def result_handler(block)
  ResultHandler.new(default_success_handler: @default_success_handler, default_error_handler: @default_error_handler, &block)
end

Private Instance Methods

resource_types_path() click to toggle source
# File lib/xapixctl/phoenix_client/connection.rb, line 45
def resource_types_path
  "/resource_types"
end