class Xapixctl::PhoenixClient::OrganizationConnection

Attributes

org[R]

Public Class Methods

new(connection, org) click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 8
def initialize(connection, org)
  @connection = connection
  @client = connection.client
  @org = org
end

Public Instance Methods

apply(resource_description, &block) click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 26
def apply(resource_description, &block)
  result_handler(block).
    prepare_data(->(data) { data['resource_ids'] }).
    run { @client[generic_resource_path].put(resource_description.to_json, content_type: :json) }
end
delete(resource_type, resource_id, &block) click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 32
def delete(resource_type, resource_id, &block)
  result_handler(block).
    run { @client[resource_path(resource_type, resource_id)].delete }
end
resource(resource_type, resource_id, format: :hash, &block) click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 14
def resource(resource_type, resource_id, format: :hash, &block)
  result_handler(block).
    formatter(FORMATTERS[format]).
    run { @client[resource_path(resource_type, resource_id)].get }
end
resource_ids(resource_type, &block) click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 20
def resource_ids(resource_type, &block)
  result_handler(block).
    prepare_data(->(data) { data['resource_ids'] }).
    run { @client[resources_path(resource_type)].get }
end

Private Instance Methods

generic_resource_path() click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 51
def generic_resource_path
  "orgs/#{@org}/resource"
end
resource_path(type, id) click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 43
def resource_path(type, id)
  "/orgs/#{@org}/#{translate_type(type)}/#{id}"
end
resources_path(type) click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 47
def resources_path(type)
  "/orgs/#{@org}/#{translate_type(type)}"
end
result_handler(block) click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 39
def result_handler(block)
  @connection.result_handler(block)
end
translate_type(resource_type) click to toggle source
# File lib/xapixctl/phoenix_client/organization_connection.rb, line 55
def translate_type(resource_type)
  return 'ApiPublishingRole' if resource_type == 'ApiPublishing/Role'
  resource_type.sub(%r[/.*], '') # cut off everything after first slash
end