class Ably::Realtime::Push::DeviceRegistrations

Manage device registrations for push notifications

Attributes

admin[R]

@api private

client[R]

@api private

Public Class Methods

new(admin) click to toggle source
# File lib/submodules/ably-ruby/lib/ably/realtime/push/device_registrations.rb, line 14
def initialize(admin)
  @admin = admin
  @client = admin.client
end

Public Instance Methods

get(device_id, &callback) click to toggle source

(see Ably::Rest::Push::DeviceRegistrations#get)

@yield Block is invoked when request succeeds @return [Ably::Util::SafeDeferrable]

# File lib/submodules/ably-ruby/lib/ably/realtime/push/device_registrations.rb, line 24
def get(device_id, &callback)
  device_id = device_id.id if device_id.kind_of?(Ably::Models::DeviceDetails)
  raise ArgumentError, "device_id must be a string or DeviceDetails object" unless device_id.kind_of?(String)

  async_wrap(callback) do
    rest_device_registrations.get(device_id)
  end
end
list(params = {}, &callback) click to toggle source

(see Ably::Rest::Push::DeviceRegistrations#list)

@yield Block is invoked when request succeeds @return [Ably::Util::SafeDeferrable]

# File lib/submodules/ably-ruby/lib/ably/realtime/push/device_registrations.rb, line 38
def list(params = {}, &callback)
  params = {} if params.nil?
  raise ArgumentError, "params must be a Hash" unless params.kind_of?(Hash)
  raise ArgumentError, "device_id filter cannot be specified alongside a client_id filter. Use one or the other" if params[:client_id] && params[:device_id]

  async_wrap(callback) do
    rest_device_registrations.list(params.merge(async_blocking_operations: true))
  end
end
remove(device_id, &callback) click to toggle source

(see Ably::Rest::Push::DeviceRegistrations#remove)

@yield Block is invoked when request succeeds @return [Ably::Util::SafeDeferrable]

# File lib/submodules/ably-ruby/lib/ably/realtime/push/device_registrations.rb, line 67
def remove(device_id, &callback)
  device_id = device_id.id if device_id.kind_of?(Ably::Models::DeviceDetails)
  raise ArgumentError, "device_id must be a string or DeviceDetails object" unless device_id.kind_of?(String)

  async_wrap(callback) do
    rest_device_registrations.remove(device_id)
  end
end
remove_where(params = {}, &callback) click to toggle source

(see Ably::Rest::Push::DeviceRegistrations#remove_where)

@yield Block is invoked when request succeeds @return [Ably::Util::SafeDeferrable]

# File lib/submodules/ably-ruby/lib/ably/realtime/push/device_registrations.rb, line 81
def remove_where(params = {}, &callback)
  filter = if params.kind_of?(Ably::Models::DeviceDetails)
    { 'deviceId' => params.id }
  else
    raise ArgumentError, "params must be a Hash" unless params.kind_of?(Hash)
    raise ArgumentError, "device_id filter cannot be specified alongside a client_id filter. Use one or the other" if params[:client_id] && params[:device_id]
    IdiomaticRubyWrapper(params).as_json
  end

  async_wrap(callback) do
    rest_device_registrations.remove_where(filter)
  end
end
save(device, &callback) click to toggle source

(see Ably::Rest::Push::DeviceRegistrations#save)

@yield Block is invoked when request succeeds @return [Ably::Util::SafeDeferrable]

# File lib/submodules/ably-ruby/lib/ably/realtime/push/device_registrations.rb, line 53
def save(device, &callback)
  device_details = DeviceDetails(device)
  raise ArgumentError, "Device ID is required yet is empty" if device_details.id.nil? || device_details == ''

  async_wrap(callback) do
    rest_device_registrations.save(device_details)
  end
end

Private Instance Methods

logger() click to toggle source
# File lib/submodules/ably-ruby/lib/ably/realtime/push/device_registrations.rb, line 100
def logger
  client.logger
end
rest_device_registrations() click to toggle source
# File lib/submodules/ably-ruby/lib/ably/realtime/push/device_registrations.rb, line 96
def rest_device_registrations
  client.rest_client.push.admin.device_registrations
end