jalc 1.1.0 → 1.2.0
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 +4 -4
- data/CHANGELOG.md +8 -2
- data/Gemfile +1 -0
- data/README.md +11 -8
- data/jalc.gemspec +1 -0
- data/lib/jalc/registration/client.rb +5 -1
- data/lib/jalc/registration/middleware/parse_xml.rb +1 -1
- data/lib/jalc/rest/middleware/raise_error.rb +1 -7
- data/lib/jalc/version.rb +1 -1
- data/sig/jalc.rbs +86 -0
- metadata +17 -3
- data/sig/jalc/rest.rbs +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96ec63df2a4d939e8eb433fff06fe70d84536174ab759755314dbf67fd21c900
|
4
|
+
data.tar.gz: 25288558d0cfb086f73d72634051892d48bf9a21e64de7aa9bb06a72b44dc153
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 286ab06114bd1b84518239c7b4e801f67a1a275d9e8b9f11e379df59dd66aaa319743849735495c5420f2811f8d5dba879ed162a00a15f805403ab26fd71ca05
|
7
|
+
data.tar.gz: b1fbb0ebed28715ea7dfaee774652eef36ccef399c2bc89c2fbe1d260e9a08d84937720fc144665afca3d8799ce325491ede9ce835701b27241e24623fdeec71
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,14 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
-
## [1.
|
3
|
+
## [1.2.0] - 2022-01-10
|
4
4
|
|
5
|
-
-
|
5
|
+
- Filter password on logs
|
6
|
+
- Remove `NilStatusError`
|
7
|
+
- Create `jalc.rbs`
|
8
|
+
|
9
|
+
## [1.1.0] - 2022-01-09
|
10
|
+
|
11
|
+
- Add `JaLC::Registration` for the registration API
|
6
12
|
|
7
13
|
## [1.0.0] - 2022-01-09
|
8
14
|
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -31,11 +31,11 @@ JaLC::REST.config.logger = MyLogger.new
|
|
31
31
|
|
32
32
|
# GET /prefixes
|
33
33
|
prefixes_res = JaLC::REST.prefixes(ra: 'JaLC', sort: 'siteId', order: 'desc')
|
34
|
-
prefix = prefixes_res.body['data']['items'].first['prefix'] #=> 10.123
|
34
|
+
prefix = prefixes_res.body['data']['items'].first['prefix'] #=> "10.123"
|
35
35
|
|
36
36
|
# GET /doilist/:prefix
|
37
37
|
doilist_res = JaLC::REST.doilist(prefix, rows: 100)
|
38
|
-
doi = doilist_res.body['data']['items'].last['dois']['doi'] #=> 10.123/abc
|
38
|
+
doi = doilist_res.body['data']['items'].last['dois']['doi'] #=> "10.123/abc"
|
39
39
|
|
40
40
|
# GET /dois/:doi
|
41
41
|
doi_res = JaLC::REST.doi(doi)
|
@@ -52,28 +52,31 @@ require 'jalc'
|
|
52
52
|
JaLC::Registration.configure do |config|
|
53
53
|
config.id = 'sankichi92'
|
54
54
|
config.password = ENV['JALC_PASSWORD']
|
55
|
+
config.logger = nil
|
55
56
|
end
|
56
57
|
|
57
58
|
res = JaLC::Registration.post(File.open('/path/to/xml'))
|
58
|
-
# response.body is an instance of REXML::Document
|
59
|
-
res.body.root.elements['head/okcnt'].text #=> 1
|
60
59
|
|
61
|
-
#
|
60
|
+
# body is an REXML::Document
|
61
|
+
res.body.root.elements['head/okcnt'].text #=> "1"
|
62
|
+
|
63
|
+
# async registration (result_method=2)
|
62
64
|
async_res = JaLC::Registration.post(StringIO.new(<<~XML))
|
63
65
|
<?xml version="1.0" encoding="UTF-8"?>
|
64
66
|
<root>
|
65
67
|
<head>
|
66
68
|
<result_method>2</result_method>
|
69
|
+
<!-- ... -->
|
67
70
|
</head>
|
68
71
|
<body>
|
69
|
-
...
|
72
|
+
<!-- ... -->
|
70
73
|
</body
|
71
74
|
</root>
|
72
75
|
XML
|
73
|
-
exec_id = async_res.body.root.elements['head/exec_id'].text #=> 12345
|
76
|
+
exec_id = async_res.body.root.elements['head/exec_id'].text #=> "12345"
|
74
77
|
|
75
78
|
result_res = JaLC::Registration.get_result(exec_id)
|
76
|
-
|
79
|
+
result_res.body.root.elements['head/status'].text #=> "2"
|
77
80
|
```
|
78
81
|
|
79
82
|
## Development
|
data/jalc.gemspec
CHANGED
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
# Uncomment to register a new dependency of your gem
|
33
33
|
spec.add_dependency 'faraday', '>= 1.0', '< 3.0'
|
34
34
|
spec.add_dependency 'faraday-multipart', '~> 1.0'
|
35
|
+
spec.add_dependency 'rexml', '~> 3.0'
|
35
36
|
|
36
37
|
# For more information and examples about making a new gem, check out our
|
37
38
|
# guide at: https://bundler.io/guides/creating_gem.html
|
@@ -52,7 +52,11 @@ module JaLC
|
|
52
52
|
f.use Middleware::RaiseError
|
53
53
|
f.use Middleware::ParseXML
|
54
54
|
f.response :raise_error
|
55
|
-
|
55
|
+
if @logger
|
56
|
+
f.response :logger, @logger, { headers: false } do |logger|
|
57
|
+
logger.filter(/(password=)\w+/, '\1[FILTERED]')
|
58
|
+
end
|
59
|
+
end
|
56
60
|
end
|
57
61
|
end
|
58
62
|
end
|
@@ -16,13 +16,8 @@ module JaLC
|
|
16
16
|
raise ResourceNotFound.new(response: response_values(env))
|
17
17
|
when 400...500
|
18
18
|
raise ClientError.new(response: response_values(env))
|
19
|
-
when 500...600
|
19
|
+
when 500...600, nil
|
20
20
|
raise ServerError.new(response: response_values(env))
|
21
|
-
when nil
|
22
|
-
raise NilStatusError.new(
|
23
|
-
'http status could not be derived from the server response',
|
24
|
-
response: response_values(env),
|
25
|
-
)
|
26
21
|
end
|
27
22
|
end
|
28
23
|
|
@@ -68,6 +63,5 @@ module JaLC
|
|
68
63
|
class BadRequestError < ClientError; end
|
69
64
|
class ResourceNotFound < ClientError; end
|
70
65
|
class ServerError < HTTPError; end
|
71
|
-
class NilStatusError < ServerError; end
|
72
66
|
end
|
73
67
|
end
|
data/lib/jalc/version.rb
CHANGED
data/sig/jalc.rbs
ADDED
@@ -0,0 +1,86 @@
|
|
1
|
+
type faraday_response = untyped
|
2
|
+
|
3
|
+
module JaLC
|
4
|
+
VERSION: String
|
5
|
+
|
6
|
+
module Registration
|
7
|
+
BASE_URL: String
|
8
|
+
|
9
|
+
def self.configure: { (Config) -> void } -> void
|
10
|
+
def self.config: -> Config
|
11
|
+
|
12
|
+
class Error < StandardError
|
13
|
+
end
|
14
|
+
|
15
|
+
class RegistrationError < Error
|
16
|
+
end
|
17
|
+
|
18
|
+
class AuthenticationError < RegistrationError
|
19
|
+
end
|
20
|
+
|
21
|
+
class InvalidXMLError < RegistrationError
|
22
|
+
end
|
23
|
+
|
24
|
+
class Client
|
25
|
+
interface _IO
|
26
|
+
end
|
27
|
+
|
28
|
+
def initialize: (id: String, password: String, ?logger: Logger?, ?base_url: String) -> void
|
29
|
+
def post: (_IO xml_file) -> faraday_response
|
30
|
+
def get_result: (Integer | String exec_id) -> faraday_response
|
31
|
+
end
|
32
|
+
|
33
|
+
class Config
|
34
|
+
attr_accessor id: String?
|
35
|
+
attr_accessor password: String?
|
36
|
+
attr_accessor logger: Logger?
|
37
|
+
|
38
|
+
def initialize: -> void
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
module REST
|
43
|
+
BASE_URL: String
|
44
|
+
|
45
|
+
def self.configure: { (Config) -> void } -> void
|
46
|
+
def self.config: -> Config
|
47
|
+
|
48
|
+
class Error < StandardError
|
49
|
+
end
|
50
|
+
|
51
|
+
class HTTPError < Error
|
52
|
+
type faraday_header = untyped
|
53
|
+
type response_hash = {status: Integer, headers: faraday_header, body: untyped, request: {method: Symbol, url: URI, headers: faraday_header, body: String?}}
|
54
|
+
|
55
|
+
attr_reader response: response_hash?
|
56
|
+
|
57
|
+
def initialize: (?String? msg, ?response: response_hash?) -> void
|
58
|
+
def inspect: -> String
|
59
|
+
end
|
60
|
+
|
61
|
+
class ClientError < HTTPError
|
62
|
+
end
|
63
|
+
|
64
|
+
class BadRequestError < ClientError
|
65
|
+
end
|
66
|
+
|
67
|
+
class ResourceNotFound < ClientError
|
68
|
+
end
|
69
|
+
|
70
|
+
class ServerError < HTTPError
|
71
|
+
end
|
72
|
+
|
73
|
+
class Client
|
74
|
+
def initialize: (?logger: Logger?, ?base_url: String) -> void
|
75
|
+
def prefixes: (?ra: String?, ?sort: String?, ?order: String?) -> faraday_response
|
76
|
+
def doilist: (String, ?from: String?, ?to: String?, ?rows: Integer? | String?, ?page: Integer? | String?, ?sort: String?, ?order: String?) -> faraday_response
|
77
|
+
def doi: (String) -> faraday_response
|
78
|
+
end
|
79
|
+
|
80
|
+
class Config
|
81
|
+
attr_accessor logger: Logger?
|
82
|
+
|
83
|
+
def initialize: -> void
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jalc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takahiro Miyoshi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-01-
|
11
|
+
date: 2022-01-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -44,6 +44,20 @@ dependencies:
|
|
44
44
|
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '1.0'
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rexml
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.0'
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - "~>"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '3.0'
|
47
61
|
description:
|
48
62
|
email:
|
49
63
|
- takahiro-miyoshi@sankichi.net
|
@@ -75,7 +89,7 @@ files:
|
|
75
89
|
- lib/jalc/rest/error.rb
|
76
90
|
- lib/jalc/rest/middleware/raise_error.rb
|
77
91
|
- lib/jalc/version.rb
|
78
|
-
- sig/jalc
|
92
|
+
- sig/jalc.rbs
|
79
93
|
homepage: https://github.com/sankichi92/jalc-ruby
|
80
94
|
licenses:
|
81
95
|
- MIT
|