orias 0.2.0 → 0.3.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/Gemfile.lock +1 -1
- data/lib/orias/client.rb +2 -1
- data/lib/orias/configuration.rb +3 -1
- data/lib/orias/response.rb +30 -6
- data/lib/orias/search.rb +16 -12
- data/lib/orias/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7c42f8d5d084f92ee196de4e196d5174eb69e32b
|
4
|
+
data.tar.gz: 32a429628c656c9e0eea95092a4f5f36ce3ec333
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 47bedfe300e4284c64513793f99e6e15e319e732fbf2beae7018796e360acec02b4f73438119928714ed4df8e88323c8bf803cea75fc17dfa0806ab88e1bf583
|
7
|
+
data.tar.gz: c4a74fa5c6edb5ebd752fc9e016d464a2fd213faa3e763338fc480908dc8a43d29a6c90bc9c9d953093ee02ce4e42ea08e3d2123e98d9ac3699f99e19ed0c2ec
|
data/Gemfile.lock
CHANGED
data/lib/orias/client.rb
CHANGED
@@ -2,12 +2,13 @@ module Orias
|
|
2
2
|
# Dedicated to request handling to ORIAS API
|
3
3
|
#
|
4
4
|
class Client < Base
|
5
|
-
attr_accessor :api_endpoint, :private_key
|
5
|
+
attr_accessor :api_endpoint, :per_request, :private_key
|
6
6
|
|
7
7
|
# Initialize an Orias::Client instance
|
8
8
|
def initialize(attributes = {})
|
9
9
|
super
|
10
10
|
@api_endpoint ||= Orias.configuration.api_endpoint
|
11
|
+
@per_request ||= Orias.configuration.per_request
|
11
12
|
@private_key ||= Orias.configuration.private_key
|
12
13
|
end
|
13
14
|
end
|
data/lib/orias/configuration.rb
CHANGED
@@ -3,13 +3,15 @@ module Orias
|
|
3
3
|
#
|
4
4
|
class Configuration < Base
|
5
5
|
DEFAULT_API_ENDPOINT = 'https://ws.orias.fr/service?wsdl'.freeze
|
6
|
+
DEFAULT_PER_REQUEST = 1000.freeze
|
6
7
|
|
7
|
-
attr_accessor :private_key, :api_endpoint
|
8
|
+
attr_accessor :private_key, :api_endpoint, :per_request
|
8
9
|
|
9
10
|
# Initialize an Orias::Configuration instance
|
10
11
|
def initialize(attributes = {})
|
11
12
|
super
|
12
13
|
@api_endpoint ||= DEFAULT_API_ENDPOINT
|
14
|
+
@per_request ||= DEFAULT_PER_REQUEST
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
data/lib/orias/response.rb
CHANGED
@@ -6,12 +6,13 @@ module Orias
|
|
6
6
|
class Response < Base
|
7
7
|
VALID_TYPES = [:intermediary_search].freeze
|
8
8
|
|
9
|
-
attr_accessor :type, :
|
9
|
+
attr_accessor :type, :raw, :raw_hash, :results
|
10
10
|
|
11
11
|
# Initialize an Orias::Response instance
|
12
12
|
def initialize(attributes = {})
|
13
13
|
super
|
14
|
-
self.process_raw_response!
|
14
|
+
self.process_raw_response! if results.nil?
|
15
|
+
self.check_type
|
15
16
|
end
|
16
17
|
|
17
18
|
# Result collections
|
@@ -54,10 +55,25 @@ module Orias
|
|
54
55
|
|
55
56
|
end
|
56
57
|
|
58
|
+
class << self
|
59
|
+
def merge(instances)
|
60
|
+
if instances.map(&:type).uniq.compact.length != 1
|
61
|
+
raise 'Orias::Response - Error merging Orias::Response collection.'
|
62
|
+
end
|
63
|
+
|
64
|
+
self.new(
|
65
|
+
raw: instances.map(&:raw),
|
66
|
+
raw_hash: instances.map(&:raw_hash),
|
67
|
+
results: instances.map(&:results).flatten,
|
68
|
+
type: instances.map(&:type).uniq.first
|
69
|
+
)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
57
73
|
protected
|
58
74
|
|
59
75
|
def process_raw_response!
|
60
|
-
self.
|
76
|
+
self.raw_hash = Hash.from_libxml(self.raw)['Envelope']['Body']
|
61
77
|
|
62
78
|
if @type == :intermediary_search
|
63
79
|
process_intermediary_search!
|
@@ -66,13 +82,21 @@ module Orias
|
|
66
82
|
end
|
67
83
|
end
|
68
84
|
|
85
|
+
def check_type
|
86
|
+
raise 'Orias::Response - Wrong type.' unless VALID_TYPES.include?(type)
|
87
|
+
end
|
88
|
+
|
69
89
|
private
|
70
90
|
|
71
91
|
def process_intermediary_search!
|
72
|
-
|
73
|
-
|
92
|
+
begin
|
93
|
+
results_hash = self.raw_hash['intermediarySearchResponse']
|
94
|
+
results_hash = results_hash['intermediaries']['intermediary']
|
95
|
+
rescue
|
96
|
+
raise 'Orias::Response - API response error.' unless results_hash
|
97
|
+
end
|
74
98
|
|
75
|
-
@results = results_hash.map do |h|
|
99
|
+
@results = [results_hash].flatten.map do |h|
|
76
100
|
Orias::Intermediary.new(h)
|
77
101
|
end
|
78
102
|
|
data/lib/orias/search.rb
CHANGED
@@ -15,26 +15,30 @@ module Orias
|
|
15
15
|
end
|
16
16
|
|
17
17
|
# Alias for #find_by with an :orias type
|
18
|
-
def find_by_orias(
|
18
|
+
def find_by_orias(terms)
|
19
19
|
find_by(:orias, terms)
|
20
20
|
end
|
21
21
|
|
22
22
|
# Alias for #find_by with an :siren type
|
23
|
-
def find_by_siren(
|
23
|
+
def find_by_siren(terms)
|
24
24
|
find_by(:siren, terms)
|
25
25
|
end
|
26
26
|
|
27
27
|
# Request building for intermediarySearchRequest
|
28
28
|
def find_by(type, terms)
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
29
|
+
responses = [terms].flatten.each_slice(@client.per_request).map do |term_collection|
|
30
|
+
request = Orias::Request.new(
|
31
|
+
api_endpoint: @client.api_endpoint,
|
32
|
+
body: raw_find(raw_intermediaries(type, term_collection))
|
33
|
+
).build!
|
34
|
+
|
35
|
+
Orias::Response.new(
|
36
|
+
type: :intermediary_search,
|
37
|
+
raw: request.response.body
|
38
|
+
)
|
39
|
+
end
|
40
|
+
|
41
|
+
Orias::Response.merge(responses)
|
38
42
|
end
|
39
43
|
|
40
44
|
# Build the raw request body of a search
|
@@ -86,7 +90,7 @@ module Orias
|
|
86
90
|
|
87
91
|
# Check & Set an intermediaries list
|
88
92
|
def set_terms(type, terms)
|
89
|
-
terms.map!{ |t| t.gsub(/\D/,'') }
|
93
|
+
terms.map!{ |t| t.to_s.gsub(/\D/,'') }
|
90
94
|
lgts = terms.map(&:length).uniq
|
91
95
|
valid_lgth = VALID_INTERMEDIARIES_TYPE[type]
|
92
96
|
|
data/lib/orias/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orias
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 01max
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: libxml-to-hash
|