libis-services 1.0.10 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 286b07cf808e2a2e50a5cde29b49e6a9f9162a43598a45ed11f5460a69855046
4
- data.tar.gz: 2ac35bfbbf62ba56ea718a41297aed33cf2e45bf1123a9938f7a1ba52de24b10
3
+ metadata.gz: d769686dc6aacfd5c2284f26e692fe0bb9b2dddcaf7493d39363395b043846c6
4
+ data.tar.gz: 327783e9345a9f65aee921dda2f834c6610acc9df6658fa3586dc449b01781bc
5
5
  SHA512:
6
- metadata.gz: 6e00164a2d67021f72ba76e6880291809460604f4db62900b4c7e8c39acc314466129f064c7c6a6c329c2668326fe353a82db1163a1f3beffc51e634e07f9e4d
7
- data.tar.gz: 3cadc5af5ed9ca5f07766ba9bebd9bd517c046465d6e32b43e7796d68e5e6ac9fb6d8f3ef6ae7a7196fc836731970794db1fe86ae56eff7c2f18347af9d6f2e9
6
+ metadata.gz: 84ec4e272d57865eeca0454d5f7348bc4065a6a34202e3e9982e63c761b4c408125595608429209f02a0788f7b51024da9318e095c1a99e30fb74eadcfbc2fc6
7
+ data.tar.gz: 9ecfd46c5bf0ee6f60c204d556ce4590023d1a76e074781ecb2cf055527ca8de7693c78f49d1254e4c750db891c01b521bea9cfda8f8c1cc3e4cbc62d557e1b5
@@ -1,5 +1,6 @@
1
1
  require 'oai'
2
2
  require 'libis/tools/extend/hash'
3
+ require 'libis/tools/xml_document'
3
4
  require 'libis/services/service_error'
4
5
 
5
6
  module Libis
@@ -8,15 +9,24 @@ module Libis
8
9
  include OAI::XPath
9
10
 
10
11
  class Query
11
- attr_accessor :from, :until, :set, :metadata_prefix
12
12
 
13
- def intialize(metadata_prefix = 'oai_dc')
14
- @from = @until = @set = nil
15
- @metadata_prefix = metadata_prefix
13
+ def initialize(options = {})
14
+ @options = options
15
+ @options[:metadata_prefix] ||= 'oai_dc'
16
+ end
17
+
18
+ def [](key, value)
19
+ @options[key] = value
16
20
  end
17
21
 
18
22
  def to_hash
19
- { from: @from, until: @until, metadata_prefix: @metadata_prefix, set: @set }.cleanup
23
+ {
24
+ from: @options[:from],
25
+ until: @options[:until],
26
+ metadata_prefix: @options[:metadata_prefix],
27
+ set: @options[:set],
28
+ resumption_token: @options[:token] || @options[:resumption_token]
29
+ }.cleanup
20
30
  end
21
31
 
22
32
  end
@@ -35,28 +45,41 @@ module Libis
35
45
  do_oai_request(:list_sets, options)
36
46
  end
37
47
 
38
- def metdata_formats(identifier = nil)
48
+ def metadata_formats(identifier = nil)
39
49
  do_oai_request(:list_metadata_formats, {identifier: identifier})
40
50
  end
41
51
 
42
- def identifiers(token = nil, query = Query.new)
43
- options = token ? {resumption_token: token} : query.to_hash
44
- do_oai_request(:list_identifiers, options)
52
+ def identifiers(token_or_query = nil)
53
+ do_oai_request(:list_identifiers, token_or_query_to_hash(token_or_query))
45
54
  end
46
55
 
47
- def records(token = nil, query = Query.new)
48
- options = token ? {resumption_token: token} : query.to_hash
49
- do_oai_request(:list_records, options)
56
+ def records(token_or_query = nil)
57
+ do_oai_request(:list_records, token_or_query_to_hash(token_or_query))
50
58
  end
51
59
 
52
- def record(identifier, metadata_prefix)
60
+ def record(identifier, metadata_prefix = 'oai_dc')
53
61
  do_oai_request(:get_record, identifier: identifier, metadata_prefix: metadata_prefix)
54
62
  end
55
63
 
56
- private
64
+ protected
65
+
66
+ def token_or_query_to_hash(token_or_query)
67
+ case token_or_query
68
+ when Hash
69
+ Query.new(token_or_query).to_hash
70
+ when Query
71
+ token_or_query.to_hash
72
+ when String
73
+ { resumption_token: token_or_query }
74
+ else
75
+ {}
76
+ end
77
+ end
57
78
 
79
+ private
80
+
58
81
  def do_oai_request(method, options = {})
59
- response = @oai_client.send(method, options.cleanup)
82
+ response = options.cleanup.empty? ? @oai_client.send(method): @oai_client.send(method, options.cleanup)
60
83
  object_to_hash(response)
61
84
  rescue OAI::Exception => e
62
85
  raise Libis::Services::ServiceError, "OAI Error: #{e.code} - #{e.message}"
@@ -71,7 +94,7 @@ module Libis
71
94
  h[k] = object_to_hash(v)
72
95
  end
73
96
  when REXML::Element
74
- obj.to_s
97
+ Libis::Tools::XmlDocument.parse(obj.to_s).to_hash
75
98
  when OAI::Response, OAI::Header, OAI::Record, OAI::MetadataFormat, OAI::Set
76
99
  result = obj.instance_variables.map do |x|
77
100
  x[1..-1].to_sym
@@ -28,7 +28,7 @@ module Libis
28
28
  ]
29
29
  end
30
30
  opts = {strip_namespaces: true, logger: ::Libis::Tools::Config.logger}.merge options
31
- base_url = opts.delete(:url) || 'http://depot.lias.be'
31
+ base_url = opts.delete(:url) || 'https://repository.teneo.libis.be'
32
32
  configure "#{base_url}/dpsws/#{section}/#{service}?wsdl", opts
33
33
  end
34
34
 
@@ -12,7 +12,7 @@ module Libis
12
12
  class CollectionHandler < Libis::Services::Rosetta::Client
13
13
 
14
14
 
15
- def initialize(base_url = 'http://depot.lias.be', options = {})
15
+ def initialize(base_url = 'https://repository.teneo.libis.be', options = {})
16
16
  super 'repository', 'CollectionWebServices', {url: base_url}.merge(options)
17
17
  end
18
18
 
@@ -9,7 +9,7 @@ module Libis
9
9
 
10
10
  class DepositHandler < ::Libis::Services::Rosetta::Client
11
11
 
12
- def initialize(base_url = 'http://depot.lias.be', options = {})
12
+ def initialize(base_url = 'https://repository.teneo.libis.be', options = {})
13
13
  super 'deposit', 'DepositWebServices', {url: base_url}.merge(options)
14
14
  end
15
15
 
@@ -10,18 +10,18 @@ module Libis
10
10
 
11
11
  class IeHandler < Libis::Services::Rosetta::Client
12
12
 
13
- def initialize(base_url = 'http://depot.lias.be', options = {})
13
+ def initialize(base_url = 'https://repository.teneo.libis.be', options = {})
14
14
  super 'repository', 'IEWebServices', {url: base_url}.merge(options)
15
15
  end
16
16
 
17
17
  def get_mets(ie, flags = 0)
18
18
  result = call_raw :get_ie, pds_handle: @pds_handle, ie_pid: ie, flags: flags
19
- Libis::Tools::MetsFile.parse(result[:get_ie])
19
+ Libis::Tools::MetsFile.parse(result)
20
20
  end
21
21
 
22
22
  def get_metadata(ie)
23
23
  result = call_raw :get_md, pds_handle: @pds_handle, 'PID' => ie
24
- Libis::Tools::MetsFile.parse(result[:get_md])
24
+ Libis::Tools::MetsFile.parse(result)
25
25
  end
26
26
 
27
27
  end
@@ -1,17 +1,17 @@
1
1
  require 'libis/services/oai'
2
+ require 'libis/tools/xml_document'
2
3
 
3
4
  module Libis
4
5
  module Services
5
6
  module Rosetta
6
7
  class OaiPmh < Libis::Services::Oai
7
8
 
8
- def initialize(base_url = 'http://depot.lias.be', options = {})
9
+ def initialize(base_url = 'https://repository.teneo.libis.be', options = {})
9
10
  super(base_url + '/oaiprovider/request')
10
11
  end
11
12
 
12
- def collections(institute, token = nil, query = Query.new)
13
- query.set = "#{institute}-collections"
14
- records(token, query)
13
+ def collections(institute, token_or_query = nil)
14
+ records(token_or_query_to_hash(token_or_query).merge(set: "#{institute}-collections"))
15
15
  end
16
16
 
17
17
  end
@@ -13,7 +13,7 @@ module Libis
13
13
  class ProducerHandler < Libis::Services::Rosetta::Client
14
14
 
15
15
 
16
- def initialize(base_url = 'http://depot.lias.be', options = {})
16
+ def initialize(base_url = 'https://repository.teneo.libis.be', options = {})
17
17
  super 'backoffice', 'ProducerWebServices', {url: base_url}.merge(options)
18
18
  end
19
19
 
@@ -26,7 +26,7 @@ module Libis
26
26
  attr_reader :pds_service, :producer_service, :deposit_service, :sip_service, :ie_service, :collection_service
27
27
 
28
28
  # @param [String] base_url
29
- def initialize(base_url = 'http://depot.lias.be', pds_url = 'https://pds.libis.be', opts = {})
29
+ def initialize(base_url = 'https://repository.teneo.libis.be', pds_url = 'https://pds.libis.be', opts = {})
30
30
  @pds_service = Libis::Services::Rosetta::PdsHandler.new pds_url
31
31
  @producer_service = Libis::Services::Rosetta::ProducerHandler.new base_url, opts
32
32
  @deposit_service = Libis::Services::Rosetta::DepositHandler.new base_url, opts
@@ -11,7 +11,7 @@ module Libis
11
11
 
12
12
  class SipHandler < Libis::Services::Rosetta::Client
13
13
 
14
- def initialize(base_url = 'http://depot.lias.be', options = {})
14
+ def initialize(base_url = 'https://repository.teneo.libis.be', options = {})
15
15
  super 'repository', 'SipWebServices', {url: base_url}.merge(options)
16
16
  end
17
17
 
@@ -10,7 +10,7 @@ module Libis
10
10
 
11
11
  class UserManager < Libis::Services::Rosetta::Client
12
12
 
13
- def initialize(base_url = 'http://depot.lias.be', options = {})
13
+ def initialize(base_url = 'https://repository.teneo.libis.be', options = {})
14
14
  super 'infra', 'UserManagerWS', {url: base_url}.merge(options)
15
15
  end
16
16
 
@@ -1,5 +1,5 @@
1
1
  module Libis
2
2
  module Services
3
- VERSION = '1.0.10'
3
+ VERSION = '1.0.11'
4
4
  end
5
5
  end
@@ -27,12 +27,13 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'simplecov', '~> 0.9'
28
28
  spec.add_development_dependency 'coveralls', '~> 0.7'
29
29
  spec.add_development_dependency 'equivalent-xml', '~> 0.6'
30
+ spec.add_development_dependency 'rexml'
30
31
 
31
32
  spec.add_runtime_dependency 'libis-tools', '~> 1.0'
32
- spec.add_runtime_dependency 'highline', '~> 1.7'
33
+ spec.add_runtime_dependency 'highline', '~> 2.0'
33
34
  spec.add_runtime_dependency 'savon', '~> 2.11'
34
35
  spec.add_runtime_dependency 'rest-client', '~> 2.0'
35
- spec.add_runtime_dependency 'oai', '~> 0.4'
36
+ spec.add_runtime_dependency 'oai', '~> 1.0'
36
37
  spec.add_runtime_dependency 'ruby-oci8', '~> 2.2.2' unless RUBY_PLATFORM == 'java'
37
38
  spec.add_runtime_dependency 'virtus', '~> 1.0'
38
39
  spec.add_runtime_dependency 'write_xlsx', '~> 0.83'
@@ -6,146 +6,17 @@ require 'libis/services/alma/sru_service'
6
6
 
7
7
  describe 'Alma' do
8
8
 
9
- # noinspection RubyLiteralArrayInspection
10
- let(:record) {
11
- {
12
- leader: '01960nas a2200553u 4500',
13
- controlfield: ['9930800070101471', '20170602113306.0', '881205c19679999be r|p|| 0|||a|dut c'],
14
- datafield: [
15
- {
16
- subfield: '(BeLVLBS)003080007LBS01-Aleph',
17
- :@tag => '035', :@ind1 => ' ', :@ind2 => ' '
18
- }, {
19
- subfield: 'Kerk en leven. Bisdom Antwerpen (0991)',
20
- :@tag => '245', :@ind1 => '0', :@ind2 => '0'
21
- }, {
22
- subfield: 'K & L',
23
- :@tag => '246', :@ind1 => '3', :@ind2 => '3'
24
- }, {
25
- subfield: ['Antwerpen', 'Kerk en leven,', '1967-.'],
26
- :@tag => '260', :@ind1 => ' ', :@ind2 => ' '
27
- }, {
28
- subfield: 'Weekly',
29
- :@tag => '310', :@ind1 => ' ', :@ind2 => ' '
30
- }, {
31
- subfield: %w(text rdacontent),
32
- :@tag => '336', :@ind1 => ' ', :@ind2 => ' '
33
- }, {
34
- subfield: %w(computer rdamedia),
35
- :@tag => '337', :@ind1 => ' ', :@ind2 => ' '
36
- }, {
37
- subfield: ['online resource', 'rdacarrier'],
38
- :@tag => '338', :@ind1 => ' ', :@ind2 => ' '
39
- }, {
40
- subfield: 'Online',
41
- :@tag => '340', :@ind1 => ' ', :@ind2 => ' '
42
- }, {
43
- subfield: 'Digitale kopie van de gedrukte uitgave',
44
- :@tag => '500', :@ind1 => ' ', :@ind2 => ' '
45
- }, {
46
- subfield: ['KADOC', 'C1', 'Kerken en religie', '(ODIS-HT)'],
47
- :@tag => '650', :@ind1 => ' ', :@ind2 => '7'
48
- }, {
49
- subfield: ['KADOC', 'Antwerpen [deelgemeente in gemeente Antwerpen - BE]', '(ODIS-GEO)10560000006504'],
50
- :@tag => '650', :@ind1 => ' ', :@ind2 => '7'
51
- }, {
52
- subfield: ['KADOC', 'Bisdom Antwerpen (1961-heden)', '(ODIS-ORG)9284'],
53
- :@tag => '650', :@ind1 => ' ', :@ind2 => '7'
54
- }, {
55
- subfield: ['KADOC', 'Studiecentrum voor Zielzorg en Predicatie', '(ODIS-ORG)24894'],
56
- :@tag => '650', :@ind1 => ' ', :@ind2 => '7'
57
- }, {
58
- subfield: 'E-journals',
59
- :@tag => '653', :@ind1 => ' ', :@ind2 => '6'
60
- }, {
61
- subfield: 'Collectie Kerk en Leven',
62
- :@tag => '699', :@ind1 => ' ', :@ind2 => ' '
63
- }, {
64
- subfield: 'KYE000486',
65
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
66
- }, {
67
- subfield: ['EKAD', '(1967)7-35, 37-52'],
68
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
69
- }, {
70
- subfield: ['EKAD', '(1968)1-14, 17-49'],
71
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
72
- }, {
73
- subfield: ['EKAD', '(1969)1-10, 12-37, 39-49'],
74
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
75
- }, {
76
- subfield: ['EKAD', '(1970)1-50 volledig'],
77
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
78
- }, {
79
- subfield: ['EKAD', '(1971)1-28, 30-31, 33-37, 41-49'],
80
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
81
- }, {
82
- subfield: ['EKAD', '(1972)22, 30-32, 34-36, 38-50'],
83
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
84
- }, {
85
- subfield: ['EKAD', '(1973)1-50 volledig'],
86
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
87
- }, {
88
- subfield: ['EKAD', '(1974)1-25, 27-50'],
89
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
90
- }, {
91
- subfield: ['EKAD', '(1975)-(1992)volledig'],
92
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
93
- }, {
94
- subfield: ['EKAD', '(1993)1-10, 12-50'],
95
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
96
- }, {
97
- subfield: ['EKAD', '(1994)-(1996)volledig'],
98
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
99
- }, {
100
- subfield: ['EKAD', '(1997)volledig'],
101
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
102
- }, {
103
- subfield: ['EKAD', '(1998)1-53'],
104
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
105
- }, {
106
- subfield: ['EKAD', '(2000)1-16, 18-52'],
107
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
108
- }, {
109
- subfield: ['EKAD', '(2001)-(2003)volledig'],
110
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
111
- }, {
112
- subfield: ['EKAD', '(2004)1-53'],
113
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
114
- }, {
115
- subfield: ['EKAD', '(2005)1-8, 10-52'],
116
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
117
- }, {
118
- subfield: ['EKAD', '(2006)1-26, 29, 32-52'],
119
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
120
- }, {
121
- subfield: ['EKAD', '(2007)39-42, 44, 46-49, 51-52'],
122
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
123
- }, {
124
- subfield: ['EKAD', '(2008)1-28, 32-53'],
125
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
126
- }, {
127
- subfield: ['EKAD', '(2009)1-34, 36-38'],
128
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
129
- }, {
130
- subfield: ['EKAD', '(2011)1-13, 15-36, 45-52'],
131
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
132
- }, {
133
- subfield: ['EKAD', 'KADOC elektronische tijdschriften'],
134
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
135
- }, {
136
- subfield: ['EKAD', 'KADOC lopende periodiek'],
137
- :@tag => '983', :@ind1 => ' ', :@ind2 => ' '
138
- }
139
- ],
140
- }
141
- }
142
-
143
9
  context 'API service' do
144
10
  let(:subject) { Libis::Services::Alma::WebService.new }
11
+ let(:record) { Hash.new }
145
12
 
146
13
  context 'marc' do
147
14
 
148
15
  before {
16
+ data = Libis::Services::Alma::SruService.new.search('alma.local_field_983', 'KYE000486')
17
+ data = data.first.to_hash(:convert_tags_to => lambda { |tag| tag.snakecase.to_sym })
18
+
19
+ record = data[:record]
149
20
  record[:controlfield][0] = '9930800070101480'
150
21
  record[:datafield].insert(1, {
151
22
  subfield: '(EXLNZ-32KUL_LIBIS_NETWORK)9930800070101471',
@@ -170,9 +41,16 @@ describe 'Alma' do
170
41
 
171
42
  context 'SRU service' do
172
43
  let(:subject) { Libis::Services::Alma::SruService.new }
44
+ let(:record) { Hash.new }
173
45
 
174
46
  context 'marc' do
175
47
 
48
+ before {
49
+ data = Libis::Services::Alma::WebService.new.get_marc('9930800070101480', 'l7xx8879c82a7d7b453a887a6e6dca8300fd').
50
+ to_hash(:convert_tags_to => lambda { |tag| tag.snakecase.to_sym })
51
+ record = data[:bib][:record]
52
+ record.cleanup!
53
+ }
176
54
 
177
55
  it 'search' do
178
56
  result = subject.search('alma.local_field_983', 'KYE000486')
data/spec/ie_data.rb CHANGED
@@ -73,332 +73,6 @@ end
73
73
  def expected_mets
74
74
  # noinspection RubyQuotedStringsInspection
75
75
  expected_ies.merge(
76
- "Large" => {
77
- :id => "REP403621",
78
- :amd => {
79
- :tech => {
80
- "objectCharacteristics" => [
81
- {
82
- "objectType" => "REPRESENTATION",
83
- "creationDate" => "2015-10-31 11:23:13",
84
- "createdBy" => "testadmin",
85
- "owner" => "CRS00.TESTINS.TESTDEP"
86
- }
87
- ],
88
- "generalRepCharacteristics" => [
89
- {
90
- "usageType" => "VIEW",
91
- "preservationType" => "DERIVATIVE_COPY",
92
- "label" => "Large",
93
- "RepresentationCode" => "HIGH"
94
- }
95
- ],
96
- "internalIdentifier" => [
97
- {
98
- "internalIdentifierType" => "PID",
99
- "internalIdentifierValue" => "REP403621"
100
- }
101
- ]
102
- },
103
- :rights => {}
104
- },
105
- "Table of Contents" => {
106
- "Zonsondergang Sinebjerg" => {
107
- :id => "FL403622",
108
- :group => "DSC03102",
109
- :amd => {
110
- :tech => {
111
- "objectCharacteristics" => [
112
- {
113
- "objectType" => "FILE",
114
- "creationDate" => "2015-10-31 11:23:13",
115
- "createdBy" => "testadmin",
116
- "owner" => "CRS00.TESTINS.TESTDEP",
117
- "groupID" => "DSC03102"
118
- }
119
- ],
120
- "internalIdentifier" => [
121
- {
122
- "internalIdentifierType" => "PID",
123
- "internalIdentifierValue" => "FL403622"
124
- }
125
- ],
126
- "generalFileCharacteristics" => [
127
- {
128
- "label" => "Zonsondergang Sinebjerg",
129
- "fileLocationType" => "FILE",
130
- "fileOriginalName" => "DSC03102.jpg",
131
- "fileOriginalID" =>
132
- "/operational_shared/operational_export_directory/IE403595/import/23230104//DSC03102.jpg",
133
- "fileExtension" => "jpg",
134
- "fileMIMEType" => "image/jpeg",
135
- "fileSizeBytes" => "216073",
136
- "formatLibraryId" => "fmt/44",
137
- }
138
- ]
139
- },
140
- }
141
- },
142
- "Strand Ristinge" => {
143
- :id => "FL403623",
144
- :amd => {
145
- :tech => {
146
- "objectCharacteristics" => [
147
- {
148
- "objectType" => "FILE",
149
- "creationDate" => "2015-10-31 11:23:13",
150
- "createdBy" => "testadmin",
151
- "owner" => "CRS00.TESTINS.TESTDEP"
152
- }
153
- ],
154
- "internalIdentifier" => [
155
- {
156
- "internalIdentifierType" => "PID",
157
- "internalIdentifierValue" => "FL403623"
158
- }
159
- ],
160
-
161
- },
162
- }
163
- },
164
- "Nachtzicht strand Ærøskøbing" => {
165
- :id => "FL403624",
166
- :amd => {
167
- :tech => {
168
- "objectCharacteristics" => [
169
- {
170
- "objectType" => "FILE",
171
- "creationDate" => "2015-10-31 11:23:13",
172
- "createdBy" => "testadmin",
173
- "owner" => "CRS00.TESTINS.TESTDEP"
174
- }
175
- ],
176
- "internalIdentifier" => [
177
- {
178
- "internalIdentifierType" => "PID",
179
- "internalIdentifierValue" => "FL403624"
180
- }
181
- ],
182
- }
183
- }
184
- },
185
- "Strandvej schiereiland Ærøskøbing" => {
186
- :id => "FL403625",
187
- :amd => {
188
- :tech => {
189
- "objectCharacteristics" => [
190
- {
191
- "objectType" => "FILE",
192
- "creationDate" => "2015-10-31 11:23:13",
193
- "createdBy" => "testadmin",
194
- "owner" => "CRS00.TESTINS.TESTDEP"
195
- }
196
- ],
197
- "internalIdentifier" => [
198
- {
199
- "internalIdentifierType" => "PID",
200
- "internalIdentifierValue" => "FL403625"
201
- }
202
- ]
203
- },
204
- }
205
- },
206
- "Skjoldnæs Fyr - Søby" =>
207
- {:id => "FL403626",
208
- :amd =>
209
- {:tech =>
210
- {"objectCharacteristics" =>
211
- [{"objectType" => "FILE",
212
- "creationDate" => "2015-10-31 11:23:13",
213
- "createdBy" => "testadmin",
214
- "owner" => "CRS00.TESTINS.TESTDEP"}],
215
- "internalIdentifier" =>
216
- [{"internalIdentifierType" => "PID",
217
- "internalIdentifierValue" => "FL403626"}],
218
- }
219
- }},
220
- "Ingang Legoland Billund" => {
221
- :id => "FL403627",
222
- :amd => {
223
- :tech => {
224
- "objectCharacteristics" => [
225
- {
226
- "objectType" => "FILE",
227
- "creationDate" => "2015-10-31 11:23:13",
228
- "createdBy" => "testadmin",
229
- "owner" => "CRS00.TESTINS.TESTDEP"
230
- }
231
- ],
232
- "internalIdentifier" => [
233
- {
234
- "internalIdentifierType" => "PID",
235
- "internalIdentifierValue" => "FL403627"
236
- }
237
- ]
238
- }
239
- }
240
- }
241
- }
242
- },
243
- "Small" => {
244
- :id => "REP403628",
245
- :amd => {
246
- :tech => {
247
- "objectCharacteristics" => [
248
- {
249
- "objectType" => "REPRESENTATION",
250
- "creationDate" => "2015-10-31 11:24:55",
251
- "createdBy" => "testadmin",
252
- "owner" => "CRS00.TESTINS.TESTDEP"
253
- }
254
- ],
255
- "generalRepCharacteristics" => [
256
- {
257
- "usageType" => "VIEW",
258
- "preservationType" => "DERIVATIVE_COPY",
259
- "label" => "Small"
260
- }
261
- ],
262
- "internalIdentifier" => [
263
- {
264
- "internalIdentifierType" => "PID",
265
- "internalIdentifierValue" => "REP403628"
266
- }
267
- ]
268
- },
269
- :rights => {},
270
- },
271
- "Table of Contents" => {
272
- "Zonsondergang Sinebjerg" => {
273
- :id => "FL403629",
274
- :group => "DSC03102",
275
- :amd => {
276
- :tech => {
277
- "objectCharacteristics" => [
278
- {
279
- "objectType" => "FILE",
280
- "creationDate" => "2015-10-31 11:24:55",
281
- "createdBy" => "testadmin",
282
- "owner" => "CRS00.TESTINS.TESTDEP",
283
- "groupID" => "DSC03102"
284
- }
285
- ],
286
- "internalIdentifier" => [
287
- {
288
- "internalIdentifierType" => "PID",
289
- "internalIdentifierValue" => "FL403629"
290
- }
291
- ],
292
- }
293
- }
294
- },
295
- "Strand Ristinge" => {
296
- :id => "FL403630",
297
- :amd => {
298
- :tech => {
299
- "objectCharacteristics" => [
300
- {
301
- "objectType" => "FILE",
302
- "creationDate" => "2015-10-31 11:24:55",
303
- "createdBy" => "testadmin",
304
- "owner" => "CRS00.TESTINS.TESTDEP"
305
- }
306
- ],
307
- "internalIdentifier" => [
308
- {
309
- "internalIdentifierType" => "PID",
310
- "internalIdentifierValue" => "FL403630"
311
- }
312
- ],
313
- }
314
- }
315
- },
316
- "Nachtzicht strand Ærøskøbing" => {
317
- :id => "FL403631",
318
- :amd => {
319
- :tech => {
320
- "objectCharacteristics" => [
321
- {
322
- "objectType" => "FILE",
323
- "creationDate" => "2015-10-31 11:24:55",
324
- "createdBy" => "testadmin",
325
- "owner" => "CRS00.TESTINS.TESTDEP"
326
- }
327
- ],
328
- "internalIdentifier" => [
329
- {
330
- "internalIdentifierType" => "PID",
331
- "internalIdentifierValue" => "FL403631"
332
- }
333
- ],
334
- }
335
- }
336
- },
337
- "Strandvej schiereiland Ærøskøbing" => {
338
- :id => "FL403632",
339
- :amd => {
340
- :tech => {
341
- "objectCharacteristics" => [
342
- {
343
- "objectType" => "FILE",
344
- "creationDate" => "2015-10-31 11:24:55",
345
- "createdBy" => "testadmin",
346
- "owner" => "CRS00.TESTINS.TESTDEP"
347
- }
348
- ],
349
- "internalIdentifier" => [
350
- {
351
- "internalIdentifierType" => "PID",
352
- "internalIdentifierValue" => "FL403632"
353
- }
354
- ],
355
- }
356
- }
357
- },
358
- "Skjoldnæs Fyr - Søby" => {
359
- :id => "FL403633",
360
- :amd => {
361
- :tech => {
362
- "objectCharacteristics" => [
363
- {
364
- "objectType" => "FILE",
365
- "creationDate" => "2015-10-31 11:24:55",
366
- "createdBy" => "testadmin",
367
- "owner" => "CRS00.TESTINS.TESTDEP"
368
- }
369
- ],
370
- "internalIdentifier" => [
371
- {
372
- "internalIdentifierType" => "PID",
373
- "internalIdentifierValue" => "FL403633"
374
- }
375
- ],
376
- }
377
- }
378
- },
379
- "Ingang Legoland Billund" => {
380
- :id => "FL403634",
381
- :amd => {
382
- :tech => {
383
- "objectCharacteristics" => [
384
- {
385
- "objectType" => "FILE",
386
- "creationDate" => "2015-10-31 11:24:55",
387
- "createdBy" => "testadmin",
388
- "owner" => "CRS00.TESTINS.TESTDEP"
389
- }
390
- ],
391
- "internalIdentifier" => [
392
- {
393
- "internalIdentifierType" => "PID",
394
- "internalIdentifierValue" => "FL403634"
395
- }
396
- ],
397
- }
398
- }
399
- }
400
- }
401
- },
402
76
  "Preservation Master" => {
403
77
  :id => "REP403596",
404
78
  :amd => {