class PlaceOS::Model::Broker

Included Modules

Extended Modules

Defined in:

placeos-models/broker.cr

Constant Summary

CALLBACKS = {before_save: [] of Nil, after_save: [] of Nil, before_create: [do self.created_at = self.updated_at = Time.utc end] 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 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

reset_associations reset_associations

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, auth_type : PlaceOS::Model::Broker::AuthType | ActiveModel::Model::None = ::ActiveModel::Model::None.new, name : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, description : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, host : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, port : Int32 | ActiveModel::Model::None = ::ActiveModel::Model::None.new, tls : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, username : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, password : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, certificate : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, secret : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, filters : Array(String) | 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::Broker from HTTP::Params.


Class Method Detail

def self.attributes : Array(Symbol) #

Returns all attribute keys.


def self.auto_generate_id : Bool #

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.from_rs(__temp_822 : DB::ResultSet) #

def self.on_error(err : Exception | IO::Error) #

def self.primary_key : Symbol #

def self.table_name #

def self.validate_filters(broker : Broker) #

Validate broker's filter regexes


[View source]

Instance Method Detail

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 assign_attributes(created_at : Time | Missing = Missing, updated_at : Time | Missing = Missing, auth_type : PlaceOS::Model::Broker::AuthType | Missing = Missing, name : String | Missing = Missing, description : String | Missing = Missing, host : String | Missing = Missing, port : Int32 | Missing = Missing, tls : Bool | Missing = Missing, username : String | Nil | Missing = Missing, password : String | Nil | Missing = Missing, certificate : String | Nil | Missing = Missing, secret : String | Missing = Missing, filters : Array(String) | 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::Broker) #

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.


#auth_type getter


def auth_type=(value : PlaceOS::Model::Broker::AuthType) #

#auth_type setter


def auth_type? : PlaceOS::Model::Broker::AuthType | Nil #

def auth_type_assigned? : Bool #

def auth_type_change : Tuple(PlaceOS::Model::Broker::AuthType | Nil, PlaceOS::Model::Broker::AuthType | Nil) | Nil #

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


def auth_type_changed? : Bool #

def auth_type_default : AuthType #

#auth_type's default value


[View source]
def auth_type_present? : Bool #

def auth_type_was : PlaceOS::Model::Broker::AuthType | Nil #

def auth_type_will_change! : Nil #

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


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 certificate : String | Nil #

#certificate getter


def certificate=(value : String | Nil) #

#certificate setter


def certificate_assigned? : Bool #

def certificate_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 certificate_changed? : Bool #

def certificate_default : String | Nil #

#certificate's default value


[View source]
def certificate_present? : Bool #

def certificate_was : String | Nil | Nil #

def certificate_will_change! : Nil #

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


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 created_at : Time #

#created_at getter


def created_at=(value : Time) #

Setters #created_at setter


def created_at? : Time | Nil #

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 description : String #

#description getter


def description=(value : String) #

#description setter


def description? : String | Nil #

def description_assigned? : Bool #

def description_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 description_changed? : Bool #

def description_default : String #

#description's default value


[View source]
def description_present? : Bool #

def description_was : String | Nil #

def description_will_change! : Nil #

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


def filters : Array(String) #

#filters getter


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

#filters setter


def filters? : Array(String) | Nil #

Regex filters for sensitive data. Matches will be replaced with a hmac_256(secret, match).


def filters_assigned? : Bool #

def filters_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 filters_changed? : Bool #

def filters_default : Array(String) #

#filters's default value


[View source]
def filters_present? : Bool #

Regex filters for sensitive data. Matches will be replaced with a hmac_256(secret, match).


def filters_was : Array(String) | Nil #

def filters_will_change! : Nil #

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


def host : String #

#host getter


def host=(value : String) #

#host setter


def host? : String | Nil #

def host_assigned? : Bool #

def host_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 host_changed? : Bool #

def host_default : String #

#host's default value


[View source]
def host_present? : Bool #

def host_was : String | Nil #

def host_will_change! : Nil #

Include #host 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 invoke_props #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def name : String #

#name getter


def name=(value : String) #

#name setter


def name? : String | Nil #

def name_assigned? : Bool #

def name_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 name_changed? : Bool #

def name_default : String #

#name's default value


[View source]
def name_present? : Bool #

def name_was : String | Nil #

def name_will_change! : Nil #

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


def password : String | Nil #

#password getter


def password=(value : String | Nil) #

#password setter


def password_assigned? : Bool #

def password_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 password_changed? : Bool #

def password_default : String | Nil #

#password's default value


[View source]
def password_present? : Bool #

def password_was : String | Nil | Nil #

def password_will_change! : Nil #

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


def persistent_attributes #

Returns a Hash of all attributes that can be persisted.


def port : Int32 #

#port getter


def port=(value : Int32) #

#port setter


def port? : Int32 | Nil #

def port_assigned? : Bool #

def port_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 port_changed? : Bool #

def port_default : Int32 #

#port's default value


[View source]
def port_present? : Bool #

def port_was : Int32 | Nil #

def port_will_change! : Nil #

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


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 sanitize(payload : String) #

Hash sensitive data from a string using the document's #filters


[View source]
def secret : String #

#secret getter


def secret=(value : String) #

#secret setter


def secret? : String | Nil #

def secret_assigned? : Bool #

def 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 secret_changed? : Bool #

def secret_default : String #

#secret's default value


[View source]
def secret_present? : Bool #

def secret_was : String | Nil #

def secret_will_change! : Nil #

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


def table_name #

def tls : Bool #

#tls getter


def tls=(value : Bool) #

#tls setter


def tls? : Bool | Nil #

def tls_assigned? : Bool #

def tls_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 tls_changed? : Bool #

def tls_default : Bool #

#tls's default value


[View source]
def tls_present? : Bool #

def tls_was : Bool | Nil #

def tls_will_change! : Nil #

Include #tls 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 #

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 username : String | Nil #

#username getter


def username=(value : String | Nil) #

#username setter


def username_assigned? : Bool #

def username_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 username_changed? : Bool #

def username_default : String | Nil #

#username's default value


[View source]
def username_present? : Bool #

def username_was : String | Nil | Nil #

def username_will_change! : Nil #

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


def validate_nilability #

Validate that all non-nillable fields have values.