toccatore 0.2 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/toccatore/base.rb +16 -1
- data/lib/toccatore/cli.rb +3 -5
- data/lib/toccatore/orcid_update.rb +9 -3
- data/lib/toccatore/version.rb +1 -1
- data/spec/cli_spec.rb +5 -0
- data/spec/fixtures/orcid_update_is_identical.json +24 -0
- data/spec/fixtures/orcid_update_is_part.json +24 -0
- data/spec/fixtures/vcr_cassettes/Toccatore_CLI/orcid_update/should_delete.yml +134 -0
- data/spec/fixtures/vcr_cassettes/Toccatore_OrcidUpdate/push_data/should_delete_claims.yml +62 -0
- data/spec/orcid_update_spec.rb +35 -3
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 42293b18d16efba366c96b902b4afdbda27e1c0c
|
4
|
+
data.tar.gz: 449ce93c8348885f619907c0eda997e3c51d079a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f1992999cb94249db3d154025c587b6158449bb68111f3ac87e463cdb98025ebbddaa09a9945b0fadd43f5323f3bc92119738b1dee09d01b681a4a8fa37462e
|
7
|
+
data.tar.gz: 4eb82b6dd46ae1e7be78b87e44087d3c1ac41bc0fe64c5220e62a63a5117965e13d005b2c63ef7edbee62341f24c4d29b2a2bae146cb614fcc138257a1e0d8cf
|
data/Gemfile.lock
CHANGED
data/lib/toccatore/base.rb
CHANGED
@@ -23,7 +23,16 @@ module Toccatore
|
|
23
23
|
def get_query_url(options={})
|
24
24
|
updated = "updated:[#{options[:from_date]}T00:00:00Z TO #{options[:until_date]}T23:59:59Z]"
|
25
25
|
fq = "#{updated} AND has_metadata:true AND is_active:true"
|
26
|
-
|
26
|
+
|
27
|
+
if options[:doi].present?
|
28
|
+
q = "doi:#{options[:doi]}"
|
29
|
+
elsif options[:orcid].present?
|
30
|
+
q = "nameIdentifier:ORCID\\:#{options[:orcid]}"
|
31
|
+
elsif options[:query].present?
|
32
|
+
q = options[:query]
|
33
|
+
else
|
34
|
+
q = query
|
35
|
+
end
|
27
36
|
|
28
37
|
params = { q: q,
|
29
38
|
start: options[:offset],
|
@@ -358,6 +367,12 @@ module Toccatore
|
|
358
367
|
def name_detector
|
359
368
|
GenderDetector.new
|
360
369
|
end
|
370
|
+
|
371
|
+
def unfreeze(hsh)
|
372
|
+
new_hash = {}
|
373
|
+
hsh.each_pair { |k,v| new_hash.merge!({k.downcase.to_sym => v}) }
|
374
|
+
new_hash
|
375
|
+
end
|
361
376
|
end
|
362
377
|
end
|
363
378
|
|
data/lib/toccatore/cli.rb
CHANGED
@@ -22,15 +22,13 @@ module Toccatore
|
|
22
22
|
method_option :push_url, type: :string
|
23
23
|
method_option :from_date, type: :string, default: (Time.now.to_date - 1.day).iso8601
|
24
24
|
method_option :until_date, type: :string, default: Time.now.to_date.iso8601
|
25
|
-
method_option :
|
25
|
+
method_option :q, type: :string
|
26
26
|
method_option :orcid, type: :string
|
27
27
|
method_option :doi, type: :string
|
28
|
+
method_option :claim_action, type: :string, default: "create"
|
28
29
|
def orcid_update
|
29
|
-
options[:query] = "doi:#{options[:doi]}" if options[:doi].present?
|
30
|
-
options[:query] = "nameIdentifier:ORCID\\:#{options[:orcid]}" if options[:orcid].present?
|
31
|
-
|
32
30
|
orcid_update = Toccatore::OrcidUpdate.new
|
33
|
-
orcid_update.queue_jobs(options)
|
31
|
+
orcid_update.queue_jobs(orcid_update.unfreeze(options))
|
34
32
|
end
|
35
33
|
end
|
36
34
|
end
|
@@ -14,12 +14,17 @@ module Toccatore
|
|
14
14
|
return result.body.fetch("errors") if result.body.fetch("errors", nil).present?
|
15
15
|
|
16
16
|
items = result.body.fetch("data", {}).fetch('response', {}).fetch('docs', nil)
|
17
|
+
claim_action = options[:claim_action].presence || "create"
|
17
18
|
|
18
19
|
Array(items).reduce([]) do |sum, item|
|
19
20
|
doi = item.fetch("doi")
|
21
|
+
related_identifiers = item.fetch("relatedIdentifier", [])
|
22
|
+
skip_doi = related_identifiers.any? do |related_identifier|
|
23
|
+
["IsIdenticalTo", "IsPartOf"].include?(related_identifier.split(':', 3).first)
|
24
|
+
end
|
20
25
|
name_identifiers = item.fetch("nameIdentifier", [])
|
21
26
|
|
22
|
-
if name_identifiers.blank?
|
27
|
+
if name_identifiers.blank? || (skip_doi && claim_action == "create") || (!skip_doi && claim_action == "delete")
|
23
28
|
sum
|
24
29
|
else
|
25
30
|
name_identifiers.each do |name_identifier|
|
@@ -31,7 +36,7 @@ module Toccatore
|
|
31
36
|
sum << { "orcid" => orcid,
|
32
37
|
"doi" => doi,
|
33
38
|
"source_id" => source_id,
|
34
|
-
"claim_action"=>
|
39
|
+
"claim_action"=> claim_action }
|
35
40
|
end
|
36
41
|
sum
|
37
42
|
end
|
@@ -60,7 +65,8 @@ module Toccatore
|
|
60
65
|
if response.body["data"].present?
|
61
66
|
doi = response.body.fetch("data", {}).fetch("attributes", {}).fetch("doi", nil)
|
62
67
|
orcid = response.body.fetch("data", {}).fetch("attributes", {}).fetch("orcid", nil)
|
63
|
-
|
68
|
+
claim_action = response.body.fetch("data", {}).fetch("attributes", {}).fetch("claim-action", nil)
|
69
|
+
puts "#{claim_action.titleize} DOI #{doi} for ORCID ID #{orcid} pushed to Profiles service."
|
64
70
|
elsif response.body["errors"].present?
|
65
71
|
puts "An error occured: #{response.body['errors'].first['title']}"
|
66
72
|
end
|
data/lib/toccatore/version.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -26,6 +26,11 @@ describe Toccatore::CLI do
|
|
26
26
|
expect { subject.orcid_update }.to output(/DOI 10.5438\/6423 for ORCID ID 0000-0001-5331-6592 pushed to Profiles service.\n/).to_stdout
|
27
27
|
end
|
28
28
|
|
29
|
+
it 'should delete' do
|
30
|
+
subject.options = cli_options.merge(doi: "10.6084/M9.FIGSHARE.4126869.V1", from_date: "2013-01-01", until_date: "2016-12-31", claim_action: "delete")
|
31
|
+
expect { subject.orcid_update }.to output(/Delete DOI 10.6084\/M9.FIGSHARE.4126869.V1 for ORCID ID 0000-0003-1013-1533 pushed to Profiles service.\n/).to_stdout
|
32
|
+
end
|
33
|
+
|
29
34
|
it 'should query by ORCID ID' do
|
30
35
|
subject.options = cli_options.merge(orcid: "0000-0002-3546-1048", from_date: "2013-01-01", until_date: "2016-12-31")
|
31
36
|
expect { subject.orcid_update }.to output(/DOI 10.6084\/M9.FIGSHARE.1041547 for ORCID ID 0000-0002-3546-1048 pushed to Profiles service.\n/).to_stdout
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"responseHeader": {
|
3
|
+
"status": 0,
|
4
|
+
"QTime": 0
|
5
|
+
},
|
6
|
+
"response": {
|
7
|
+
"numFound": 1,
|
8
|
+
"start": 0,
|
9
|
+
"docs": [{
|
10
|
+
"minted": "2016-10-28T21:43:49Z",
|
11
|
+
"datacentre_symbol": "FIGSHARE.ARS",
|
12
|
+
"xml": "PHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC0zL21ldGFkYXRhLnhzZCI+PGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNjA4NC9tOS5maWdzaGFyZS40MTI2ODY5LnYxPC9pZGVudGlmaWVyPjxjcmVhdG9ycz48Y3JlYXRvcj48Y3JlYXRvck5hbWU+U2hpcmxleSBaaGFvPC9jcmVhdG9yTmFtZT48bmFtZUlkZW50aWZpZXIgbmFtZUlkZW50aWZpZXJTY2hlbWU9Ik9SQ0lEIiBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmciPjAwMDAtMDAwMy0xMDEzLTE1MzM8L25hbWVJZGVudGlmaWVyPjwvY3JlYXRvcj48L2NyZWF0b3JzPjx0aXRsZXM+PHRpdGxlPkluZm9ybWF0aW9uIEVsZXZhdGVkJTNBIEpvaW4gdGhlIFV0YWggU29jaWV0eSBvZiBIZWFsdGggU2NpZW5jZXMgTGlicmFyaWFuczwvdGl0bGU+PC90aXRsZXM+PGRlc2NyaXB0aW9ucz48ZGVzY3JpcHRpb24gZGVzY3JpcHRpb25UeXBlPSJBYnN0cmFjdCI+VGhlIFV0YWggU29jaWV0eSBvZiBIZWFsdGggU2NpZW5jZXMgTGlicmFyaWFucyAoVVNIU0wpIHN1cHBvcnRzIGxpYnJhcnkgcHJvZmVzc2lvbmFscyBpbiBVdGFoIHdobyBoYXZlIGFuIGludGVyZXN0IGluIGltcHJvdmluZyB0aGVpciBza2lsbHMgYXMgaGVhbHRoIGluZm9ybWF0aW9uIHByb3ZpZGVycy4gJmx0O2JyJmd0OzwvZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbnM+PHN1YmplY3RzPjxzdWJqZWN0PkxpYnJhcnkgYW5kIEluZm9ybWF0aW9uIFN0dWRpZXM8L3N1YmplY3Q+PHN1YmplY3Qgc2NoZW1lVVJJPSJodHRwOi8vd3d3LmFicy5nb3YuYXUvYXVzc3RhdHMvYWJzQC5uc2YvMC82QkI0MjdBQjk2OTZDMjI1Q0EyNTc0MTgwMDA0NDYzRSIgc3ViamVjdFNjaGVtZT0iRk9SIj4xMTk5OTkgTWVkaWNhbCBhbmQgSGVhbHRoIFNjaWVuY2VzIG5vdCBlbHNld2hlcmUgY2xhc3NpZmllZDwvc3ViamVjdD48L3N1YmplY3RzPjxwdWJsaXNoZXI+Rmlnc2hhcmU8L3B1Ymxpc2hlcj48cHVibGljYXRpb25ZZWFyPjIwMTY8L3B1YmxpY2F0aW9uWWVhcj48ZGF0ZXM+PGRhdGUgZGF0ZVR5cGU9IkNyZWF0ZWQiPjIwMTYtMTAtMjg8L2RhdGU+PGRhdGUgZGF0ZVR5cGU9IlVwZGF0ZWQiPjIwMTYtMTAtMjg8L2RhdGU+PC9kYXRlcz48cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IkltYWdlIj5Qb3N0ZXI8L3Jlc291cmNlVHlwZT48c2l6ZXM+PHNpemU+NTM1MzI5IEJ5dGVzPC9zaXplPjwvc2l6ZXM+PHJlbGF0ZWRJZGVudGlmaWVycz48cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNJZGVudGljYWxUbyI+MTAuNjA4NC9tOS5maWdzaGFyZS40MTI2ODY5PC9yZWxhdGVkSWRlbnRpZmllcj48L3JlbGF0ZWRJZGVudGlmaWVycz48cmlnaHRzTGlzdD48cmlnaHRzIHJpZ2h0c1VSST0iaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzQuMC8iPkNDLUJZPC9yaWdodHM+PC9yaWdodHNMaXN0PjwvcmVzb3VyY2U+",
|
13
|
+
"updated": "2016-10-28T21:44:42Z",
|
14
|
+
"doi": "10.6084/M9.FIGSHARE.4126869.V1",
|
15
|
+
"publisher": "Figshare",
|
16
|
+
"creator": ["Shirley Zhao"],
|
17
|
+
"title": ["Information Elevated%3A Join the Utah Society of Health Sciences Librarians"],
|
18
|
+
"resourceTypeGeneral": "Image",
|
19
|
+
"relatedIdentifier": ["IsIdenticalTo:DOI:10.6084/m9.figshare.4126869"],
|
20
|
+
"nameIdentifier": ["ORCID:0000-0003-1013-1533"],
|
21
|
+
"publicationYear": "2016"
|
22
|
+
}]
|
23
|
+
}
|
24
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
{
|
2
|
+
"responseHeader": {
|
3
|
+
"status": 0,
|
4
|
+
"QTime": 2
|
5
|
+
},
|
6
|
+
"response": {
|
7
|
+
"numFound": 1,
|
8
|
+
"start": 0,
|
9
|
+
"docs": [{
|
10
|
+
"minted": "2016-12-17T09:20:41Z",
|
11
|
+
"datacentre_symbol": "BL.IMPERIAL",
|
12
|
+
"xml": "PHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuMTQ0NjkvaHBjLzE5ODU8L2lkZW50aWZpZXI+CiAgPGNyZWF0b3JzPgogICAgPGNyZWF0b3I+CiAgICAgIDxjcmVhdG9yTmFtZT5IZW5yeSBSemVwYTwvY3JlYXRvck5hbWU+CiAgICAgIDxuYW1lSWRlbnRpZmllciBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmciIG5hbWVJZGVudGlmaWVyU2NoZW1lPSJPUkNJRCI+MDAwMC0wMDAyLTg2MzUtODM5MDwvbmFtZUlkZW50aWZpZXI+CiAgICAgIDxhZmZpbGlhdGlvbj5JbXBlcmlhbCBDb2xsZWdlIExvbmRvbjwvYWZmaWxpYXRpb24+CiAgICA8L2NyZWF0b3I+CiAgPC9jcmVhdG9ycz4KICA8Y29udHJpYnV0b3JzPgogICAgPGNvbnRyaWJ1dG9yIGNvbnRyaWJ1dG9yVHlwZT0iSG9zdGluZ0luc3RpdHV0aW9uIj4KICAgICAgPGNvbnRyaWJ1dG9yTmFtZT5JbXBlcmlhbCBDb2xsZWdlIExvbmRvbjwvY29udHJpYnV0b3JOYW1lPgogICAgPC9jb250cmlidXRvcj4KICAgIDxjb250cmlidXRvciBjb250cmlidXRvclR5cGU9IkRhdGFNYW5hZ2VyIj4KICAgICAgPGNvbnRyaWJ1dG9yTmFtZT5JbXBlcmlhbCBDb2xsZWdlIEhpZ2ggUGVyZm9ybWFuY2UgQ29tcHV0aW5nIFNlcnZpY2U8L2NvbnRyaWJ1dG9yTmFtZT4KICAgIDwvY29udHJpYnV0b3I+CiAgICA8Y29udHJpYnV0b3IgY29udHJpYnV0b3JUeXBlPSJSZXNlYXJjaGVyIj4KICAgICAgPGNvbnRyaWJ1dG9yTmFtZT5IZW5yeSBSemVwYTwvY29udHJpYnV0b3JOYW1lPgogICAgICA8bmFtZUlkZW50aWZpZXIgc2NoZW1lVVJJPSJodHRwOi8vb3JjaWQub3JnIiBuYW1lSWRlbnRpZmllclNjaGVtZT0iT1JDSUQiPjAwMDAtMDAwMi04NjM1LTgzOTA8L25hbWVJZGVudGlmaWVyPgogICAgICA8YWZmaWxpYXRpb24+SW1wZXJpYWwgQ29sbGVnZSBMb25kb248L2FmZmlsaWF0aW9uPgogICAgPC9jb250cmlidXRvcj4KICA8L2NvbnRyaWJ1dG9ycz4KICA8ZGVzY3JpcHRpb25zPgogICAgPGRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uVHlwZT0iT3RoZXIiPlFUQUlNIGFuYWx5c2lzIG9mIENyIHN5c3RlbSB3aXRoIHRocmVlIGRpZmZlcmVudCB0eXBlcyBvZiBDck4gYm9uZC48L2Rlc2NyaXB0aW9uPgogIDwvZGVzY3JpcHRpb25zPgogIDx0aXRsZXM+CiAgICA8dGl0bGU+Q3JOMTIzOiBRVEFJTSBhbmFseXNpczwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5JbXBlcmlhbCBDb2xsZWdlIExvbmRvbjwvcHVibGlzaGVyPgogIDxwdWJsaWNhdGlvblllYXI+MjAxNjwvcHVibGljYXRpb25ZZWFyPgogIDxkYXRlcz4KICAgIDxkYXRlIGRhdGVUeXBlPSJDcmVhdGVkIj4yMDE2LTEyLTE3IDA5OjIwOjM3LjkyNTIwOTwvZGF0ZT4KICAgIDxkYXRlIGRhdGVUeXBlPSJVcGRhdGVkIj4yMDE2LTEyLTE3IDEwOjAwOjEwLjEzODU2MzwvZGF0ZT4KICA8L2RhdGVzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJVUkwiIHJlbGF0aW9uVHlwZT0iSGFzTWV0YWRhdGEiIHJlbGF0ZWRNZXRhZGF0YVNjaGVtZT0iT1JFIiBzY2hlbWVVUkk9Imh0dHA6Ly93d3cub3BlbmFyY2hpdmVzLm9yZy9vcmUvIj5odHRwczovL2RhdGEuaHBjLmltcGVyaWFsLmFjLnVrL3Jlc29sdmUvP29yZT0xOTg1PC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IlVSTCIgcmVsYXRpb25UeXBlPSJIYXNQYXJ0IiByZWxhdGVkTWV0YWRhdGFTY2hlbWU9IkZpbGVuYW1lIiBzY2hlbWVVUkk9ImZpbGVuYW1lOi8vWTNKdU15NXRaM0E9Ij5odHRwczovL2RhdGEuaHBjLmltcGVyaWFsLmFjLnVrL3Jlc29sdmUvP2RvaT0xOTg1JmFtcDtmaWxlPTE8L3JlbGF0ZWRJZGVudGlmaWVyPgogICAgPHJlbGF0ZWRJZGVudGlmaWVyIHJlbGF0ZWRJZGVudGlmaWVyVHlwZT0iVVJMIiByZWxhdGlvblR5cGU9Ikhhc1BhcnQiIHJlbGF0ZWRNZXRhZGF0YVNjaGVtZT0iRmlsZW5hbWUiIHNjaGVtZVVSST0iZmlsZW5hbWU6Ly9ZM0p1TXk1M1ptND0iPmh0dHBzOi8vZGF0YS5ocGMuaW1wZXJpYWwuYWMudWsvcmVzb2x2ZS8/ZG9pPTE5ODUmYW1wO2ZpbGU9MjwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJVUkwiIHJlbGF0aW9uVHlwZT0iSGFzUGFydCIgcmVsYXRlZE1ldGFkYXRhU2NoZW1lPSJGaWxlbmFtZSIgc2NoZW1lVVJJPSJmaWxlbmFtZTovL1kzSnVNeTV0WjNCMmFYbz0iPmh0dHBzOi8vZGF0YS5ocGMuaW1wZXJpYWwuYWMudWsvcmVzb2x2ZS8/ZG9pPTE5ODUmYW1wO2ZpbGU9MzwvcmVsYXRlZElkZW50aWZpZXI+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNSZWZlcmVuY2VkQnkiPjEwLjE0NDY5L2hwYy8xOTg2PC9yZWxhdGVkSWRlbnRpZmllcj4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc1BhcnRPZiI+MTAuMTQ0NjkvaHBjLzE3NzwvcmVsYXRlZElkZW50aWZpZXI+CiAgPC9yZWxhdGVkSWRlbnRpZmllcnM+CiAgPHN1YmplY3RzLz4KICA8cmlnaHRzTGlzdD4KICAgIDxyaWdodHMgcmlnaHRzVVJJPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wLyI+Q3JlYXRpdmUgQ29tbW9ucyBQdWJsaWMgRG9tYWluIERlZGljYXRpb24gKENDMCAxLjApPC9yaWdodHM+CiAgPC9yaWdodHNMaXN0PgogIDxyZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlR2VuZXJhbD0iRGF0YXNldCIvPgo8L3Jlc291cmNlPgo=",
|
13
|
+
"updated": "2016-12-17T10:00:10Z",
|
14
|
+
"doi": "10.14469/HPC/1985",
|
15
|
+
"relatedIdentifier": ["HasMetadata:URL:https://data.hpc.imperial.ac.uk/resolve/?ore=1985", "HasPart:URL:https://data.hpc.imperial.ac.uk/resolve/?doi=1985&file=1", "HasPart:URL:https://data.hpc.imperial.ac.uk/resolve/?doi=1985&file=2", "HasPart:URL:https://data.hpc.imperial.ac.uk/resolve/?doi=1985&file=3", "IsReferencedBy:DOI:10.14469/hpc/1986", "IsPartOf:DOI:10.14469/hpc/177"],
|
16
|
+
"creator": ["Henry Rzepa"],
|
17
|
+
"publisher": "Imperial College London",
|
18
|
+
"title": ["CrN123: QTAIM analysis"],
|
19
|
+
"nameIdentifier": ["ORCID:0000-0002-8635-8390"],
|
20
|
+
"publicationYear": "2016",
|
21
|
+
"resourceTypeGeneral": "Dataset"
|
22
|
+
}]
|
23
|
+
}
|
24
|
+
}
|
@@ -0,0 +1,134 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://search.datacite.org/api?fl=doi,creator,title,publisher,publicationYear,resourceTypeGeneral,datacentre_symbol,relatedIdentifier,nameIdentifier,xml,minted,updated&fq=updated:%5B2013-01-01T00:00:00Z%20TO%202016-12-31T23:59:59Z%5D%20AND%20has_metadata:true%20AND%20is_active:true&q=doi:10.6084/M9.FIGSHARE.4126869.V1&rows=0&start=0&wt=json
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Maremma - https://github.com/datacite/maremma
|
12
|
+
Accept:
|
13
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: ''
|
18
|
+
headers:
|
19
|
+
Server:
|
20
|
+
- openresty/1.11.2.1
|
21
|
+
Date:
|
22
|
+
- Sat, 04 Feb 2017 07:15:42 GMT
|
23
|
+
Content-Type:
|
24
|
+
- application/json;charset=UTF-8
|
25
|
+
Connection:
|
26
|
+
- keep-alive
|
27
|
+
Access-Control-Allow-Origin:
|
28
|
+
- "*"
|
29
|
+
Access-Control-Allow-Methods:
|
30
|
+
- GET, POST, OPTIONS
|
31
|
+
body:
|
32
|
+
encoding: UTF-8
|
33
|
+
string: '{"responseHeader":{"status":0,"QTime":1},"response":{"numFound":1,"start":0,"docs":[]}}
|
34
|
+
|
35
|
+
'
|
36
|
+
http_version:
|
37
|
+
recorded_at: Sat, 04 Feb 2017 07:15:42 GMT
|
38
|
+
- request:
|
39
|
+
method: get
|
40
|
+
uri: https://search.datacite.org/api?fl=doi,creator,title,publisher,publicationYear,resourceTypeGeneral,datacentre_symbol,relatedIdentifier,nameIdentifier,xml,minted,updated&fq=updated:%5B2013-01-01T00:00:00Z%20TO%202016-12-31T23:59:59Z%5D%20AND%20has_metadata:true%20AND%20is_active:true&q=doi:10.6084/M9.FIGSHARE.4126869.V1&rows=1000&start=0&wt=json
|
41
|
+
body:
|
42
|
+
encoding: US-ASCII
|
43
|
+
string: ''
|
44
|
+
headers:
|
45
|
+
User-Agent:
|
46
|
+
- Maremma - https://github.com/datacite/maremma
|
47
|
+
Accept:
|
48
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
49
|
+
response:
|
50
|
+
status:
|
51
|
+
code: 200
|
52
|
+
message: ''
|
53
|
+
headers:
|
54
|
+
Server:
|
55
|
+
- openresty/1.11.2.1
|
56
|
+
Date:
|
57
|
+
- Sat, 04 Feb 2017 07:15:42 GMT
|
58
|
+
Content-Type:
|
59
|
+
- application/json;charset=UTF-8
|
60
|
+
Connection:
|
61
|
+
- keep-alive
|
62
|
+
Access-Control-Allow-Origin:
|
63
|
+
- "*"
|
64
|
+
Access-Control-Allow-Methods:
|
65
|
+
- GET, POST, OPTIONS
|
66
|
+
body:
|
67
|
+
encoding: UTF-8
|
68
|
+
string: '{"responseHeader":{"status":0,"QTime":2},"response":{"numFound":1,"start":0,"docs":[{"minted":"2016-10-28T21:43:49Z","datacentre_symbol":"FIGSHARE.ARS","xml":"PHJlc291cmNlIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtMyBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC0zL21ldGFkYXRhLnhzZCI+PGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuNjA4NC9tOS5maWdzaGFyZS40MTI2ODY5LnYxPC9pZGVudGlmaWVyPjxjcmVhdG9ycz48Y3JlYXRvcj48Y3JlYXRvck5hbWU+U2hpcmxleSBaaGFvPC9jcmVhdG9yTmFtZT48bmFtZUlkZW50aWZpZXIgbmFtZUlkZW50aWZpZXJTY2hlbWU9Ik9SQ0lEIiBzY2hlbWVVUkk9Imh0dHA6Ly9vcmNpZC5vcmciPjAwMDAtMDAwMy0xMDEzLTE1MzM8L25hbWVJZGVudGlmaWVyPjwvY3JlYXRvcj48L2NyZWF0b3JzPjx0aXRsZXM+PHRpdGxlPkluZm9ybWF0aW9uIEVsZXZhdGVkJTNBIEpvaW4gdGhlIFV0YWggU29jaWV0eSBvZiBIZWFsdGggU2NpZW5jZXMgTGlicmFyaWFuczwvdGl0bGU+PC90aXRsZXM+PGRlc2NyaXB0aW9ucz48ZGVzY3JpcHRpb24gZGVzY3JpcHRpb25UeXBlPSJBYnN0cmFjdCI+VGhlIFV0YWggU29jaWV0eSBvZiBIZWFsdGggU2NpZW5jZXMgTGlicmFyaWFucyAoVVNIU0wpIHN1cHBvcnRzIGxpYnJhcnkgcHJvZmVzc2lvbmFscyBpbiBVdGFoIHdobyBoYXZlIGFuIGludGVyZXN0IGluIGltcHJvdmluZyB0aGVpciBza2lsbHMgYXMgaGVhbHRoIGluZm9ybWF0aW9uIHByb3ZpZGVycy4gJmx0O2JyJmd0OzwvZGVzY3JpcHRpb24+PC9kZXNjcmlwdGlvbnM+PHN1YmplY3RzPjxzdWJqZWN0PkxpYnJhcnkgYW5kIEluZm9ybWF0aW9uIFN0dWRpZXM8L3N1YmplY3Q+PHN1YmplY3Qgc2NoZW1lVVJJPSJodHRwOi8vd3d3LmFicy5nb3YuYXUvYXVzc3RhdHMvYWJzQC5uc2YvMC82QkI0MjdBQjk2OTZDMjI1Q0EyNTc0MTgwMDA0NDYzRSIgc3ViamVjdFNjaGVtZT0iRk9SIj4xMTk5OTkgTWVkaWNhbCBhbmQgSGVhbHRoIFNjaWVuY2VzIG5vdCBlbHNld2hlcmUgY2xhc3NpZmllZDwvc3ViamVjdD48L3N1YmplY3RzPjxwdWJsaXNoZXI+Rmlnc2hhcmU8L3B1Ymxpc2hlcj48cHVibGljYXRpb25ZZWFyPjIwMTY8L3B1YmxpY2F0aW9uWWVhcj48ZGF0ZXM+PGRhdGUgZGF0ZVR5cGU9IkNyZWF0ZWQiPjIwMTYtMTAtMjg8L2RhdGU+PGRhdGUgZGF0ZVR5cGU9IlVwZGF0ZWQiPjIwMTYtMTAtMjg8L2RhdGU+PC9kYXRlcz48cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IkltYWdlIj5Qb3N0ZXI8L3Jlc291cmNlVHlwZT48c2l6ZXM+PHNpemU+NTM1MzI5IEJ5dGVzPC9zaXplPjwvc2l6ZXM+PHJlbGF0ZWRJZGVudGlmaWVycz48cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iSXNJZGVudGljYWxUbyI+MTAuNjA4NC9tOS5maWdzaGFyZS40MTI2ODY5PC9yZWxhdGVkSWRlbnRpZmllcj48L3JlbGF0ZWRJZGVudGlmaWVycz48cmlnaHRzTGlzdD48cmlnaHRzIHJpZ2h0c1VSST0iaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzQuMC8iPkNDLUJZPC9yaWdodHM+PC9yaWdodHNMaXN0PjwvcmVzb3VyY2U+","updated":"2016-10-28T21:44:42Z","doi":"10.6084/M9.FIGSHARE.4126869.V1","publisher":"Figshare","creator":["Shirley
|
69
|
+
Zhao"],"title":["Information Elevated%3A Join the Utah Society of Health Sciences
|
70
|
+
Librarians"],"resourceTypeGeneral":"Image","relatedIdentifier":["IsIdenticalTo:DOI:10.6084/m9.figshare.4126869"],"nameIdentifier":["ORCID:0000-0003-1013-1533"],"publicationYear":"2016"}]}}
|
71
|
+
|
72
|
+
'
|
73
|
+
http_version:
|
74
|
+
recorded_at: Sat, 04 Feb 2017 07:15:42 GMT
|
75
|
+
- request:
|
76
|
+
method: post
|
77
|
+
uri: https://profiles.test.datacite.org/api/claims
|
78
|
+
body:
|
79
|
+
encoding: UTF-8
|
80
|
+
string: '{"claim":{"orcid":"0000-0003-1013-1533","doi":"10.6084/M9.FIGSHARE.4126869.V1","source_id":"orcid_update","claim_action":"delete"}}'
|
81
|
+
headers:
|
82
|
+
User-Agent:
|
83
|
+
- Maremma - https://github.com/datacite/maremma
|
84
|
+
Content-Type:
|
85
|
+
- application/json
|
86
|
+
Accept:
|
87
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
88
|
+
Authorization:
|
89
|
+
- Token token=<VOLPINO_TOKEN>
|
90
|
+
response:
|
91
|
+
status:
|
92
|
+
code: 202
|
93
|
+
message: ''
|
94
|
+
headers:
|
95
|
+
Server:
|
96
|
+
- openresty/1.11.2.1
|
97
|
+
Date:
|
98
|
+
- Sat, 04 Feb 2017 07:15:42 GMT
|
99
|
+
Content-Type:
|
100
|
+
- application/json; charset=utf-8
|
101
|
+
Connection:
|
102
|
+
- keep-alive
|
103
|
+
Status:
|
104
|
+
- 202 Accepted
|
105
|
+
Cache-Control:
|
106
|
+
- no-cache
|
107
|
+
Access-Control-Allow-Origin:
|
108
|
+
- "*"
|
109
|
+
Vary:
|
110
|
+
- Accept-Encoding
|
111
|
+
Access-Control-Max-Age:
|
112
|
+
- '1728000'
|
113
|
+
X-Xss-Protection:
|
114
|
+
- 1; mode=block
|
115
|
+
X-Request-Id:
|
116
|
+
- f2c75afc-f780-48cf-a92b-5663fd8b3e68
|
117
|
+
Access-Control-Allow-Headers:
|
118
|
+
- Origin, Content-Type, Accept, Authorization, Token
|
119
|
+
Access-Control-Allow-Methods:
|
120
|
+
- GET, POST, OPTIONS
|
121
|
+
X-Runtime:
|
122
|
+
- '0.084516'
|
123
|
+
X-Frame-Options:
|
124
|
+
- SAMEORIGIN
|
125
|
+
X-Content-Type-Options:
|
126
|
+
- nosniff
|
127
|
+
X-Powered-By:
|
128
|
+
- Phusion Passenger 5.1.2
|
129
|
+
body:
|
130
|
+
encoding: UTF-8
|
131
|
+
string: '{"data":{"id":"df624600-24c0-4d97-a85e-ca8fe165fe40","type":"claims","attributes":{"orcid":"0000-0003-1013-1533","doi":"10.6084/M9.FIGSHARE.4126869.V1","source-id":"orcid_update","state":"waiting","claim-action":"delete","claimed-at":null}}}'
|
132
|
+
http_version:
|
133
|
+
recorded_at: Sat, 04 Feb 2017 07:15:42 GMT
|
134
|
+
recorded_with: VCR 3.0.3
|
@@ -0,0 +1,62 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: https://profiles.test.datacite.org/api/claims
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: '{"claim":{"orcid":"0000-0003-1013-1533","doi":"10.6084/M9.FIGSHARE.4126869.V1","source_id":"orcid_update","claim_action":"delete"}}'
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Maremma - https://github.com/datacite/maremma
|
12
|
+
Content-Type:
|
13
|
+
- application/json
|
14
|
+
Accept:
|
15
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
16
|
+
Authorization:
|
17
|
+
- Token token=<VOLPINO_TOKEN>
|
18
|
+
response:
|
19
|
+
status:
|
20
|
+
code: 202
|
21
|
+
message: ''
|
22
|
+
headers:
|
23
|
+
Server:
|
24
|
+
- openresty/1.11.2.1
|
25
|
+
Date:
|
26
|
+
- Sat, 04 Feb 2017 07:26:47 GMT
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Connection:
|
30
|
+
- keep-alive
|
31
|
+
Status:
|
32
|
+
- 202 Accepted
|
33
|
+
Cache-Control:
|
34
|
+
- no-cache
|
35
|
+
Access-Control-Allow-Origin:
|
36
|
+
- "*"
|
37
|
+
Vary:
|
38
|
+
- Accept-Encoding
|
39
|
+
Access-Control-Max-Age:
|
40
|
+
- '1728000'
|
41
|
+
X-Xss-Protection:
|
42
|
+
- 1; mode=block
|
43
|
+
X-Request-Id:
|
44
|
+
- 1f76ff9a-5012-467d-b187-dc044107faaa
|
45
|
+
Access-Control-Allow-Headers:
|
46
|
+
- Origin, Content-Type, Accept, Authorization, Token
|
47
|
+
Access-Control-Allow-Methods:
|
48
|
+
- GET, POST, OPTIONS
|
49
|
+
X-Runtime:
|
50
|
+
- '0.008897'
|
51
|
+
X-Frame-Options:
|
52
|
+
- SAMEORIGIN
|
53
|
+
X-Content-Type-Options:
|
54
|
+
- nosniff
|
55
|
+
X-Powered-By:
|
56
|
+
- Phusion Passenger 5.1.2
|
57
|
+
body:
|
58
|
+
encoding: UTF-8
|
59
|
+
string: '{"data":{"id":"df624600-24c0-4d97-a85e-ca8fe165fe40","type":"claims","attributes":{"orcid":"0000-0003-1013-1533","doi":"10.6084/M9.FIGSHARE.4126869.V1","source-id":"orcid_update","state":"failed","claim-action":"delete","claimed-at":null}}}'
|
60
|
+
http_version:
|
61
|
+
recorded_at: Tue, 07 Apr 2015 22:00:00 GMT
|
62
|
+
recorded_with: VCR 3.0.3
|
data/spec/orcid_update_spec.rb
CHANGED
@@ -63,14 +63,14 @@ describe Toccatore::OrcidUpdate, vcr: true do
|
|
63
63
|
end
|
64
64
|
|
65
65
|
it "should allow queries by ORCID ID of the Datacite Metadata Search API" do
|
66
|
-
response = subject.get_data({
|
66
|
+
response = subject.get_data({ orcid: "0000-0002-3546-1048", from_date: "2013-01-01", until_date: "2016-12-31", rows: 1000, offset: 0 })
|
67
67
|
expect(response.body["data"]["response"]["numFound"]).to eq(68)
|
68
68
|
doc = response.body["data"]["response"]["docs"].first
|
69
69
|
expect(doc["doi"]).to eq("10.6084/M9.FIGSHARE.1371005.V1")
|
70
70
|
end
|
71
71
|
|
72
72
|
it "should allow queries by DOI of the Datacite Metadata Search API" do
|
73
|
-
response = subject.get_data({
|
73
|
+
response = subject.get_data({ doi: "10.5438/6423", from_date: "2013-01-01", until_date: "2016-12-31", rows: 1000, offset: 0 })
|
74
74
|
expect(response.body["data"]["response"]["numFound"]).to eq(1)
|
75
75
|
doc = response.body["data"]["response"]["docs"].first
|
76
76
|
name_identifiers = doc["nameIdentifier"]
|
@@ -105,6 +105,24 @@ describe Toccatore::OrcidUpdate, vcr: true do
|
|
105
105
|
"claim_action" => "create")
|
106
106
|
end
|
107
107
|
|
108
|
+
it "should report if there are works ignored because of an IsIdenticalTo relation" do
|
109
|
+
body = File.read(fixture_path + 'orcid_update_is_identical.json')
|
110
|
+
result = OpenStruct.new(body: { "data" => JSON.parse(body) })
|
111
|
+
expect(subject.parse_data(result)).to eq([])
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should report if there are works ignored because of an IsPartOf relation" do
|
115
|
+
body = File.read(fixture_path + 'orcid_update_is_part.json')
|
116
|
+
result = OpenStruct.new(body: { "data" => JSON.parse(body) })
|
117
|
+
expect(subject.parse_data(result)).to eq([])
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should report if there are works because of an IsIdenticalTo relation and delete action" do
|
121
|
+
body = File.read(fixture_path + 'orcid_update_is_identical.json')
|
122
|
+
result = OpenStruct.new(body: { "data" => JSON.parse(body) })
|
123
|
+
expect(subject.parse_data(result, claim_action: "delete")).to eq([{"orcid"=>"0000-0003-1013-1533", "doi"=>"10.6084/M9.FIGSHARE.4126869.V1", "source_id"=>"orcid_update", "claim_action"=>"delete"}])
|
124
|
+
end
|
125
|
+
|
108
126
|
it "should catch timeout errors with the Datacite Metadata Search API" do
|
109
127
|
result = OpenStruct.new(body: { "errors" => [{ "title" => "the server responded with status 408 for https://search.datacite.org", "status" => 408 }] })
|
110
128
|
response = subject.parse_data(result)
|
@@ -123,7 +141,21 @@ describe Toccatore::OrcidUpdate, vcr: true do
|
|
123
141
|
result = OpenStruct.new(body: { "data" => JSON.parse(body) })
|
124
142
|
result = subject.parse_data(result)
|
125
143
|
options = { push_url: ENV['VOLPINO_URL'], access_token: ENV['VOLPINO_TOKEN'] }
|
126
|
-
expect { subject.push_data(result, options) }.to output(/DOI 10.6084\/M9.FIGSHARE.1041547 for ORCID ID 0000-0002-3546-1048 pushed to Profiles service.\n/).to_stdout
|
144
|
+
expect { subject.push_data(result, options) }.to output(/Create DOI 10.6084\/M9.FIGSHARE.1041547 for ORCID ID 0000-0002-3546-1048 pushed to Profiles service.\n/).to_stdout
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should delete claims" do
|
148
|
+
body = File.read(fixture_path + 'orcid_update_is_identical.json')
|
149
|
+
result = OpenStruct.new(body: { "data" => JSON.parse(body) })
|
150
|
+
result = subject.parse_data(result, claim_action: "delete")
|
151
|
+
options = { push_url: ENV['VOLPINO_URL'], access_token: ENV['VOLPINO_TOKEN'], from_date: "2013-01-01", until_date: "2016-12-31", claim_action: "delete" }
|
152
|
+
expect { subject.push_data(result, options) }.to output(/Delete DOI 10.6084\/M9.FIGSHARE.4126869.V1 for ORCID ID 0000-0003-1013-1533 pushed to Profiles service.\n/).to_stdout
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
context "unfreeze" do
|
157
|
+
it "should unfreeze" do
|
158
|
+
expect(subject.unfreeze(query_options)).to eq(:from_date=>"2015-04-07", :until_date=>"2015-04-08", :rows=>1000, :offset=>0)
|
127
159
|
end
|
128
160
|
end
|
129
161
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: toccatore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Fenner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: maremma
|
@@ -260,7 +260,10 @@ files:
|
|
260
260
|
- lib/toccatore/version.rb
|
261
261
|
- spec/cli_spec.rb
|
262
262
|
- spec/fixtures/orcid_update.json
|
263
|
+
- spec/fixtures/orcid_update_is_identical.json
|
264
|
+
- spec/fixtures/orcid_update_is_part.json
|
263
265
|
- spec/fixtures/orcid_update_nil.json
|
266
|
+
- spec/fixtures/vcr_cassettes/Toccatore_CLI/orcid_update/should_delete.yml
|
264
267
|
- spec/fixtures/vcr_cassettes/Toccatore_CLI/orcid_update/should_fail.yml
|
265
268
|
- spec/fixtures/vcr_cassettes/Toccatore_CLI/orcid_update/should_query_by_DOI.yml
|
266
269
|
- spec/fixtures/vcr_cassettes/Toccatore_CLI/orcid_update/should_query_by_ORCID_ID.yml
|
@@ -273,6 +276,7 @@ files:
|
|
273
276
|
- spec/fixtures/vcr_cassettes/Toccatore_OrcidUpdate/get_data/should_report_if_there_are_works_returned_by_the_Datacite_Metadata_Search_API.yml
|
274
277
|
- spec/fixtures/vcr_cassettes/Toccatore_OrcidUpdate/get_total/with_no_works.yml
|
275
278
|
- spec/fixtures/vcr_cassettes/Toccatore_OrcidUpdate/get_total/with_works.yml
|
279
|
+
- spec/fixtures/vcr_cassettes/Toccatore_OrcidUpdate/push_data/should_delete_claims.yml
|
276
280
|
- spec/fixtures/vcr_cassettes/Toccatore_OrcidUpdate/push_data/should_report_if_there_are_works_returned_by_the_Datacite_Metadata_Search_API.yml
|
277
281
|
- spec/fixtures/vcr_cassettes/Toccatore_OrcidUpdate/queue_jobs/should_report_if_there_are_no_works_returned_by_the_Datacite_Metadata_Search_API.yml
|
278
282
|
- spec/fixtures/vcr_cassettes/Toccatore_OrcidUpdate/queue_jobs/should_report_if_there_are_works_returned_by_the_Datacite_Metadata_Search_API.yml
|