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 +4 -4
- data/lib/libis/services/oai.rb +39 -16
- data/lib/libis/services/rosetta/client.rb +1 -1
- data/lib/libis/services/rosetta/collection_handler.rb +1 -1
- data/lib/libis/services/rosetta/deposit_handler.rb +1 -1
- data/lib/libis/services/rosetta/ie_handler.rb +3 -3
- data/lib/libis/services/rosetta/oai_pmh.rb +4 -4
- data/lib/libis/services/rosetta/producer_handler.rb +1 -1
- data/lib/libis/services/rosetta/service.rb +1 -1
- data/lib/libis/services/rosetta/sip_handler.rb +1 -1
- data/lib/libis/services/rosetta/user_manager.rb +1 -1
- data/lib/libis/services/version.rb +1 -1
- data/libis-services.gemspec +3 -2
- data/spec/alma_service_spec.rb +12 -134
- data/spec/ie_data.rb +0 -326
- data/spec/rosetta_auth_spec.rb +5 -4
- data/spec/rosetta_collection_spec.rb +0 -14
- data/spec/rosetta_ie_spec.rb +3 -17
- data/spec/rosetta_oai_spec.rb +50 -11
- data/spec/rosetta_pds_spec.rb +4 -3
- data/spec/rosetta_producer_spec.rb +42 -48
- data/spec/scope_search_spec.rb +2 -2
- data/spec/spec_helper.rb +47 -20
- metadata +21 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d769686dc6aacfd5c2284f26e692fe0bb9b2dddcaf7493d39363395b043846c6
|
4
|
+
data.tar.gz: 327783e9345a9f65aee921dda2f834c6610acc9df6658fa3586dc449b01781bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84ec4e272d57865eeca0454d5f7348bc4065a6a34202e3e9982e63c761b4c408125595608429209f02a0788f7b51024da9318e095c1a99e30fb74eadcfbc2fc6
|
7
|
+
data.tar.gz: 9ecfd46c5bf0ee6f60c204d556ce4590023d1a76e074781ecb2cf055527ca8de7693c78f49d1254e4c750db891c01b521bea9cfda8f8c1cc3e4cbc62d557e1b5
|
data/lib/libis/services/oai.rb
CHANGED
@@ -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
|
14
|
-
@
|
15
|
-
@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
|
-
{
|
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
|
48
|
+
def metadata_formats(identifier = nil)
|
39
49
|
do_oai_request(:list_metadata_formats, {identifier: identifier})
|
40
50
|
end
|
41
51
|
|
42
|
-
def identifiers(
|
43
|
-
|
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(
|
48
|
-
|
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
|
-
|
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) || '
|
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 = '
|
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 = '
|
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 = '
|
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
|
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
|
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 = '
|
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,
|
13
|
-
|
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 = '
|
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 = '
|
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 = '
|
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 = '
|
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
|
|
data/libis-services.gemspec
CHANGED
@@ -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', '~>
|
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
|
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'
|
data/spec/alma_service_spec.rb
CHANGED
@@ -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 => {
|