class Mdm::Enrollment::Devices

Attributes

cursor[R]
devices[RW]
limit[RW]

Public Class Methods

accepted_params() click to toggle source
# File lib/mdm/enrollment/service/devices.rb, line 12
def self.accepted_params
  [:limit, :cursor]
end

Public Instance Methods

method() click to toggle source
# File lib/mdm/enrollment/service/devices.rb, line 38
def method
  :post
end
path() click to toggle source
# File lib/mdm/enrollment/service/devices.rb, line 16
def path
  '/server/devices'
end
result() click to toggle source
# File lib/mdm/enrollment/service/devices.rb, line 42
def result
  {
    devices: devices,
    cursor: cursor
  }
end
start() click to toggle source
Calls superclass method Mdm::Enrollment::Service::Base#start
# File lib/mdm/enrollment/service/devices.rb, line 20
def start
  params[:limit] = limit
  params[:cursor] = cursor.content

  super

  cursor.content, device_payloads, more_to_follow = client.extract_from_response(
    'cursor',
    'devices',
    'more_to_follow')

  create_or_update_devices(device_payloads)

  if cursor.save && more_to_follow
    start
  end
end

Private Instance Methods

create_or_update_device(device_payload) click to toggle source
# File lib/mdm/enrollment/service/devices.rb, line 71
def create_or_update_device(device_payload)
  Device.find_or_create_by(serial_number: device_payload['serial_number']) do |device|
    device.model = device_payload['model']
    device.description = device_payload['description']
    device.color = device_payload['color']
    device.asset_tag = device_payload['asset_tag']
    device.profile_status = device_payload['profile_status']
    device.profile_uuid = device_payload['profile_uuid']
    device.profile_assign_time = device_payload['profile_assign_time']
    device.profile_push_time = device_payload['profile_push_time']
    device.op_type = device_payload['op_type']
    device.op_date = device_payload['op_date']
    device.device_assigned_by = device_payload['device_assigned_by']
    device.device_assigned_date = device_payload['device_assigned_date']
  end
end
create_or_update_devices(device_payloads) click to toggle source
# File lib/mdm/enrollment/service/devices.rb, line 66
def create_or_update_devices(device_payloads)
  devices.concat device_payloads.map { |device_payload|
    create_or_update_device(device_payload) }
end