class Ably::Rest::Push::DeviceRegistrations
Manage device registrations for push notifications
Attributes
@api private
@api private
Public Class Methods
Source
# File lib/ably/rest/push/device_registrations.rb, line 13 def initialize(admin) @admin = admin @client = admin.client end
Public Instance Methods
Source
# File lib/ably/rest/push/device_registrations.rb, line 26 def get(device_id) 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) DeviceDetails(client.get("/push/deviceRegistrations/#{device_id}").body) end
Get registered device by device ID
@spec RSH1b1
@param [String, Ably::Models::DeviceDetails
] device_id the device to retrieve
@return [Ably::Models::DeviceDetails] Returns {Ably::Models::DeviceDetails} if a match is found else a {Ably::Exceptions::ResourceMissing} is raised
Source
# File lib/ably/rest/push/device_registrations.rb, line 44 def list(params = {}) 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] params = params.clone paginated_options = { coerce_into: 'Ably::Models::DeviceDetails', async_blocking_operations: params.delete(:async_blocking_operations), } response = client.get('/push/deviceRegistrations', IdiomaticRubyWrapper(params).as_json) Ably::Models::PaginatedResult.new(response, '', client, paginated_options) end
List registered devices filtered by optional params
@spec RSH1b2
@param [Hash] params the filter options for the list registered device request @option params [String] :client_id filter by devices registered to a client identifier. Cannot be used with device_id
param @option params [String] :device_id filter by unique device ID. Cannot be used with client_id
param @option params [Integer] :limit maximum number of devices to retrieve up to 1,000, defaults to 100
@return [Ably::Models::PaginatedResult<Ably::Models::DeviceDetails>] Paginated list of matching {Ably::Models::DeviceDetails}
Source
# File lib/ably/rest/push/device_registrations.rb, line 85 def remove(device_id) 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) client.delete("/push/deviceRegistrations/#{device_id}", {}) end
Remove device
@spec RSH1b4
@param [String, Ably::Models::DeviceDetails
] device_id the device to remove
@return [void]
Source
# File lib/ably/rest/push/device_registrations.rb, line 102 def remove_where(params = {}) 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 client.delete("/push/deviceRegistrations", filter) end
Removes all devices registered to receive push notifications from Ably
matching the filter params provided.
@spec RSH1b5
@param [Hash] params the filter params for the remove request @option params [String] :client_id remove devices registered to a client identifier. Cannot be used with device_id
param @option params [String] :device_id remove device with this unique device ID. Cannot be used with client_id
param
@return [void]
Source
# File lib/ably/rest/push/device_registrations.rb, line 70 def save(device) device_details = DeviceDetails(device) raise ArgumentError, "Device ID is required yet is empty" if device_details.id.nil? || device_details == '' client.put("/push/deviceRegistrations/#{device_details.id}", device_details.as_json) end
Registers or updates a {Ably::Models::DeviceDetails} object with Ably
. Returns the new, or updated {Ably::Models::DeviceDetails} object.
@spec RSH1b3
@param [Ably::Models::DeviceDetails, Hash] device the device details to save
@return [void]