class KakaxiParse::Timelapse

Constants

COLUMNS

Public Class Methods

new( id: nil, name: nil, created_at: nil, updated_at: nil, start_datetime: nil, end_datetime: nil, thumbnail_url: nil, url: nil, device_id: nil ) click to toggle source
Calls superclass method KakaxiParse::BaseModel::new
# File lib/kakaxi_parse/timelapse.rb, line 8
def initialize(
  id: nil,
  name: nil,
  created_at: nil,
  updated_at: nil,
  start_datetime: nil,
  end_datetime: nil,
  thumbnail_url: nil,
  url: nil,
  device_id: nil
  )

  @start_datetime = DateTime.iso8601(start_datetime)
  @end_datetime   = DateTime.iso8601(end_datetime)
  @thumbnail_url  = thumbnail_url
  @url            = url
  @device_id      = device_id

  super(id, name, updated_at, created_at)
end
short_name() click to toggle source
# File lib/kakaxi_parse/timelapse.rb, line 33
def self.short_name
  'timelapse'
end
where(hash, limit: DEFUALT_LIMIT) click to toggle source
Calls superclass method KakaxiParse::BaseModel::where
# File lib/kakaxi_parse/timelapse.rb, line 29
def self.where(hash, limit: DEFUALT_LIMIT)
  to_objects(super(self, hash, limit, @@belongs_to)) if valid_key?(hash)
end

Private Class Methods

to_objects(timelapses) click to toggle source
# File lib/kakaxi_parse/timelapse.rb, line 42
def self.to_objects(timelapses)
  timelapses.map do |timelapse|
    new(
      id: timelapse['objectId'],
      url: timelapse['videoURL'],
      thumbnail_url: timelapse['thumbnail'] && timelapse['thumbnail']['url'],
      device_id: timelapse['device'] && timelapse['device']['objectId'],
      start_datetime: timelapse['beginningTime'] && timelapse['beginningTime']['iso'],
      end_datetime: timelapse['endTime'] && timelapse['endTime']['iso'],
      updated_at: timelapse['updatedAt'],
      created_at: timelapse['createdAt']
    )
  end
end
valid_key?(hash) click to toggle source
# File lib/kakaxi_parse/timelapse.rb, line 38
def self.valid_key?(hash)
  hash.keys.all? { |key| COLUMNS.push(*%i(id name updated_at created_at)).include? key }
end