class PlaceOS::Model::TriggerInstance

Included Modules

Defined in:

placeos-models/trigger_instance.cr

Constant Summary

CALLBACKS = {before_save: [:check_playlists] of Nil, after_save: [] of Nil, before_create: [do self.created_at = self.updated_at = Time.utc end, :set_importance] of Nil, after_create: [] of Nil, before_update: [do self.updated_at = Time.utc end] of Nil, after_update: [] of Nil, before_destroy: [] of Nil, after_destroy: [] of Nil}
Log = ::Log.for(self)

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module PlaceOS::Model::Playlist::Checker

check_playlists check_playlists

Instance methods inherited from class PlaceOS::Model::ModelBase

after_create after_create, after_destroy after_destroy, after_save after_save, after_update after_update, apply_defaults apply_defaults, assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String))
assign_attributes(model : PlaceOS::Model::ModelBase)
assign_attributes
assign_attributes
, attributes attributes, attributes_tuple attributes_tuple, before_create before_create, before_destroy before_destroy, before_save before_save, before_update before_update, invoke_props invoke_props, persistent_attributes persistent_attributes, run_create_callbacks(&) run_create_callbacks, run_destroy_callbacks(&) run_destroy_callbacks, run_save_callbacks(&) run_save_callbacks, run_update_callbacks(&) run_update_callbacks

Constructor methods inherited from class PlaceOS::Model::ModelBase

new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
new(pull : JSON::PullParser)
new(rs : DB::ResultSet)
new

Class methods inherited from class PlaceOS::Model::ModelBase

attributes : Array(Symbol) attributes, auto_generate_id : Bool auto_generate_id, from_rs(rs : DB::ResultSet) from_rs, primary_key : Symbol primary_key

Instance methods inherited from module PlaceOS::Model::Associations

format_list_for_postgres(list : Enumerable(String)) : String format_list_for_postgres, reset_associations reset_associations

Class methods inherited from module PlaceOS::Model::Associations

format_list_for_postgres(list : Enumerable(String)) : String format_list_for_postgres

Macros inherited from module PlaceOS::Model::Associations

belongs_to(parent_class, dependent = :none, association_name = nil, foreign_key = nil, presence = false, pk_type = nil, serialize = true) belongs_to, has_many(child_class, collection_name = nil, dependent = :none, foreign_key = nil, serialize = false) has_many, has_one(child_class, dependent = :none, association_name = nil, presence = false) has_one

Constructor Detail

def self.from_json(string_or_io : String | IO, trusted : Bool = false) : self #

def self.from_json(string_or_io : String | IO, root : String, trusted : Bool = false) : self #

Deserializes the given JSON in string_or_io into an instance of self, assuming the JSON consists of an JSON object with key root, and whose value is the value to deserialize. Will not deserialise from fields with mass_assign: false

class User < ActiveModel::Model
  attribute name : String
  attribute google_id : UUID, mass_assign: false
end

User.from_json(%({"main": {"name": "Jason", "google_id": "f6f70bfb-c882-446d-8758-7ce47db39620"}}), root: "main") # => #<User:0x103131b20 @name="Jason">

def self.from_trusted_json(string_or_io : String | IO, root : String) : self #

def self.from_trusted_json(string_or_io : String | IO) : self #

Serialize from a trusted JSON source


def self.from_trusted_yaml(string_or_io : String | IO) : self #

Serialize from a trusted YAML source


def self.from_yaml(string_or_io : String | IO, trusted : Bool = false) : self #

def self.new(ctx : YAML::ParseContext, node : YAML::Nodes::Node) #

[View source]
def self.new(pull : JSON::PullParser) #

[View source]
def self.new(rs : DB::ResultSet) #

def self.new(created_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, updated_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, enabled : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, triggered : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, important : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, exec_enabled : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, playlists : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, webhook_secret : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, trigger_count : Int32 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, control_system_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, trigger_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, zone_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new) #

def self.new(params : HTTP::Params | Hash(String, String) | Tuple(String, String)) #

Initialize PlaceOS::Model::TriggerInstance from HTTP::Params.


Class Method Detail

def self.attributes : Array(Symbol) #

Returns all attribute keys.


def self.auto_generate_id : Bool #

def self.by_control_system_id(id) #

Look up instances of this model dependent on the foreign key


[View source]
def self.by_trigger_id(id) #

Look up instances of this model dependent on the foreign key


[View source]
def self.by_zone_id(id) #

Look up instances of this model dependent on the foreign key


[View source]
def self.changes(id : PrimaryKeyType = nil) : ChangeFeed #

Changefeed at row (if #id passed) or whole table level. Returns a ChangeFeed instance which can be used to invoke async callbacks via on or use blocking Iterator via each method.


def self.elastic #

def self.for(control_system_id) #

[View source]
def self.from_rs(__temp_1031 : DB::ResultSet) #

def self.increment_trigger_count(id : String) #

Increment the #trigger_count of a TriggerInstance in place.


[View source]
def self.of(trigger_id) #

Look up TriggerInstances belonging to Trigger


[View source]
def self.on_error(err : Exception | IO::Error) #

def self.primary_key : Symbol #

def self.table_name #

Instance Method Detail

def __control_system : ControlSystem | Nil #

def __control_system=(__control_system : ControlSystem | Nil) #

def __trigger : Trigger | Nil #

def __trigger=(__trigger : Trigger | Nil) #

def __zone : Zone | Nil #

def __zone=(__zone : Zone | Nil) #

def actions #

Proxies the parent Trigger's actions attribute.


[View source]
def after_create #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def after_destroy #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def after_initialize(trusted : Bool) #

def after_save #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def after_update #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def apply_defaults #

Generate code to apply default values


def as_json #

Override to_json, set method fields

DEPRECATED Use #to_metadata_json instead.


[View source]
def assign_attributes(created_at : Time | Missing = Missing, updated_at : Time | Missing = Missing, enabled : Bool | Missing = Missing, triggered : Bool | Missing = Missing, important : Bool | Missing = Missing, exec_enabled : Bool | Missing = Missing, playlists : Array(String) | Missing = Missing, webhook_secret : String | Missing = Missing, trigger_count : Int32 | Missing = Missing, control_system_id : String | Nil | Missing = Missing, trigger_id : String | Nil | Missing = Missing, zone_id : String | Nil | Missing = Missing, id : String | Nil | Missing = Missing) #

Assign to multiple attributes.


def assign_attributes(params : HTTP::Params | Hash(String, String) | Tuple(String, String)) #

Assign to mulitple attributes via HTTP::Params.


def assign_attributes(model : PlaceOS::Model::TriggerInstance) #

Assign to multiple attributes from a model object


def assign_attributes_from_json(json, root : String) #

def assign_attributes_from_json(json) #

def assign_attributes_from_trusted_json(json, root : String) #

def assign_attributes_from_trusted_json(json) #

Assign each field from JSON if field exists in JSON and has changed in model


def assign_attributes_from_trusted_yaml(yaml) #

def assign_attributes_from_yaml(yaml) #

Uses the YAML parser as JSON is valid YAML


def attributes #

Returns a Hash of all attribute values


def attributes_tuple #

Returns a NamedTuple of all attribute values.


def before_create #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def before_destroy #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def before_save #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def before_update #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def changed? #

Check if any attributes have changed.


def changed_attributes #

Returns a Hash with all changed attributes.


def changed_json(io : IO) : Nil #

Serialize the set of changed attributes to JSON.


def changed_json : String #

Serialize the set of changed attributes to JSON.


def changed_persist_attributes #

def changed_yaml(io : IO) : Nil #

Serialize the set of changed attributes to YAML.


def changed_yaml : String #

Serialize the set of changed attributes to YAML.


def clear_changes_information #

Reset changes for all attributes.


def conditions #

Proxies the parent Trigger's conditions attribute.


[View source]
def control_system : ControlSystem | Nil #

Retrieves the parent relationship


[View source]
def control_system! : ControlSystem #

[View source]
def control_system=(parent : ControlSystem) #

Sets the parent relationship


[View source]
def control_system_id : String | Nil #

def control_system_id=(value : String | Nil) #

def control_system_id_assigned? : Bool #

def control_system_id_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def control_system_id_changed? : Bool #

def control_system_id_default : String | Nil #

#control_system_id's default value


def control_system_id_present? : Bool #

def control_system_id_was : String | Nil | Nil #

def control_system_id_will_change! : Nil #

Include #control_system_id in the set of changed attributes, whether it has changed or not.


def created_at : Time #

#created_at getter


def created_at=(value : Time) #

Setters #created_at setter


def created_at? : Time | Nil #

Assign instance variable to correct type


def created_at_assigned? : Bool #

def created_at_change : Tuple(Time | Nil, Time | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def created_at_changed? : Bool #

def created_at_default : Time #

#created_at's default value


def created_at_present? : Bool #

def created_at_was : Time | Nil #

def created_at_will_change! : Nil #

Include #created_at in the set of changed attributes, whether it has changed or not.


def debounce_period #

Proxies the parent Trigger's debounce_period attribute.


[View source]
def description #

Proxies the parent Trigger's description attribute.


[View source]
def enabled : Bool #

#enabled getter


def enabled=(value : Bool) #

#enabled setter


def enabled? : Bool | Nil #

Assign instance variable to correct type


def enabled_assigned? : Bool #

def enabled_change : Tuple(Bool | Nil, Bool | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def enabled_changed? : Bool #

def enabled_default : Bool #

#enabled's default value


[View source]
def enabled_present? : Bool #

def enabled_was : Bool | Nil #

def enabled_will_change! : Nil #

Include #enabled in the set of changed attributes, whether it has changed or not.


def exec_enabled : Bool #

#exec_enabled getter


def exec_enabled=(value : Bool) #

#exec_enabled setter


def exec_enabled? : Bool | Nil #

Assign instance variable to correct type


def exec_enabled_assigned? : Bool #

def exec_enabled_change : Tuple(Bool | Nil, Bool | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def exec_enabled_changed? : Bool #

def exec_enabled_default : Bool #

#exec_enabled's default value


[View source]
def exec_enabled_present? : Bool #

def exec_enabled_was : Bool | Nil #

def exec_enabled_will_change! : Nil #

Include #exec_enabled in the set of changed attributes, whether it has changed or not.


def id : String | Nil #

#id getter


def id=(value : String | Nil) #

#id setter


def id? : String | Nil | Nil #
Description copied from class PgORM::Base

Same as #id but may return nil when the record hasn't been saved instead of raising.


def id_assigned? : Bool #

def id_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def id_changed? : Bool #

def id_default : String | Nil #

#id's default value


def id_present? : Bool #

def id_was : String | Nil | Nil #

def id_will_change! : Nil #

Include #id in the set of changed attributes, whether it has changed or not.


def important : Bool #

#important getter


def important=(value : Bool) #

#important setter


def important? : Bool | Nil #

Assign instance variable to correct type


def important_assigned? : Bool #

def important_change : Tuple(Bool | Nil, Bool | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def important_changed? : Bool #

def important_default : Bool #

#important's default value


[View source]
def important_present? : Bool #

def important_was : Bool | Nil #

def important_will_change! : Nil #

Include #important in the set of changed attributes, whether it has changed or not.


def invoke_props #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def name #

Proxies the parent Trigger's name attribute.


[View source]
def persistent_attributes #

Returns a Hash of all attributes that can be persisted.


def playlists : Array(String) #

#playlists getter


def playlists=(value : Array(String)) #

#playlists setter


def playlists? : Array(String) | Nil #

Assign instance variable to correct type


def playlists_assigned? : Bool #

def playlists_change : Tuple(Array(String) | Nil, Array(String) | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def playlists_changed? : Bool #

def playlists_default : Array(String) #

#playlists's default value


[View source]
def playlists_present? : Bool #

def playlists_was : Array(String) | Nil #

def playlists_will_change! : Nil #

Include #playlists in the set of changed attributes, whether it has changed or not.


def reset_associations #

[View source]
def restore_attributes #

Reset each attribute to their previous values and clears all changes.


def run_create_callbacks(&) #

Wrap a block with callbacks for the appropriate crud operation


[View source]
def run_destroy_callbacks(&) #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def run_save_callbacks(&) #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def run_update_callbacks(&) #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


[View source]
def start #

Enables the trigger


[View source]
def stop #

Disables the trigger


[View source]
def table_name #

def to_metadata_json(json : JSON::Builder) #

Serialize attributes with :metadata in its serialization_group option


def to_metadata_json(io : IO) : Nil #

Serialize attributes with :metadata in its serialization_group option


def to_metadata_json : String #

Serialize attributes with :metadata in its serialization_group option


def to_metadata_struct #

def trigger : Trigger | Nil #

Retrieves the parent relationship


[View source]
def trigger! : Trigger #

[View source]
def trigger=(parent : Trigger) #

Sets the parent relationship


[View source]
def trigger_count : Int32 #

def trigger_count=(value : Int32) #

def trigger_count? : Int32 | Nil #

Assign instance variable to correct type


def trigger_count_assigned? : Bool #

def trigger_count_change : Tuple(Int32 | Nil, Int32 | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def trigger_count_changed? : Bool #

def trigger_count_default : Int32 #

#trigger_count's default value


[View source]
def trigger_count_present? : Bool #

def trigger_count_was : Int32 | Nil #

def trigger_count_will_change! : Nil #

Include #trigger_count in the set of changed attributes, whether it has changed or not.


def trigger_id : String | Nil #

#trigger_id getter


def trigger_id=(value : String | Nil) #

#trigger_id setter


def trigger_id_assigned? : Bool #

def trigger_id_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def trigger_id_changed? : Bool #

def trigger_id_default : String | Nil #

#trigger_id's default value


def trigger_id_present? : Bool #

def trigger_id_was : String | Nil | Nil #

def trigger_id_will_change! : Nil #

Include #trigger_id in the set of changed attributes, whether it has changed or not.


def triggered : Bool #

#triggered getter


def triggered=(value : Bool) #

#triggered setter


def triggered? : Bool | Nil #

Assign instance variable to correct type


def triggered_assigned? : Bool #

def triggered_change : Tuple(Bool | Nil, Bool | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def triggered_changed? : Bool #

def triggered_default : Bool #

#triggered's default value


[View source]
def triggered_present? : Bool #

def triggered_was : Bool | Nil #

def triggered_will_change! : Nil #

Include #triggered in the set of changed attributes, whether it has changed or not.


def updated_at : Time #

#updated_at getter


def updated_at=(value : Time) #

#updated_at setter


def updated_at? : Time | Nil #

Assign instance variable to correct type


def updated_at_assigned? : Bool #

def updated_at_change : Tuple(Time | Nil, Time | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def updated_at_changed? : Bool #

def updated_at_default : Time #

#updated_at's default value


def updated_at_present? : Bool #

def updated_at_was : Time | Nil #

def updated_at_will_change! : Nil #

Include #updated_at in the set of changed attributes, whether it has changed or not.


def validate_nilability #

Validate that all non-nillable fields have values.


def webhook_secret : String #

def webhook_secret=(value : String) #

def webhook_secret? : String | Nil #

Assign instance variable to correct type


def webhook_secret_assigned? : Bool #

def webhook_secret_change : Tuple(String | Nil, String | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def webhook_secret_changed? : Bool #

def webhook_secret_default : String #

#webhook_secret's default value


[View source]
def webhook_secret_present? : Bool #

def webhook_secret_was : String | Nil #

def webhook_secret_will_change! : Nil #

Include #webhook_secret in the set of changed attributes, whether it has changed or not.


def zone : Zone | Nil #

Retrieves the parent relationship


[View source]
def zone! : Zone #

[View source]
def zone=(parent : Zone) #

Sets the parent relationship


[View source]
def zone_id : String | Nil #

#zone_id getter


def zone_id=(value : String | Nil) #

#zone_id setter


def zone_id_assigned? : Bool #

def zone_id_change : Tuple(String | Nil | Nil, String | Nil | Nil) | Nil #

Returns a Tuple of the previous and the current value of an instance variable if it has changed


def zone_id_changed? : Bool #

def zone_id_default : String | Nil #

#zone_id's default value


def zone_id_present? : Bool #

def zone_id_was : String | Nil | Nil #

def zone_id_will_change! : Nil #

Include #zone_id in the set of changed attributes, whether it has changed or not.