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