toccatore 0.3.6 → 0.3.8

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
  SHA1:
3
- metadata.gz: 8698a6f69a4f27c74355a45e88cd1f6d0725d48e
4
- data.tar.gz: 00da3c549c74c394783defee1ec0c6213ec13195
3
+ metadata.gz: 8c2d076ad83a73165bf2089a008c4461e477081d
4
+ data.tar.gz: e919fb11f3c1175f829a0df922b7e61316e89584
5
5
  SHA512:
6
- metadata.gz: f345ab88662824dfd50bc174b10895f2bd3aaa87dc925b086c92a8492d69c3a7b946fcc7d76d9734fa1bd64cb0208ed4aca7f251cee6f4b4e111e301eb948946
7
- data.tar.gz: 23a2dfe059d46d550f797ae7ffe4a33e7dabac58e34eff48748466147ac0de63597ca1593bb9d54f32baca3edc5756ce3bd2d173d01465081b655e234d1d29d1
6
+ metadata.gz: d75464dfcacaa20d34ac497a6c9d949ac5d9f8161e313268c68bd4dd926696c1069326167cc6e7475fafb3a2d9384b225836a3d15b71a1ed6f36d0f65e971652
7
+ data.tar.gz: f77217f8bff00303217370b7688a1601ebb0314196ad9490cca592059687c57ad0fdb508b02dcd47c5014605e4add6231407a13dde42507ae4287bda1cd4d2b9
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- toccatore (0.3.6)
4
+ toccatore (0.3.8)
5
5
  activesupport (~> 4.2, >= 4.2.5)
6
6
  dotenv (~> 2.1, >= 2.1.1)
7
7
  gender_detector (~> 1.0)
@@ -18,7 +18,7 @@ GEM
18
18
  minitest (~> 5.1)
19
19
  thread_safe (~> 0.3, >= 0.3.4)
20
20
  tzinfo (~> 1.1)
21
- addressable (2.5.0)
21
+ addressable (2.5.1)
22
22
  public_suffix (~> 2.0, >= 2.0.2)
23
23
  builder (3.2.3)
24
24
  codeclimate-test-reporter (1.0.8)
@@ -38,24 +38,24 @@ GEM
38
38
  gender_detector (1.0.0)
39
39
  hashdiff (0.3.2)
40
40
  i18n (0.8.1)
41
- json (2.0.3)
42
- maremma (3.5.1)
43
- activesupport (~> 4.2, >= 4.2.5)
41
+ json (2.1.0)
42
+ maremma (3.5.7)
43
+ activesupport (>= 4.2.5)
44
44
  addressable (>= 2.3.6)
45
45
  builder (~> 3.2, >= 3.2.2)
46
46
  excon (~> 0.45.0)
47
47
  faraday (~> 0.9.2)
48
48
  faraday-encoding (~> 0.0.1)
49
49
  faraday_middleware (~> 0.10.0)
50
- multi_json (~> 1.11.2)
51
- nokogiri (~> 1.6.7)
50
+ multi_json (~> 1.12)
51
+ nokogiri (~> 1.6, >= 1.6.8)
52
52
  oj (~> 2.18, >= 2.18.1)
53
53
  mini_portile2 (2.1.0)
54
54
  minitest (5.10.1)
55
- multi_json (1.11.3)
55
+ multi_json (1.12.1)
56
56
  multipart-post (2.0.0)
57
57
  namae (0.11.3)
58
- nokogiri (1.6.8.1)
58
+ nokogiri (1.7.1)
59
59
  mini_portile2 (~> 2.1.0)
60
60
  oj (2.18.5)
61
61
  public_suffix (2.0.5)
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![Code Climate](https://codeclimate.com/github/datacite/toccatore/badges/gpa.svg)](https://codeclimate.com/github/datacite/toccatore)
5
5
  [![Test Coverage](https://codeclimate.com/github/datacite/toccatore/badges/coverage.svg)](https://codeclimate.com/github/datacite/toccatore/coverage)
6
6
 
7
- Command-line client for finding ORCID IDs and DOIs not from DataCite as related identifiers in DataCite metadata.
7
+ Agent for Event Data service, providing links to ORCID IDs and DOIs not from DataCite as related identifiers in DataCite metadata.
8
8
 
9
9
  ## Development
10
10
 
@@ -67,17 +67,20 @@ module Toccatore
67
67
  if total > 0
68
68
  # walk through paginated results
69
69
  total_pages = (total.to_f / job_batch_size).ceil
70
+ error_total = 0
70
71
 
71
72
  (0...total_pages).each do |page|
72
73
  options[:offset] = page * job_batch_size
73
- process_data(options)
74
+ options[:total] = total
75
+ error_total += process_data(options)
74
76
  end
75
- text = "#{total} works processed for date range #{options[:from_date]} - #{options[:until_date]}."
77
+ text = "#{total} works processed with #{error_total} errors for date range #{options[:from_date]} - #{options[:until_date]}."
76
78
  else
77
79
  text = "No works found for date range #{options[:from_date]} - #{options[:until_date]}."
78
- puts text
79
80
  end
80
81
 
82
+ puts text
83
+
81
84
  # send slack notification
82
85
  options[:level] = total > 0 ? "good" : "warning"
83
86
  options[:title] = "Report for #{source_id}"
@@ -101,13 +104,20 @@ module Toccatore
101
104
  Maremma.get(query_url, options)
102
105
  end
103
106
 
107
+ # method returns number of errors
104
108
  def push_data(items, options={})
105
109
  if items.empty?
106
110
  puts "No works found for date range #{options[:from_date]} - #{options[:until_date]}."
111
+ 0
107
112
  elsif options[:access_token].blank?
108
113
  puts "An error occured: Access token missing."
114
+ options[:total]
109
115
  else
110
- Array(items).each { |item| push_item(item, options) }
116
+ error_total = 0
117
+ Array(items).each do |item|
118
+ error_total += push_item(item, options)
119
+ end
120
+ error_total
111
121
  end
112
122
  end
113
123
 
@@ -2,6 +2,8 @@ require_relative 'base'
2
2
 
3
3
  module Toccatore
4
4
  class DataciteRelated < Base
5
+ LICENSE = "https://creativecommons.org/publicdomain/zero/1.0/"
6
+
5
7
  def source_id
6
8
  "datacite_related"
7
9
  end
@@ -43,7 +45,8 @@ module Toccatore
43
45
  "relation_type_id" => raw_relation_type.underscore,
44
46
  "source_id" => "datacite",
45
47
  "source_token" => options[:source_token],
46
- "occurred_at" => item.fetch("minted") }
48
+ "occurred_at" => item.fetch("minted"),
49
+ "license" => LICENSE }
47
50
  else
48
51
  ssum
49
52
  end
@@ -76,10 +79,14 @@ module Toccatore
76
79
  host: host)
77
80
  end
78
81
 
82
+ # return 0 if successful, 1 if error
79
83
  if response.status == 201
80
84
  puts "#{item['subj_id']} #{item['relation_type_id']} #{item['obj_id']} pushed to Event Data service."
85
+ 0
81
86
  elsif response.body["errors"].present?
82
- puts "An error occured: #{response.body['errors'].first['title']}"
87
+ puts "#{item['subj_id']} #{item['relation_type_id']} #{item['obj_id']} had an error:"
88
+ puts "#{response.body['errors'].first['title']}"
89
+ 1
83
90
  end
84
91
  end
85
92
  end
@@ -56,8 +56,11 @@ module Toccatore
56
56
  orcid = response.body.fetch("data", {}).fetch("attributes", {}).fetch("orcid", nil)
57
57
  claim_action = response.body.fetch("data", {}).fetch("attributes", {}).fetch("claim-action", nil)
58
58
  puts "#{claim_action.titleize} DOI #{doi} for ORCID ID #{orcid} pushed to Profiles service."
59
+ 0
59
60
  elsif response.body["errors"].present?
60
- puts "An error occured: #{response.body['errors'].first['title']}"
61
+ puts "#{claim_action.titleize} DOI #{doi} for ORCID ID #{orcid} had an error:"
62
+ puts "#{response.body['errors'].first['title']}"
63
+ 1
61
64
  end
62
65
  end
63
66
  end
@@ -1,3 +1,3 @@
1
1
  module Toccatore
2
- VERSION = "0.3.6"
2
+ VERSION = "0.3.8"
3
3
  end
@@ -8,7 +8,7 @@ describe Toccatore::CLI do
8
8
 
9
9
  describe "version" do
10
10
  it 'has version' do
11
- expect { subject.__print_version }.to output("0.3.6\n").to_stdout
11
+ expect { subject.__print_version }.to output("0.3.8\n").to_stdout
12
12
  end
13
13
  end
14
14
 
@@ -102,7 +102,7 @@ describe Toccatore::DataciteRelated, vcr: true do
102
102
  response = subject.parse_data(result, source_token: ENV['SOURCE_TOKEN'])
103
103
 
104
104
  expect(response.length).to eq(134)
105
- expect(response.last.except("id")).to eq("message_action" => "create", "subj_id"=>"https://doi.org/10.17180/obs.yzeron", "obj_id"=>"https://doi.org/10.1016/j.jhydrol.2013.09.055", "relation_type_id"=>"is_referenced_by", "source_id"=>"datacite","source_token" => "28276d12-b320-41ba-9272-bb0adc3466ff", "occurred_at"=>"2015-04-07T12:22:40Z")
105
+ expect(response.last.except("id")).to eq("message_action" => "create", "subj_id"=>"https://doi.org/10.17180/obs.yzeron", "obj_id"=>"https://doi.org/10.1016/j.jhydrol.2013.09.055", "relation_type_id"=>"is_referenced_by", "source_id"=>"datacite","source_token" => "28276d12-b320-41ba-9272-bb0adc3466ff", "occurred_at"=>"2015-04-07T12:22:40Z", "license" => "https://creativecommons.org/publicdomain/zero/1.0/")
106
106
  end
107
107
 
108
108
  it "should report if there are works ignored because of an IsIdenticalTo relation" do
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: 0.3.6
4
+ version: 0.3.8
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-03-29 00:00:00.000000000 Z
11
+ date: 2017-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma