class

PlaceOS::Model::DoorkeeperApplication

Inherits PlaceOS::Model::Timestamps < PlaceOS::Model::Scope < PlaceOS::Model::Associations < PlaceOS::Model::ModelWithAutoKey < 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: [:generate_uid] of Nil, after_save: [] of Nil, before_create: [:generate_secret, 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)
PRIMARY_KEY_TYPES = {:id => (Int64 | 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(rs : DB::ResultSet)
new(name : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, secret : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, scopes : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, owner_id : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, redirect_uri : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, confidential : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, skip_authorization : Bool | ActiveModel::Model::None = ::ActiveModel::Model::None.new, subsystems : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, uid : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, id : Int64 | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, created_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new, updated_at : Time | ActiveModel::Model::None = ::ActiveModel::Model::None.new)

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

Class methods

attributes

Returns all attribute keys.

changes(id : Int64 | 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
from_rs(__temp_2347 : DB::ResultSet)
on_error(err : Exception | IO::Error)
primary_key

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

Source
table_name

Instance methods

after_create

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

after_destroy

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

after_initialize(trusted : Bool)
after_save

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

after_update

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

apply_defaults

Generate code to apply default values

assign_attributes(name : String | Missing = Missing, secret : String | Missing = Missing, scopes : String | Missing = Missing, owner_id : String | Missing = Missing, redirect_uri : String | Missing = Missing, confidential : Bool | Missing = Missing, skip_authorization : Bool | Missing = Missing, subsystems : Array(String) | Missing = Missing, uid : String | Missing = Missing, id : Int64 | Nil | Missing = Missing, created_at : Time | Missing = Missing, updated_at : Time | 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::DoorkeeperApplication)

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 models which have auto-generated bigint as pk and doesn't require string based auto generated pk

before_destroy

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

before_save

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

before_update

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

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.

confidential

confidential getter

confidential=(value : Bool)

confidential setter

confidential?

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.

confidential_assigned?
confidential_change

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

confidential_changed?
confidential_default

confidential's default value

Source
confidential_present?
confidential_removed?
confidential_was
confidential_will_change!

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

created_at

created_at getter

created_at=(value : Time)

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.

id

id getter

id=(value : Int64 | 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.

invoke_props

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

name

name getter

name=(value : String)

Setters name setter

name?

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.

name_assigned?
name_change

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

name_changed?
name_default

name's default value

Source
name_present?
name_removed?
name_was
name_will_change!

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

owner_id

owner_id getter

owner_id=(value : String)

owner_id setter

owner_id?

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.

owner_id_assigned?
owner_id_change

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

owner_id_changed?
owner_id_default

owner_id's default value

Source
owner_id_present?
owner_id_removed?
owner_id_was
owner_id_will_change!

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

persistent_attributes

Returns a Hash of all attributes that can be persisted.

primary_key

Base class for all models which have auto-generated bigint as pk and doesn't require string based auto generated pk

Source
primary_key_hash
redirect_uri

redirect_uri getter

redirect_uri=(value : String)

redirect_uri setter

redirect_uri?

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.

redirect_uri_assigned?
redirect_uri_change

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

redirect_uri_changed?
redirect_uri_default

redirect_uri's default value

Source
redirect_uri_present?
redirect_uri_removed?
redirect_uri_was
redirect_uri_will_change!

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

restore_attributes

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

scopes

scopes getter

scopes=(value : String)

scopes setter

scopes?

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.

scopes_assigned?
scopes_change

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

scopes_changed?
scopes_default

scopes's default value

Source
scopes_present?
scopes_removed?
scopes_was
scopes_will_change!

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

secret

secret getter

secret=(value : String)

secret setter

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.

secret_assigned?
secret_change

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

secret_changed?
secret_default

secret's default value

Source
secret_present?
secret_removed?
secret_was
secret_will_change!

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

skip_authorization

skip_authorization getter

skip_authorization=(value : Bool)

skip_authorization setter

skip_authorization?

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.

skip_authorization_assigned?
skip_authorization_change

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

skip_authorization_changed?
skip_authorization_default

skip_authorization's default value

Source
skip_authorization_present?
skip_authorization_removed?
skip_authorization_was
skip_authorization_will_change!

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

subsystems

subsystems getter

subsystems=(value : Array(String))

subsystems setter

subsystems?

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.

subsystems_assigned?
subsystems_change

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

subsystems_changed?
subsystems_default

subsystems's default value

Source
subsystems_present?
subsystems_removed?
subsystems_was
subsystems_will_change!

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

table_name
uid

uid getter

uid=(value : String)

uid setter

uid?

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.

uid_assigned?
uid_change

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

uid_changed?
uid_default

uid's default value

Source
uid_present?
uid_removed?
uid_was
uid_will_change!

Include uid 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.

Macros

scope(name, &block)

Nested types