Module: JSONAPI::ActiveStorageSupport

Extended by:
ActiveSupport::Concern
Included in:
Deserializer, ResourceActions, Serializer
Defined in:
lib/json_api/support/active_storage_support.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#active_storage_attachment?(association_name, model_class = nil) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/json_api/support/active_storage_support.rb', line 19

def active_storage_attachment?(association_name, model_class = nil)
  return self.class.active_storage_attachment?(association_name, model_class) if model_class

  resolved_model_class = if respond_to?(:model_class, true)
                           send(:model_class)
                         elsif respond_to?(:resource_model_class, true)
                           send(:resource_model_class)
                         elsif respond_to?(:resource, true) && (res = send(:resource)) && res.respond_to?(:class)
                           res.class
                         else
                           raise NotImplementedError,
                                 "Must implement resource_model_class or provide model_class parameter"
                         end
  self.class.active_storage_attachment?(association_name, resolved_model_class)
end

#append_only_enabled?(attachment_name, resource_class) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/json_api/support/active_storage_support.rb', line 47

def append_only_enabled?(attachment_name, resource_class)
  ActiveStorage::Deserialization.append_only_enabled?(attachment_name, resource_class)
end

#attach_active_storage_files(record, attachment_params, resource_class: nil) ⇒ Object



39
40
41
# File 'lib/json_api/support/active_storage_support.rb', line 39

def attach_active_storage_files(record, attachment_params, resource_class: nil)
  ActiveStorage::Deserialization.attach_files(record, attachment_params, definition: resource_class)
end

#extract_active_storage_params_from_hash(params_hash, model_class) ⇒ Object



35
36
37
# File 'lib/json_api/support/active_storage_support.rb', line 35

def extract_active_storage_params_from_hash(params_hash, model_class)
  ActiveStorage::Deserialization.extract_params_from_hash(params_hash, model_class)
end

#filter_active_storage_from_includes(includes_hash, current_model_class) ⇒ Object



55
56
57
# File 'lib/json_api/support/active_storage_support.rb', line 55

def filter_active_storage_from_includes(includes_hash, current_model_class)
  ActiveStorage::Detection.filter_from_includes(includes_hash, current_model_class)
end

#filter_polymorphic_from_includes(includes_hash, current_model_class) ⇒ Object



59
60
61
# File 'lib/json_api/support/active_storage_support.rb', line 59

def filter_polymorphic_from_includes(includes_hash, current_model_class)
  ActiveStorage::Detection.filter_polymorphic_from_includes(includes_hash, current_model_class)
end

#find_blob_by_signed_id(signed_id) ⇒ Object



75
76
77
# File 'lib/json_api/support/active_storage_support.rb', line 75

def find_blob_by_signed_id(signed_id)
  ActiveStorage::Deserialization.find_blob_by_signed_id(signed_id)
end

#find_relationship_definition(attachment_name, resource_class) ⇒ Object



51
52
53
# File 'lib/json_api/support/active_storage_support.rb', line 51

def find_relationship_definition(attachment_name, resource_class)
  ActiveStorage::Deserialization.find_relationship_definition(attachment_name, resource_class)
end

#process_active_storage_attachment(attrs, association_name, id_or_ids, singular:) ⇒ Object



71
72
73
# File 'lib/json_api/support/active_storage_support.rb', line 71

def process_active_storage_attachment(attrs, association_name, id_or_ids, singular:)
  ActiveStorage::Deserialization.process_attachment(attrs, association_name, id_or_ids, singular:)
end

#purge_on_nil_enabled?(attachment_name, resource_class) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/json_api/support/active_storage_support.rb', line 43

def purge_on_nil_enabled?(attachment_name, resource_class)
  ActiveStorage::Deserialization.purge_on_nil_enabled?(attachment_name, resource_class)
end

#serialize_active_storage_relationship(attachment_name, record) ⇒ Object



63
64
65
# File 'lib/json_api/support/active_storage_support.rb', line 63

def serialize_active_storage_relationship(attachment_name, record)
  ActiveStorage::Serialization.serialize_relationship(attachment_name, record)
end

#serialize_blob_identifier(blob) ⇒ Object



67
68
69
# File 'lib/json_api/support/active_storage_support.rb', line 67

def serialize_blob_identifier(blob)
  ActiveStorage::Serialization.serialize_blob_identifier(blob)
end