2018-10-18 19:44:03 -06:00
|
|
|
class BasePointSerializer < ApplicationSerializer
|
2018-10-18 20:54:25 -06:00
|
|
|
attributes :device_id, :name, :pointer_type, :meta, :x, :y, :z
|
2018-04-07 15:04:33 -06:00
|
|
|
|
2020-04-27 15:09:12 -06:00
|
|
|
# PROBLEM:
|
|
|
|
# * Users need a mutable way to mark a plant's creation time => `planted_at`
|
|
|
|
# * DB Admin needs to know the _real_ created_at time.
|
|
|
|
# * We can't change field names (or destroy data) that is in use by legacy devices
|
|
|
|
#
|
|
|
|
# SOLUTION:
|
|
|
|
# * Don't allow users to modify `created_at`
|
|
|
|
# * Provide `planted_at` if possible.
|
|
|
|
# * Always provide `planted_at` if it is available
|
|
|
|
# * Provide a read-only view of `created_at` if `planted_at` is `nil`
|
|
|
|
def planted_at
|
|
|
|
object.planted_at || object.created_at
|
|
|
|
end
|
|
|
|
|
|
|
|
def created_at
|
|
|
|
planted_at
|
|
|
|
end
|
|
|
|
|
2018-04-07 15:04:33 -06:00
|
|
|
def meta
|
|
|
|
object.meta || {}
|
|
|
|
end
|
|
|
|
end
|