class

PlaceOS::Model::TriggerInstance

Inherits PlaceOS::Model::Playlist::Checker < PlaceOS::Model::Timestamps < PlaceOS::Model::ModelBase < PlaceOS::Model::Associations < Neuroplastic < PgORM::Base < PgORM::Validators < PgORM::Table < PgORM::Persistence < PgORM::Associations < ActiveModel::Callbacks < ActiveModel::Validation < ActiveModel::Model < DB::Mappable < DB::Serializable < YAML::Serializable < JSON::Serializable < Reference < Object

Constants

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)
PRIMARY_KEY_TYPES = {:id => (String | Nil)} of Nil => Nil

macro level key => type

PRIMARY_KEYS = [{:id}]

Constructors

from_json(string_or_io : String | IO, trusted : Bool = false) : 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">
from_trusted_json(string_or_io : String | IO, root : String) : self
from_trusted_json(string_or_io : String | IO) : self

Serialize from a trusted JSON source

from_trusted_yaml(string_or_io : String | IO) : self

Serialize from a trusted YAML source

from_yaml(string_or_io : String | IO, trusted : Bool = false) : self
new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
Source
new(pull : JSON::PullParser)
Source
new(rs : DB::ResultSet)
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)
new(params : HTTP::Params | Hash(String, String) | Tuple(String, String))

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

Class methods

attributes

Returns all attribute keys.

by_control_system_id(id)

Look up instances of this model dependent on the foreign key

Source
by_trigger_id(id)

Look up instances of this model dependent on the foreign key

Source
by_zone_id(id)

Look up instances of this model dependent on the foreign key

Source
changes(id : String | Nil | Nil = 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.

elastic
for(control_system_id)

Look up TriggerInstances by ControlSystem

Source
from_rs(__temp_2582 : DB::ResultSet)
increment_trigger_count(id : String)

Increment the trigger_count of a TriggerInstance in place.

Source
of(trigger_id)

Look up TriggerInstances belonging to Trigger

Source
on_error(err : Exception | IO::Error)
primary_key

Base class for all Engine models

Source
table_name

Instance methods

__control_system
__control_system=(__control_system : ControlSystem | Nil)
__trigger
__trigger=(__trigger : Trigger | Nil)
__zone
__zone=(__zone : Zone | Nil)
actions

Proxies the parent Trigger's actions attribute.

Source
after_create

Base class for all Engine models

after_destroy

Base class for all Engine models

after_initialize(trusted : Bool)
after_save

Base class for all Engine models

after_update

Base class for all Engine models

apply_defaults

Generate code to apply default values

as_json

Override to_json, set method fields

Source
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.

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

Assign to multiple attributes via HTTP::Params.

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

Assign to multiple attributes from a model object

assign_attributes_from_json(json, root : String)
assign_attributes_from_json(json)
assign_attributes_from_trusted_json(json, root : String)
assign_attributes_from_trusted_json(json)

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

assign_attributes_from_trusted_yaml(yaml)
assign_attributes_from_yaml(yaml)

Uses the YAML parser as JSON is valid YAML

attributes

Returns a Hash of all attribute values

attributes_tuple

Returns a NamedTuple of all attribute values.

before_create

Base class for all Engine models

before_destroy

Base class for all Engine models

before_save

Base class for all Engine models

before_update

Base class for all Engine models

changed?

Check if any attributes have changed.

changed_attributes

Returns a Hash with all changed attributes.

changed_json(io : IO) : Nil

Serialize the set of changed attributes to JSON.

changed_json

Serialize the set of changed attributes to JSON.

changed_persist_attributes
changed_yaml(io : IO) : Nil

Serialize the set of changed attributes to YAML.

changed_yaml

Serialize the set of changed attributes to YAML.

clear_changes_information

Reset changes for all attributes.

conditions

Proxies the parent Trigger's conditions attribute.

Source
control_system

Retrieves the parent relationship

Source
control_system!
Source
control_system=(parent : ControlSystem)

Sets the parent relationship

Source
control_system_id

control_system_id getter

control_system_id=(value : String | Nil)

control_system_id setter

control_system_id_assigned?
control_system_id_change

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

control_system_id_changed?
control_system_id_default

control_system_id's default value

control_system_id_present?
control_system_id_removed?
control_system_id_was
control_system_id_will_change!

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

created_at

created_at getter

created_at=(value : Time)

Setters created_at setter

created_at?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

created_at_assigned?
created_at_change

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

created_at_changed?
created_at_default

created_at's default value

created_at_present?
created_at_removed?
created_at_was
created_at_will_change!

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

debounce_period

Proxies the parent Trigger's debounce_period attribute.

Source
description

Proxies the parent Trigger's description attribute.

Source
enabled

enabled getter

enabled=(value : Bool)

enabled setter

enabled?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

enabled_assigned?
enabled_change

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

enabled_changed?
enabled_default

enabled's default value

Source
enabled_present?
enabled_removed?
enabled_was
enabled_will_change!

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

exec_enabled

exec_enabled getter

exec_enabled=(value : Bool)

exec_enabled setter

exec_enabled?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

exec_enabled_assigned?
exec_enabled_change

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

exec_enabled_changed?
exec_enabled_default

exec_enabled's default value

Source
exec_enabled_present?
exec_enabled_removed?
exec_enabled_was
exec_enabled_will_change!

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

id

id getter

id=(value : String | Nil)

id setter

id?
id_assigned?
id_change

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

id_changed?
id_default

id's default value

id_present?
id_removed?
id_was
id_will_change!

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

important

important getter

important=(value : Bool)

important setter

important?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

important_assigned?
important_change

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

important_changed?
important_default

important's default value

Source
important_present?
important_removed?
important_was
important_will_change!

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

invoke_props

Base class for all Engine models

name

Proxies the parent Trigger's name attribute.

Source
persistent_attributes

Returns a Hash of all attributes that can be persisted.

playlists

playlists getter

playlists=(value : Array(String))

playlists setter

playlists?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

playlists_assigned?
playlists_change

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

playlists_changed?
playlists_default

playlists's default value

Source
playlists_present?
playlists_removed?
playlists_was
playlists_will_change!

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

primary_key

Base class for all Engine models

Source
primary_key_hash
reset_associations
Source
restore_attributes

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

start

Enables the trigger

Source
stop

Disables the trigger

Source
table_name
to_metadata_json(json : JSON::Builder)

Serialize attributes with :metadata in its serialization_group option

to_metadata_json(io : IO) : Nil

Serialize attributes with :metadata in its serialization_group option

to_metadata_json

Serialize attributes with :metadata in its serialization_group option

to_metadata_struct
trigger

Retrieves the parent relationship

Source
trigger!
Source
trigger=(parent : Trigger)

Sets the parent relationship

Source
trigger_count

trigger_count getter

trigger_count=(value : Int32)

trigger_count setter

trigger_count?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

trigger_count_assigned?
trigger_count_change

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

trigger_count_changed?
trigger_count_default

trigger_count's default value

Source
trigger_count_present?
trigger_count_removed?
trigger_count_was
trigger_count_will_change!

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

trigger_id

trigger_id getter

trigger_id=(value : String | Nil)

trigger_id setter

trigger_id_assigned?
trigger_id_change

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

trigger_id_changed?
trigger_id_default

trigger_id's default value

trigger_id_present?
trigger_id_removed?
trigger_id_was
trigger_id_will_change!

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

triggered

triggered getter

triggered=(value : Bool)

triggered setter

triggered?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

triggered_assigned?
triggered_change

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

triggered_changed?
triggered_default

triggered's default value

Source
triggered_present?
triggered_removed?
triggered_was
triggered_will_change!

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

updated_at

updated_at getter

updated_at=(value : Time)

updated_at setter

updated_at?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

updated_at_assigned?
updated_at_change

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

updated_at_changed?
updated_at_default

updated_at's default value

updated_at_present?
updated_at_removed?
updated_at_was
updated_at_will_change!

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

validate_nilability

Validate that all non-nillable fields have values.

webhook_secret

webhook_secret getter

webhook_secret=(value : String)

webhook_secret setter

webhook_secret?

NOTE: use getter / getter! (not property / property!) so that the setter defined later in __create_initializer__ is the only setter on the field. Crystal's overload resolution silently fails to replace a property-defined setter with one of identical signature for generic types (e.g. Set(String)?, Array(String)?, String | Array(String)), although it does work for non-generic ones like String?. Defining the setter only once via __create_initializer__ ensures change tracking, sanitization, and custom setter blocks run uniformly across all types.

webhook_secret_assigned?
webhook_secret_change

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

webhook_secret_changed?
webhook_secret_default

webhook_secret's default value

Source
webhook_secret_present?
webhook_secret_removed?
webhook_secret_was
webhook_secret_will_change!

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

zone

Retrieves the parent relationship

Source
zone!
Source
zone=(parent : Zone)

Sets the parent relationship

Source
zone_id

zone_id getter

zone_id=(value : String | Nil)

zone_id setter

zone_id_assigned?
zone_id_change

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

zone_id_changed?
zone_id_default

zone_id's default value

zone_id_present?
zone_id_removed?
zone_id_was
zone_id_will_change!

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

Nested types