Class: FileVersion

Inherits:
Sequel::Model
  • Object
show all
Includes:
ASModel, Publishable, Representative
Defined in:
backend/app/model/file_version.rb

Constant Summary

Constants included from JSONModel

JSONModel::REFERENCE_KEY_REGEX

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Representative

#before_validation, #representative_id_for_type

Methods included from Publishable

db_value_for, included

Methods included from ASModel

all_models, included, update_publish_flag, update_suppressed_flag

Methods included from JSONModel

JSONModel, #JSONModel, add_error_handler, all, allow_unmapped_enum_value, backend_url, check_valid_refs, client_mode?, custom_validations, destroy_model, enum_default_value, enum_values, handle_error, init, load_schema, #models, models, parse_jsonmodel_ref, parse_reference, repository, repository_for, schema_src, set_publish_flags!, set_repository, strict_mode, strict_mode?, validate_schema, with_repository

Class Method Details

.handle_publish_flag(ids, val) ⇒ Object



14
15
16
# File 'backend/app/model/file_version.rb', line 14

def self.handle_publish_flag(ids, val)
  ASModel.update_publish_flag(self.filter(:id => ids), val)
end

.sequel_to_jsonmodel(objs, opts = {}) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'backend/app/model/file_version.rb', line 20

def self.sequel_to_jsonmodel(objs, opts = {})
  jsons = super

  jsons.zip(objs).each do |json, obj|
    json["identifier"] = obj[:id].to_s
  end

  jsons
end

Instance Method Details

#representative_for_typesObject



10
11
12
# File 'backend/app/model/file_version.rb', line 10

def representative_for_types
  { is_representative: [:digital_object] }
end

#validateObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'backend/app/model/file_version.rb', line 30

def validate
  is_published = false
  if self[:publish] == true || self[:publish] == 1
    is_published = true
  end

  is_representative = false
  if self[:is_representative] == true || self[:is_representative] == 1
    is_representative = true
  end

  if !is_published && is_representative
    raise Sequel::ValidationFailed.new("File version must be published to be representative.")
  end

  super
end