orcid_client 0.1.3 → 0.1.4

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
  SHA1:
3
- metadata.gz: 06aedf6fc89c166ce34cf962980c670b03002dc6
4
- data.tar.gz: 99915c37f16c28789753bdbd0e4ff7cc962d63c2
3
+ metadata.gz: 4029bf25df2ad75c7ae622f7ac356f1e87edbcba
4
+ data.tar.gz: 484dd8e735ac80dedb219487f29b4271205dec19
5
5
  SHA512:
6
- metadata.gz: 1f12959214bdabcc005dffc01d0171d3a513ecad5c200008d3e991ddad59bea309132e454f5963fd30934408bd0b02fdb60af391f737ffa42ddd927cdaa31b4b
7
- data.tar.gz: e59c507d30647c106c508ccd112c0054f41bc4bc7dc4d992d950f44178e7dda7fa29c953d5394b45b38e9a0590b8483fdb78aa2f08177008563a4c04ecdc5fd2
6
+ metadata.gz: 2412a070c7648ba1c4fe0d154ac9e2a1d3b782326d4e562d47ff1f6707304fd81b7ef6fd7f0cdd0707498e85e56804d725898f9e133603f99abba15d8b338691
7
+ data.tar.gz: 77e3a8897944889b34ffc617e07c4a8b5a35b42f9a789dc8050473fd93a2acd129b8d83ec61369f7fed7233160ff742fb189707e0148452ebe7542daf88611b7
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- orcid_client (0.1.3)
4
+ orcid_client (0.1.4)
5
5
  activesupport (~> 4.2, >= 4.2.5)
6
6
  builder (~> 3.2, >= 3.2.2)
7
7
  dotenv (~> 2.1, >= 2.1.1)
8
- maremma (~> 2.5)
8
+ maremma (~> 3.0)
9
9
  namae (~> 0.10.1)
10
10
  nokogiri (~> 1.6.8)
11
11
  sanitize (~> 4.0, >= 4.0.1)
@@ -37,10 +37,10 @@ GEM
37
37
  faraday
38
38
  faraday_middleware (0.10.1)
39
39
  faraday (>= 0.7.4, < 1.0)
40
- hashdiff (0.3.0)
40
+ hashdiff (0.3.1)
41
41
  i18n (0.7.0)
42
42
  json (1.8.3)
43
- maremma (2.5.3)
43
+ maremma (3.0.1)
44
44
  activesupport (~> 4.2, >= 4.2.5)
45
45
  builder (~> 3.2, >= 3.2.2)
46
46
  excon (~> 0.45.0)
@@ -20,8 +20,9 @@ module OrcidClient
20
20
 
21
21
  url = "#{orcid_api_url}/v#{API_VERSION}/#{orcid}/work"
22
22
  response = Maremma.post(url, content_type: 'application/vnd.orcid+xml', data: data, bearer: access_token)
23
- put_code = response.fetch("headers", {}).fetch("Location", "").split("/").last
24
- response.merge("put_code" => put_code.present? ? put_code.to_i : nil)
23
+ put_code = response.headers.fetch("Location", "").split("/").last
24
+ response.body["put_code"] = put_code.present? ? put_code.to_i : nil
25
+ response
25
26
  end
26
27
 
27
28
  def update_work(options={})
@@ -32,8 +33,9 @@ module OrcidClient
32
33
 
33
34
  url = "#{orcid_api_url}/v#{API_VERSION}/#{orcid}/work/#{put_code}"
34
35
  response = Maremma.put(url, content_type: 'application/vnd.orcid+xml', data: data, bearer: access_token)
35
- put_code = response.fetch("headers", {}).fetch("Location", "").split("/").last
36
- response.merge("put_code" => put_code.present? ? put_code.to_i : nil)
36
+ put_code = response.headers.fetch("Location", "").split("/").last
37
+ response.body["put_code"] = put_code.present? ? put_code.to_i : nil
38
+ response
37
39
  end
38
40
 
39
41
  def delete_work(options={})
@@ -66,8 +68,9 @@ module OrcidClient
66
68
 
67
69
  url = "#{orcid_api_url}/v#{API_VERSION}/#{orcid}/notification-permission"
68
70
  response = Maremma.post(url, content_type: 'application/vnd.orcid+xml', data: data, bearer: notification_access_token)
69
- put_code = response.fetch("headers", {}).fetch("Location", "").split("/").last
70
- response.merge("put_code" => put_code.present? ? put_code.to_i : nil)
71
+ put_code = response.headers.fetch("Location", "").split("/").last
72
+ response.body["put_code"] = put_code.present? ? put_code.to_i : nil
73
+ response
71
74
  end
72
75
  end
73
76
  end
@@ -15,9 +15,9 @@ module OrcidClient
15
15
 
16
16
  url = "http://api.crossref.org/works/" + PostRank::URI.escape(doi)
17
17
  response = Maremma.get(url, options.merge(host: true))
18
- return response if response["errors"]
18
+ return response if response.body["errors"]
19
19
 
20
- metadata = response.fetch("data", {}).fetch("message", {})
20
+ metadata = response.body.fetch("data", {}).fetch("message", {})
21
21
  return { "errors" => [{ "title" => "Not found.", "status" => 404 }] } if metadata.blank?
22
22
 
23
23
  date_parts = metadata.fetch("issued", {}).fetch("date-parts", []).first
@@ -56,9 +56,9 @@ module OrcidClient
56
56
  wt: "json" }
57
57
  url = "http://search.datacite.org/api?" + URI.encode_www_form(params)
58
58
  response = Maremma.get(url, options)
59
- return response if response["errors"]
59
+ return response if response.body["errors"]
60
60
 
61
- metadata = response.fetch("data", {}).fetch("response", {}).fetch("docs", []).first
61
+ metadata = response.body.fetch("data", {}).fetch("response", {}).fetch("docs", []).first
62
62
  return { "errors" => [{ "title" => "Not found.", "status" => 404 }] } if metadata.blank?
63
63
 
64
64
  doi = metadata.fetch("doi", nil)
@@ -88,9 +88,9 @@ module OrcidClient
88
88
 
89
89
  url = "http://pub.orcid.org/v1.2/#{orcid}/orcid-bio"
90
90
  response = Maremma.get(url, options)
91
- return response if response["errors"]
91
+ return response if response.body["errors"]
92
92
 
93
- metadata = response.fetch("data", {}).fetch("orcid_message", {}).fetch("orcid_profile", nil)
93
+ metadata = response.body.fetch("data", {}).fetch("orcid_message", {}).fetch("orcid_profile", nil)
94
94
  metadata.extend Hashie::Extensions::DeepFetch
95
95
 
96
96
  personal_details = metadata.deep_fetch("orcid_bio", "personal_details") { {} }
@@ -115,9 +115,9 @@ module OrcidClient
115
115
 
116
116
  url = "http://doi.crossref.org/doiRA/" + CGI.unescape(doi)
117
117
  response = Maremma.get(url, options.merge(host: true))
118
- return response if response["errors"]
118
+ return response if response.body["errors"]
119
119
 
120
- ra = response.fetch("data", {}).first.fetch("RA", nil)
120
+ ra = response.body.fetch("data", {}).first.fetch("RA", nil)
121
121
  if ra.present?
122
122
  ra.delete(' ').downcase
123
123
  else
@@ -1,3 +1,3 @@
1
1
  module OrcidClient
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
data/orcid_client.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  # Declary dependencies here, rather than in the Gemfile
22
- s.add_dependency 'maremma', '~> 2.5'
22
+ s.add_dependency 'maremma', '~> 3.0'
23
23
  s.add_dependency 'nokogiri', '~> 1.6.8'
24
24
  s.add_dependency 'builder', '~> 3.2', '>= 3.2.2'
25
25
  s.add_dependency 'namae', '~> 0.10.1'
data/spec/api_spec.rb CHANGED
@@ -16,14 +16,15 @@ describe OrcidClient, vcr: true do
16
16
 
17
17
  it 'should create work' do
18
18
  response = subject.create_work(sandbox: true)
19
- expect(response["put_code"]).not_to be_blank
19
+ expect(response.body["put_code"]).not_to be_blank
20
+ expect(response.status).to eq(201)
20
21
  end
21
22
  end
22
23
 
23
24
  describe 'get' do
24
25
  it 'should get works' do
25
26
  response = subject.get_works(sandbox: true)
26
- works = response.fetch("data", {}).fetch("group", {})
27
+ works = response.body.fetch("data", {}).fetch("group", {})
27
28
  expect(works.length).to eq(27)
28
29
  work = works.first
29
30
  expect(work["external-ids"]).to eq("external-id"=>[{"external-id-type"=>"doi", "external-id-value"=>"10.5167/UZH-19531", "external-id-url"=>nil, "external-id-relationship"=>"SELF"}])
@@ -33,15 +34,17 @@ describe OrcidClient, vcr: true do
33
34
  describe 'put' do
34
35
  it 'should update work' do
35
36
  response = subject.update_work(sandbox: true)
36
- expect(response.fetch("data", {}).fetch("work", {}).fetch("put_code", nil)).to eq(put_code)
37
+ expect(response.body.fetch("data", {}).fetch("work", {}).fetch("put_code", nil)).to eq(put_code)
38
+ expect(response.status).to eq(200)
37
39
  end
38
40
  end
39
41
 
40
42
  describe 'delete' do
41
43
  it 'should delete work' do
42
44
  response = subject.delete_work(sandbox: true)
43
- expect(response["data"]).to be_blank
44
- expect(response["errors"]).to be_nil
45
+ expect(response.body["data"]).to be_blank
46
+ expect(response.body["errors"]).to be_nil
47
+ expect(response.status).to eq(204)
45
48
  end
46
49
  end
47
50
  end
@@ -52,7 +55,8 @@ describe OrcidClient, vcr: true do
52
55
  describe 'post' do
53
56
  it 'should create notification' do
54
57
  response = subject.create_notification(sandbox: true)
55
- expect(response["put_code"]).not_to be_blank
58
+ expect(response.body["put_code"]).not_to be_blank
59
+ expect(response.status).to eq(201)
56
60
  end
57
61
  end
58
62
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: orcid_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-22 00:00:00.000000000 Z
11
+ date: 2016-11-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.5'
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.5'
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement