class PlaceOS::Model::Storage

Included Modules

Defined in:

placeos-models/storage.cr

Constant Summary

CALLBACKS = {before_save: [do @ext_filter = ext_filter.map do |ext| if ext.starts_with?('.') ext = ext[1..] end ext.downcase end @mime_filter = mime_filter.map(&.downcase) self.access_secret = PlaceOS::Encryption.encrypt(access_secret, level: level, id: encryption_id) end] of Nil, after_save: [] of Nil, before_create: [do self.created_at = self.updated_at = Time.utc end, do rec = Model::Storage.find_by?(authority_id: authority_id, storage_type: storage_type.to_s.upcase, bucket_name: bucket_name) if rec.nil? else raise(Model::Error.new("authority_id need to be unique")) end 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

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) #

def self.new(pull : JSON::PullParser) #

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, storage_type : PlaceOS::Model::Storage::Type | ActiveModel::Model::None = ::ActiveModel::Model::None.new, bucket_name : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, region : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, access_key : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, access_secret : String | ActiveModel::Model::None = ::ActiveModel::Model::None.new, authority_id : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, endpoint : String | Nil | ActiveModel::Model::None = ::ActiveModel::Model::None.new, ext_filter : Array(String) | ActiveModel::Model::None = ::ActiveModel::Model::None.new, mime_filter : 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::Storage from HTTP::Params.


def self.storage_or_default(authority_id : String | Nil) : Storage #

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_657 : DB::ResultSet) #

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

def self.primary_key : Symbol #

def self.table_name #

Instance Method Detail

def access_key : String #

#access_key getter


def access_key=(value : String) #

#access_key setter


def access_key? : String | Nil #

def access_key_assigned? : Bool #

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

def access_key_default : String #

#access_key's default value


def access_key_present? : Bool #

def access_key_was : String | Nil #

def access_key_will_change! : Nil #

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


def access_secret : String #

def access_secret=(value : String) #

def access_secret? : String | Nil #

def access_secret_assigned? : Bool #

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

def access_secret_default : String #

#access_secret's default value


def access_secret_present? : Bool #

def access_secret_was : String | Nil #

def access_secret_will_change! : Nil #

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


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

Base class for all Engine models


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

Base class for all Engine models


def after_initialize(trusted : Bool) #

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

Base class for all Engine models


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

Base class for all Engine models


def apply_defaults #

Generate code to apply default values


def assign_attributes(created_at : Time | Missing = Missing, updated_at : Time | Missing = Missing, storage_type : PlaceOS::Model::Storage::Type | Missing = Missing, bucket_name : String | Missing = Missing, region : String | Nil | Missing = Missing, access_key : String | Missing = Missing, access_secret : String | Missing = Missing, authority_id : String | Nil | Missing = Missing, endpoint : String | Nil | Missing = Missing, ext_filter : Array(String) | Missing = Missing, mime_filter : 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::Storage) #

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

#authority_id getter


def authority_id=(value : String | Nil) #

#authority_id setter


def authority_id_assigned? : Bool #

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

def authority_id_default : String | Nil #

#authority_id's default value


def authority_id_present? : Bool #

def authority_id_was : String | Nil | Nil #

def authority_id_will_change! : Nil #

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


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

Base class for all Engine models


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

Base class for all Engine models


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

Base class for all Engine models


def bucket_name : String #

#bucket_name getter


def bucket_name=(value : String) #

#bucket_name setter


def bucket_name? : String | Nil #

def bucket_name_assigned? : Bool #

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

def bucket_name_default : String #

#bucket_name's default value


def bucket_name_present? : Bool #

def bucket_name_was : String | Nil #

def bucket_name_will_change! : Nil #

Include #bucket_name 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 check_file_ext(ext : String) #

def check_file_mime(mime : String) #

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 decrypt_secret #

def endpoint : String | Nil #

#endpoint getter


def endpoint=(value : String | Nil) #

#endpoint setter


def endpoint_assigned? : Bool #

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

def endpoint_default : String | Nil #

#endpoint's default value


def endpoint_present? : Bool #

def endpoint_was : String | Nil | Nil #

def endpoint_will_change! : Nil #

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


def ext_filter : Array(String) #

#ext_filter getter


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

#ext_filter setter


def ext_filter? : Array(String) | Nil #

def ext_filter_assigned? : Bool #

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

def ext_filter_default : Array(String) #

#ext_filter's default value


def ext_filter_present? : Bool #

def ext_filter_was : Array(String) | Nil #

def ext_filter_will_change! : Nil #

Include #ext_filter 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 mime_filter : Array(String) #

#mime_filter getter


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

#mime_filter setter


def mime_filter? : Array(String) | Nil #

def mime_filter_assigned? : Bool #

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

def mime_filter_default : Array(String) #

#mime_filter's default value


def mime_filter_present? : Bool #

def mime_filter_was : Array(String) | Nil #

def mime_filter_will_change! : Nil #

Include #mime_filter 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 region : String | Nil #

#region getter


def region=(value : String | Nil) #

#region setter


def region_assigned? : Bool #

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

def region_default : String | Nil #

#region's default value


def region_present? : Bool #

def region_was : String | Nil | Nil #

def region_will_change! : Nil #

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


def run_destroy_callbacks(&) #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def run_save_callbacks(&) #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def run_update_callbacks(&) #
Description copied from class PlaceOS::Model::ModelBase

Base class for all Engine models


def secret_encrypted? : Bool #

Determine if access_secret is encrypted


def storage_type : PlaceOS::Model::Storage::Type #

#storage_type getter


def storage_type=(value : PlaceOS::Model::Storage::Type) #

#storage_type setter


def storage_type? : PlaceOS::Model::Storage::Type | Nil #

def storage_type_assigned? : Bool #

def storage_type_change : Tuple(PlaceOS::Model::Storage::Type | Nil, PlaceOS::Model::Storage::Type | Nil) | Nil #

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


def storage_type_changed? : Bool #

def storage_type_default : Type #

#storage_type's default value


def storage_type_present? : Bool #

def storage_type_was : PlaceOS::Model::Storage::Type | Nil #

def storage_type_will_change! : Nil #

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


def table_name #

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 validate_nilability #

Validate that all non-nillable fields have values.