Class: Spaceship::ConnectAPI::Device

Inherits:
Object
  • Object
show all
Includes:
Model
Defined in:
spaceship/lib/spaceship/connect_api/models/device.rb

Defined Under Namespace

Modules: DeviceClass, Status

Instance Attribute Summary collapse

Attributes included from Model

#id, #reverse_attr_map

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Model

#attr_mapping, included, #initialize, #reverse_attr_mapping, #to_json, #update_attributes

Instance Attribute Details

#added_dateObject

Returns the value of attribute added_date.



13
14
15
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 13

def added_date
  @added_date
end

#device_classObject

Returns the value of attribute device_class.



7
8
9
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 7

def device_class
  @device_class
end

#modelObject

Returns the value of attribute model.



8
9
10
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 8

def model
  @model
end

#nameObject

Returns the value of attribute name.



9
10
11
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 9

def name
  @name
end

#platformObject

Returns the value of attribute platform.



10
11
12
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 10

def platform
  @platform
end

#statusObject

Returns the value of attribute status.



11
12
13
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 11

def status
  @status
end

#udidObject

Returns the value of attribute udid.



12
13
14
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 12

def udid
  @udid
end

Class Method Details

.all(client: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil) ⇒ Object

API



54
55
56
57
58
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 54

def self.all(client: nil, filter: {}, includes: nil, fields: nil, limit: nil, sort: nil)
  client ||= Spaceship::ConnectAPI
  resps = client.get_devices(filter: filter, includes: includes, fields: fields, limit: limit, sort: sort).all_pages
  return resps.flat_map(&:to_models)
end

.create(client: nil, name: nil, platform: nil, udid: nil) ⇒ Device

Returns Find a device based on the UDID of the device. nil if no device was found.

Parameters:

  • client (ConnectAPI) (defaults to: nil)

    ConnectAPI client.

  • name (String) (defaults to: nil)

    The name to be assigned to the device.

  • platform (String) (defaults to: nil)

    The platform of the device.

  • udid (String) (defaults to: nil)

    The udid of the device being created.

Returns:

  • (Device)

    Find a device based on the UDID of the device. nil if no device was found.



85
86
87
88
89
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 85

def self.create(client: nil, name: nil, platform: nil, udid: nil)
  client ||= Spaceship::ConnectAPI
  resp = client.post_device(name: name, platform: platform, udid: udid)
  return resp.to_models.first
end

.disable(device_udid, client: nil) ⇒ Device

Returns Modified device based on the UDID of the device. nil if no device was found.

Parameters:

  • device_udid (String)

    Device Provisioning UDID that needs to be disabled.

  • client (ConnectAPI) (defaults to: nil)

    ConnectAPI client.

Returns:

  • (Device)

    Modified device based on the UDID of the device. nil if no device was found.



120
121
122
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 120

def self.disable(device_udid, client: nil)
  self.modify(device_udid, client: client, enabled: false)
end

.enable(device_udid, client: nil) ⇒ Device

Returns Modified device based on the UDID of the device. nil if no device was found.

Parameters:

  • device_udid (String)

    Device Provisioning UDID that needs to be enabled.

  • client (ConnectAPI) (defaults to: nil)

    ConnectAPI client.

Returns:

  • (Device)

    Modified device based on the UDID of the device. nil if no device was found.



113
114
115
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 113

def self.enable(device_udid, client: nil)
  self.modify(device_udid, client: client, enabled: true)
end

.find_by_udid(device_udid, client: nil, include_disabled: false) ⇒ Device

Returns Find a device based on the UDID of the device. nil if no device was found.

Parameters:

  • client (ConnectAPI) (defaults to: nil)

    ConnectAPI client.

  • platform (String)

    The platform of the device.

  • include_disabled (Bool) (defaults to: false)

    Whether to include disable devices. false by default.

Returns:

  • (Device)

    Find a device based on the UDID of the device. nil if no device was found.



64
65
66
67
68
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 64

def self.find_by_udid(device_udid, client: nil, include_disabled: false)
  self.all(client: client).find do |device|
    device.udid.casecmp(device_udid) == 0 && (include_disabled ? true : device.enabled?)
  end
end

.find_or_create(device_udid, client: nil, name: nil, platform: nil) ⇒ Device

Returns Find a device based on the UDID of the device. If no device was found, nil if no device was found.

Parameters:

  • client (ConnectAPI) (defaults to: nil)

    ConnectAPI client.

  • name (String) (defaults to: nil)

    The name to be assigned to the device, if it needs to be created.

  • platform (String) (defaults to: nil)

    The platform of the device.

Returns:

  • (Device)

    Find a device based on the UDID of the device. If no device was found, nil if no device was found.



74
75
76
77
78
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 74

def self.find_or_create(device_udid, client: nil, name: nil, platform: nil)
  existing = self.find_by_udid(device_udid, client: client)
  return existing if existing
  return self.create(client: client, name: name, platform: platform, udid: device_udid)
end

.modify(device_udid, client: nil, enabled: nil, new_name: nil) ⇒ Device

Returns Modified device based on the UDID of the device. nil if no device was found.

Parameters:

  • device_udid (String)

    Device Provisioning UDID that needs to be modified.

  • client (ConnectAPI) (defaults to: nil)

    ConnectAPI client.

  • enabled (Boolean) (defaults to: nil)

    New enabled value. true - if device must be enabled, ‘false` - to disable device. nil if no status change needed.

  • new_name (String) (defaults to: nil)

    A new name for the device. nil if no name change needed.

Returns:

  • (Device)

    Modified device based on the UDID of the device. nil if no device was found.



96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 96

def self.modify(device_udid, client: nil, enabled: nil, new_name: nil)
  client ||= Spaceship::ConnectAPI
  existing = self.find_by_udid(device_udid, client: client, include_disabled: true)
  return nil if existing.nil?

  enabled = existing.enabled? if enabled.nil?
  new_name ||= existing.name
  return existing if existing.name == new_name && existing.enabled? == enabled
  new_status = enabled ? Status::ENABLED : Status::DISABLED

  resp = client.patch_device(id: existing.id, new_name: new_name, status: new_status)
  return resp.to_models.first
end

.rename(device_udid, new_name, client: nil) ⇒ Device

Returns Modified device based on the UDID of the device. nil if no device was found.

Parameters:

  • device_udid (String)

    Device Provisioning UDID that needs to be renamed.

  • new_name (String)

    A new name for the device.

  • client (ConnectAPI) (defaults to: nil)

    ConnectAPI client.

Returns:

  • (Device)

    Modified device based on the UDID of the device. nil if no device was found.



128
129
130
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 128

def self.rename(device_udid, new_name, client: nil)
  self.modify(device_udid, client: client, new_name: new_name)
end

.typeObject



42
43
44
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 42

def self.type
  return "devices"
end

Instance Method Details

#enabled?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'spaceship/lib/spaceship/connect_api/models/device.rb', line 46

def enabled?
  return status == Status::ENABLED
end