class

App::Models::Organization

Inherits PgORM::Timestamps < 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: [do if (__temp_116 = @owner) && __temp_116.new_record? __temp_116.save self.owner_id = __temp_116.id.not_nil! end end, do if (__temp_117 = @admin_group) && __temp_117.new_record? __temp_117.save self.admin_group_id = __temp_117.id.not_nil! end end, do self.name = name.strip self.description = description.try() do |__arg0| __arg0.strip.presence end self.subdomain = subdomain.try() do |__arg1| __arg1.strip.downcase.presence end end] of Nil, after_save: [do if __temp_118 = @domains if __temp_118.cached? __temp_118.each do |__temp_119| if __temp_119.new_record? else next end __temp_119.organization_id = id.not_nil! __temp_119.save end end end end, do if __temp_120 = @groups if __temp_120.cached? __temp_120.each do |__temp_121| if __temp_121.new_record? else next end __temp_121.organization_id = id.not_nil! __temp_121.save end end end end, do if __temp_122 = @invoices if __temp_122.cached? __temp_122.each do |__temp_123| if __temp_123.new_record? else next end __temp_123.org_id = id.not_nil! __temp_123.save end end end end] 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: [do end, do end, do end, do end, do end] of Nil, }
PRIMARY_KEY_TYPES = {:id => UUID} 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(id : UUID | ActiveModel::Model::None = ::ActiveModel::Model::None.new, name : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, description : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, subdomain : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, owner_id : UUID | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, admin_group_id : UUID | 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)
new(params : HTTP::Params | Hash(String, String) | Tuple(String, String))

Initialize App::Models::Organization from HTTP::Params.

Class methods

attributes

Returns all attribute keys.

by_admin_group_id(id)
Source
by_owner_id(id)
Source
changes(id : UUID | 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.

from_rs(__temp_380 : DB::ResultSet)
on_error(err : Exception | IO::Error)
primary_key
Source
table_name

Instance methods

add(user : User, permission : App::Permissions = App::Permissions::User)
Source
admin_group
Source
admin_group!
Source
admin_group=(record : Group) : Group
Source
admin_group?
Source
admin_group_id

admin_group_id getter

admin_group_id=(value : UUID | Nil)

admin_group_id setter

admin_group_id_assigned?
admin_group_id_change

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

admin_group_id_changed?
admin_group_id_default

admin_group_id's default value

Source
admin_group_id_present?
admin_group_id_removed?
admin_group_id_was
admin_group_id_will_change!

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

after_create
Source
after_destroy
Source
after_initialize(trusted : Bool)
after_save
Source
after_update
Source
apply_defaults

Generate code to apply default values

assign_attributes(id : UUID | Missing = Missing, name : String | Missing = Missing, description : String | Nil | Missing = Missing, subdomain : String | Nil | Missing = Missing, owner_id : UUID | Nil | Missing = Missing, admin_group_id : UUID | 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 mulitple attributes via HTTP::Params.

assign_attributes(model : App::Models::Organization)

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
Source
before_destroy
Source
before_save
Source
before_update
Source
build_admin_group
Source
build_owner
Source
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.

create_admin_group
Source
create_admin_group!
Source
create_admin_group!
Source
create_owner
Source
create_owner!
Source
created_at

created_at getter

created_at=(value : Time)

created_at setter

created_at?

Assign instance variable to correct type

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.

description

description getter

description=(value : String | Nil)

description setter

description_assigned?
description_change

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

description_changed?
description_default

description's default value

Source
description_present?
description_removed?
description_was
description_will_change!

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

domains
Source
ensure_admin_group!
Source
groups
Source
id

id getter

id=(value : UUID)

Setters id setter

id?

Assign instance variable to correct type

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.

invite(email : String, permission : App::Permissions = App::Permissions::User, expires : Time | Nil = nil)
Source
invite(user : User, permission : App::Permissions = App::Permissions::User, expires : Time | Nil = nil)
Source
invoices
Source
invoke_props
name

name getter

name=(value : String)

name setter

name?

Assign instance variable to correct type

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
Source
owner!
Source
owner=(record : User) : User
Source
owner?
Source
owner_id

owner_id getter

owner_id=(value : UUID | Nil)

owner_id setter

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
Source
primary_key_hash
reload_admin_group
Source
reload_admin_group?
Source
reload_owner
Source
reload_owner?
Source
remove(user : User)
Source
restore_attributes

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

run_create_callbacks

Wrap a block with callbacks for the appropriate crud operation

Source
run_destroy_callbacks
Source
run_save_callbacks
Source
run_update_callbacks
Source
subdomain

subdomain getter

subdomain=(value : String | Nil)

subdomain setter

subdomain_assigned?
subdomain_change

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

subdomain_changed?
subdomain_default

subdomain's default value

Source
subdomain_present?
subdomain_removed?
subdomain_was
subdomain_will_change!

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

subscription

Get the organization's current subscription (active or suspended). Cancelled subscriptions are historical records and skipped here.

Source
table_name
updated_at

updated_at getter

updated_at=(value : Time)

updated_at setter

updated_at?

Assign instance variable to correct type

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.

user_can_manage_groups?(user : User) : Bool
Source
user_has_permission?(user : User, required_permission : App::Permissions) : Bool
Source
user_is_admin?(user : User) : Bool
Source
users
Source
validate_nilability

Validate that all non-nillable fields have values.

Nested types