to_spotlight 0.0.3 → 0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/to_spotlight/spotlight_transfer_controller.rb +28 -8
- data/app/jobs/to_spotlight/spotlight_transfer_job.rb +11 -12
- data/app/models/to_spotlight/spotlight_transfer.rb +4 -0
- data/app/views/to_spotlight/spotlight_transfer/_list_transfers.html.erb +1 -1
- data/app/views/to_spotlight/spotlight_transfer/approve.html.erb +1 -1
- data/lib/to_spotlight/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3dc3e37bf423a699fa57b0be84458a76c686728ba2a03e9c77568038e23f5182
|
4
|
+
data.tar.gz: f7afd69a08db348741e5bdfed68a600bfadfc7538af0334417efabacf8618578
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d4bf67bc61638150beb70abc78e6a2f91575824e777c7c983a5eda3ce07ef2617544ef03c38c05d51fbb19d9894d3ecce29496f028877d51b4bd8e3a305ab3ae
|
7
|
+
data.tar.gz: b8f4385cd08ed6a9de0afa4598c966665e85d9c287e3162c08c9bd05260c3eefadb3d5aee52f9f99e9563eda600a52dc9869aa84796accc7e320577834796b8b
|
@@ -43,9 +43,10 @@ module ToSpotlight
|
|
43
43
|
def approve
|
44
44
|
now = params[:commit].downcase.include?('now')
|
45
45
|
transfer = ToSpotlight::SpotlightTransfer.find params[:transfer_id]
|
46
|
-
works = ::
|
46
|
+
works = ::ActiveFedora::Base.where member_of_collection_ids_ssim: transfer.collection_id
|
47
47
|
mappings = mapping_invert transfer.mappings
|
48
|
-
SpotlightTransferJob.perform_later(works, mappings)
|
48
|
+
SpotlightTransferJob.perform_later(works.to_a, mappings) if now
|
49
|
+
SpotlightTransferJob.set(wait_until: Date.today.end_of_day).perform_later(works.to_a, mappings) unless now
|
49
50
|
#@res = ::Net::HTTP.post URI('http://localhost:3000/from_hyrax/receive'),
|
50
51
|
# { transfer: transfer.attributes,
|
51
52
|
# now: now,
|
@@ -56,10 +57,10 @@ module ToSpotlight
|
|
56
57
|
|
57
58
|
private
|
58
59
|
|
59
|
-
def mapping_invert
|
60
|
+
def mapping_invert(hash)
|
60
61
|
result = []
|
61
|
-
test
|
62
|
-
test.reduce({}, :merge).map { |k, v| v.map { |val| [val, k] } }.each { |a| a.each { |a2| result<<a2 } }
|
62
|
+
test = hash.map { |h| {h['hyrax'] => h['spotlight'].values} }
|
63
|
+
test.reduce({}, :merge).map { |k, v| v.map { |val| [val, k] } }.each { |a| a.each { |a2| result << a2 } }
|
63
64
|
Hash[result]
|
64
65
|
end
|
65
66
|
|
@@ -72,11 +73,11 @@ module ToSpotlight
|
|
72
73
|
end
|
73
74
|
|
74
75
|
def curated_fields
|
75
|
-
work_fields
|
76
|
+
{"common_fields" => (work_fields - excluded_fields - field_differences), "differences" => field_differences}
|
76
77
|
end
|
77
78
|
|
78
|
-
def work_fields
|
79
|
-
work.new.attributes.keys
|
79
|
+
def work_fields
|
80
|
+
curated_works.map { |work| work.constantize.new.attributes.keys }.flatten.uniq
|
80
81
|
#%w[id head tail depositor title date_uploaded date_modified state
|
81
82
|
# proxy_depositor on_behalf_of arkivo_checksum owner alternative_title
|
82
83
|
# edition geographic_coverage coordinates chronological_coverage extent
|
@@ -98,5 +99,24 @@ module ToSpotlight
|
|
98
99
|
representative_id thumbnail_id rendering_ids admin_set_id embargo_id
|
99
100
|
lease_id]
|
100
101
|
end
|
102
|
+
|
103
|
+
def field_differences
|
104
|
+
if @dif.nil?
|
105
|
+
@dif = []
|
106
|
+
curated_works.each do |work|
|
107
|
+
@dif += (work.constantize.new.attributes.keys - common_fields)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
@dif.uniq
|
111
|
+
end
|
112
|
+
|
113
|
+
def common_fields
|
114
|
+
@all_works_hash ||= intersect(curated_works.map { |w| w.constantize.new.attributes.keys })
|
115
|
+
end
|
116
|
+
|
117
|
+
def intersect a_of_a
|
118
|
+
eval a_of_a.map{|a| a.inspect}.join(' & ')
|
119
|
+
end
|
120
|
+
|
101
121
|
end
|
102
122
|
end
|
@@ -5,7 +5,7 @@ module ToSpotlight
|
|
5
5
|
def perform(works, mappings)
|
6
6
|
base_url = ::Account.where(tenant: Apartment::Tenant.current).first.cname
|
7
7
|
csv_headers = %w[url full_title_tesim] + mappings.keys + %w[children]
|
8
|
-
csv_array = csv_headers
|
8
|
+
csv_array = [csv_headers.join(',')]
|
9
9
|
#items = []
|
10
10
|
works.each do |wk|
|
11
11
|
#if comp
|
@@ -30,16 +30,16 @@ module ToSpotlight
|
|
30
30
|
doc = ::SolrDocument.find wk.id
|
31
31
|
|
32
32
|
line_hash = {}
|
33
|
-
line_hash
|
34
|
-
line_hash
|
33
|
+
line_hash['url'] = "http://#{base_url}/downloads/#{wk.file_sets.first.id}?locale=en" #url
|
34
|
+
line_hash['full_title_tesim'] = (doc.title.length > 1 ? doc.title.join('; ') : doc.title.first) #full_title_tesim
|
35
35
|
|
36
36
|
mappings.each do |skey, field|
|
37
37
|
line_hash[skey] = create_cell doc, field
|
38
38
|
end
|
39
39
|
|
40
|
-
line_hash
|
40
|
+
line_hash['children'] = children.join('|')
|
41
41
|
|
42
|
-
csv_array << line_hash.values_at(*csv_headers).map { |cell| cell =
|
42
|
+
csv_array << line_hash.values_at(*csv_headers).map { |cell| cell = '' if cell.nil?; "\"#{cell.gsub("\"","\"\"")}\"" }.join(',')
|
43
43
|
|
44
44
|
end
|
45
45
|
|
@@ -50,7 +50,6 @@ module ToSpotlight
|
|
50
50
|
File.open(dir.join(filename), 'wb') do |file|
|
51
51
|
file.write(csv_array.join("\n"))
|
52
52
|
end
|
53
|
-
items
|
54
53
|
end
|
55
54
|
|
56
55
|
def base_url
|
@@ -58,13 +57,13 @@ module ToSpotlight
|
|
58
57
|
end
|
59
58
|
|
60
59
|
def empty_fs_line fs_id, commas
|
61
|
-
"http://#{base_url}downloads/#{fs_id}?locale=en" + (
|
60
|
+
"http://#{base_url}downloads/#{fs_id}?locale=en" + (',' * commas)
|
62
61
|
end
|
63
62
|
|
64
63
|
def create_cell w, field
|
65
|
-
if w.respond_to?((field +
|
66
|
-
w.send(field +
|
67
|
-
|
64
|
+
if w.respond_to?((field + '_label').to_sym)
|
65
|
+
w.send(field + '_label').join(';')
|
66
|
+
elsif w.respond_to?(field.to_sym)
|
68
67
|
if w.send(field).is_a?(Array)
|
69
68
|
w.send(field).join(';')
|
70
69
|
else
|
@@ -84,7 +83,7 @@ module ToSpotlight
|
|
84
83
|
def get_resource list
|
85
84
|
output = []
|
86
85
|
list.each do |url|
|
87
|
-
if url.include?
|
86
|
+
if url.include? 'http'
|
88
87
|
output << Hyrax::ResourceTypesService.label(url)
|
89
88
|
else
|
90
89
|
output << url
|
@@ -96,7 +95,7 @@ module ToSpotlight
|
|
96
95
|
def get_rights list
|
97
96
|
output = []
|
98
97
|
list.each do |url|
|
99
|
-
if url.include?
|
98
|
+
if url.include? 'http'
|
100
99
|
output << ::VaultRightsStatementsService.label(url)
|
101
100
|
else
|
102
101
|
output << url
|
data/lib/to_spotlight/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: to_spotlight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: '0.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sephirothkod
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-04-
|
11
|
+
date: 2020-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|