class Tanker::Admin

Public Class Methods

new(admin_url:, api_url:, trustchain_url:, id_token:) click to toggle source
# File lib/tanker/admin.rb, line 11
def initialize(admin_url:, api_url:, trustchain_url:, id_token:)
  @admin_url = admin_url
  @id_token = id_token
  @api_url = api_url
  @trustchain_url = trustchain_url
end

Public Instance Methods

app_update(app_id, app_update_options) click to toggle source
# File lib/tanker/admin.rb, line 45
def app_update(app_id, app_update_options)
  assert_connected
  CAdmin.tanker_admin_app_update(@cadmin, app_id, app_update_options).get
end
connect() click to toggle source

Authenticate to the Tanker admin server API This must be called before doing any other operation

# File lib/tanker/admin.rb, line 20
def connect
  @cadmin = CAdmin.tanker_admin_connect(@admin_url, @id_token).get
  cadmin_addr = @cadmin.address
  ObjectSpace.define_finalizer(@cadmin) do |_|
    CAdmin.tanker_admin_destroy(FFI::Pointer.new(:void, cadmin_addr)).get
  end
end
create_app(name) click to toggle source
# File lib/tanker/admin.rb, line 28
def create_app(name)
  assert_connected
  descriptor_ptr = CAdmin.tanker_admin_create_app(@cadmin, name).get
  descriptor = CAdmin::CAppDescriptor.new(descriptor_ptr)
  App.new(
    trustchain_url: @trustchain_url,
    id: descriptor[:id],
    auth_token: descriptor[:auth_token],
    private_key: descriptor[:private_key]
  )
end
delete_app(app_id) click to toggle source
# File lib/tanker/admin.rb, line 40
def delete_app(app_id)
  assert_connected
  CAdmin.tanker_admin_delete_app(@cadmin, app_id).get
end

Private Instance Methods

assert_connected() click to toggle source
# File lib/tanker/admin.rb, line 52
def assert_connected
  raise 'You need to connect() before using the admin API!' if @cadmin.nil?
end