class KakaxiParse::KakaxiDevice

Constants

COLUMNS

Public Class Methods

new( id: nil, name: nil, carrier_name: nil, iccid: nil, camera_finish_hour: nil, camera_start_hour: nil, imei: nil, camera_interval: nil, udid: nil, battery: nil, upload_start_hour: nil, beacon_minor: nil, scfg: nil, status: nil, avatar_type: nil, auto_post_interval: nil, beacon_major: nil, coordinates: nil, tzoffset: nil, camera_quality: nil, imsi: nil, tel: nil, serial_number: nil, farm_id: nil, updated_at: nil, created_at: nil ) click to toggle source
Calls superclass method KakaxiParse::BaseModel::new
# File lib/kakaxi_parse/kakaxi_device.rb, line 12
def initialize(
      id: nil,
      name: nil,
      carrier_name: nil,
      iccid: nil,
      camera_finish_hour: nil,
      camera_start_hour: nil,
      imei: nil,
      camera_interval: nil,
      udid: nil,
      battery: nil,
      upload_start_hour: nil,
      beacon_minor: nil,
      scfg: nil,
      status: nil,
      avatar_type: nil,
      auto_post_interval: nil,
      beacon_major: nil,
      coordinates: nil,
      tzoffset: nil,
      camera_quality: nil,
      imsi: nil,
      tel: nil,
      serial_number: nil,
      farm_id: nil,
      updated_at: nil,
      created_at: nil
    )
   @carrier_name = carrier_name
   @iccid = iccid
   @camera_finish_hour = camera_finish_hour
   @camera_start_hour = camera_start_hour
   @imei = imei
   @camera_interval = camera_interval
   @udid = udid
   @battery = battery
   @upload_start_hour = upload_start_hour
   @beacon_minor = beacon_minor
   @scfg = scfg
   @status = status
   @avatar_type = avatar_type
   @auto_post_interval = auto_post_interval
   @beacon_major = beacon_major
   @coordinates = coordinates
   @tzoffset = tzoffset
   @camera_quality = camera_quality
   @imsi = imsi
   @tel = tel
   @serial_number = serial_number
   @farm_id = farm_id
   super(id, name, updated_at, created_at)
end
reference_name() click to toggle source
# File lib/kakaxi_parse/kakaxi_device.rb, line 73
def self.reference_name
  'devices'
end
short_name() click to toggle source
# File lib/kakaxi_parse/kakaxi_device.rb, line 69
def self.short_name
  'device'
end
where(hash, limit: DEFUALT_LIMIT) click to toggle source
Calls superclass method KakaxiParse::BaseModel::where
# File lib/kakaxi_parse/kakaxi_device.rb, line 65
def self.where(hash, limit: DEFUALT_LIMIT)
  to_objects(super(self, validate_params(hash), limit, @@belongs_to, @@related_to)) if valid_key?(hash)
end

Private Class Methods

hour_to_time(params) click to toggle source
# File lib/kakaxi_parse/kakaxi_device.rb, line 99
def self.hour_to_time(params)
  %i(camera_finish_hour camera_start_hour upload_start_hour).each { |hour| BaseModel.replace_key(params, hour, hour.to_s.gsub(/hour/, 'time').to_sym) }
  params
end
to_objects(devices) click to toggle source
# File lib/kakaxi_parse/kakaxi_device.rb, line 117
def self.to_objects(devices)
  devices.map do |device|
    new(
      id: device['objectId'],
      name: device['name'],
      updated_at: device['updatedAt'],
      created_at: device['createdAt'],
      farm_id: device['farm'] && device['farm']['objectId'],
      carrier_name: device['carrierName'],
      iccid: device['ICCID'],
      camera_finish_hour: device['cameraFinishTime'],
      camera_start_hour: device['cameraStartTime'],
      imei: device['IMEI'],
      camera_interval: device['cameraInterval'],
      udid: device['udid'],
      battery: device['battery'],
      upload_start_hour: device['uploadStartTime'],
      beacon_minor: device['beaconMinor'],
      scfg: device['scfg'],
      status: device['status'],
      avatar_type: device['avatarType'],
      auto_post_interval: device['autoPostInterval'],
      beacon_major: device['beaconMajor'],
      coordinates: device['coordinate'] && Datatype::GeoPoint.new(device['coordinate']['latitude'], device['coordinate']['longitude']),
      tzoffset: device['tzoffset'],
      camera_quality: device['cameraQuality'],
      imsi: device['IMSI'],
      tel: device['tel'],
      serial_number: device['serialNumber'] || device['serialnumber'],
    )
  end
end
valid_key?(hash) click to toggle source
# File lib/kakaxi_parse/kakaxi_device.rb, line 113
def self.valid_key?(hash)
  hash.keys.all? { |key| COLUMNS.push(*%i(id name updated_at created_at)).include? key }
end
validate_params(params) click to toggle source
# File lib/kakaxi_parse/kakaxi_device.rb, line 104
def self.validate_params(params)
  params = hour_to_time(params)
  if params.has_key? :coordinates
    params = replace_key(params, :coordinates, :coordinate)
    params[:coordinate] = params[:coordinate].to_hash
  end
  params
end

Public Instance Methods

farm() click to toggle source
# File lib/kakaxi_parse/kakaxi_device.rb, line 77
def farm
  Farm.find(farm_id: farm_id)
end
save() click to toggle source
Calls superclass method KakaxiParse::BaseModel#save
# File lib/kakaxi_parse/kakaxi_device.rb, line 81
def save
  params = COLUMNS.push(:name).each_with_object({}) do |column, params|
    params[column] = self.send(column) unless self.send(column).nil?
  end
  id ? false : super(self, params, @@belongs_to)
end
update(params) click to toggle source
Calls superclass method KakaxiParse::BaseModel#update
# File lib/kakaxi_parse/kakaxi_device.rb, line 88
def update(params)
  original_params = build_original_params(params)
  if super(self, KakaxiDevice.validate_params(params), @@belongs_to)
    original_params.each { |key, value| self.send("#{key}=", value) }
    true
  else
    false
  end
end