Module: ComponentTransfer
- Extended by:
- JSONModel
- Includes:
- JSONModel
- Defined in:
- backend/app/lib/component_transfer.rb
Defined Under Namespace
Modules: ResponseHelpers
Class Method Summary
(collapse)
Methods included from JSONModel
JSONModel, JSONModel, add_error_handler, all, allow_unmapped_enum_value, backend_url, 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_repository, strict_mode, strict_mode?, with_repository
Class Method Details
+ (Object) deep_transfer(new_resource_id, obj)
59
60
61
62
63
64
65
|
# File 'backend/app/lib/component_transfer.rb', line 59
def self.deep_transfer(new_resource_id, obj)
ArchivalObject.this_repo.filter(:root_record_id => obj.root_record_id, :parent_id => obj.id).each do |child|
deep_transfer(new_resource_id, child)
child.root_record_id = new_resource_id
child.save
end
end
|
+ (Object) included(base)
6
7
8
|
# File 'backend/app/lib/component_transfer.rb', line 6
def self.included(base)
base.extend(JSONModel)
end
|
+ (Object) transfer(target_resource_uri, archival_object_uri)
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'backend/app/lib/component_transfer.rb', line 23
def self.transfer(target_resource_uri, archival_object_uri)
id = JSONModel(:archival_object).id_for(archival_object_uri)
obj = ArchivalObject[:id => id]
if obj.nil?
raise NotFoundException.new("That which does not exist cannot be moved.")
end
deep_transfer(JSONModel::JSONModel(:resource).id_for(target_resource_uri), obj)
json = obj.class.to_jsonmodel(obj)
json.parent = nil
source_resource_uri = json['resource']['ref']
json.resource['ref'] = target_resource_uri
obj.update_from_json(json, {}, false)
event = Event.for_component_transfer(archival_object_uri, source_resource_uri, target_resource_uri)
obj.refresh
[obj, event]
end
|