libis-services 1.0.10 → 1.0.11

Sign up to get free protection for your applications and to get access to all the features.
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 => {