yoti 1.6.3 → 1.6.4
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/CONTRIBUTING.md +0 -29
- data/Rakefile +8 -3
- data/lib/yoti/dynamic_share_service/extension/thirdparty_attribute_extension.rb +62 -11
- data/lib/yoti/dynamic_share_service/policy/dynamic_policy.rb +13 -13
- data/lib/yoti/dynamic_share_service/share_url.rb +2 -0
- data/lib/yoti/http/request.rb +2 -0
- data/lib/yoti/protobuf/main.rb +1 -1
- data/lib/yoti/version.rb +1 -1
- data/yoti.gemspec +1 -3
- metadata +2 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1d2cbb57b376a252d798c35820fcee63a46eb99809422441e592ed25bc0f9da
|
4
|
+
data.tar.gz: 1e31e86853d8e419cad2bec50a260d9e26a9c8043299ff6dc10620635c9169c9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 88a932e08b8b73b81ef7153935e984df1d0816c9cfdf0fe912342a57ca8b12a91892aec6b226520cd48f94b660264dca2cadd593ef85008dc2564c97c811a409
|
7
|
+
data.tar.gz: 1b0bdb68176391c56302aff5bda6040aece1d891d6b4491ea605af30029c079de046ea6e03df81c49c99100a1500a0730adfbc6e705c69f18c2a6c96172f0c09
|
data/CONTRIBUTING.md
CHANGED
@@ -16,35 +16,6 @@ bundle exec guard
|
|
16
16
|
|
17
17
|
Although this gem supports Ruby 2.0.0, in order to use the latest development dependencies you have to use at least Ruby 2.2.2.
|
18
18
|
|
19
|
-
If you wish to compile `.proto` definitions to Ruby, you will need to install [Google's Protocol Buffers](http://code.google.com/p/protobuf).
|
20
|
-
|
21
|
-
### OSX
|
22
|
-
|
23
|
-
```shell
|
24
|
-
brew install protobuf
|
25
|
-
```
|
26
|
-
|
27
|
-
### Ubuntu
|
28
|
-
|
29
|
-
```shell
|
30
|
-
sudo apt-get install -y protobuf
|
31
|
-
```
|
32
|
-
|
33
|
-
This gem relies heavily on the [Ruby Protobuf][] gem. For more information on how Google Protobuf works, please see the [Wiki pages][].
|
34
|
-
|
35
|
-
Compiling the common and attribute `.proto` definitions can be done with the following commands:
|
36
|
-
|
37
|
-
```shell
|
38
|
-
cd lib/yoti/protobuf/v1
|
39
|
-
protoc -I definitions/attribute-public-api/attrpubapi_v1 --ruby_out ./attribute_public_api definitions/attribute-public-api/attrpubapi_v1/*.proto
|
40
|
-
protoc -I definitions/common-public-api/compubapi_v1/ --ruby_out ./common_public_api definitions/common-public-api/compubapi_v1/*.proto
|
41
|
-
```
|
42
|
-
|
43
|
-
These commands will overwrite the current protobuf Ruby modules, which have been modified. If the protobuf files have to be updated, a good idea would be to change them manually, or generate the files in a new location, and compare the content.
|
44
|
-
|
45
|
-
[Ruby Protobuf]: https://github.com/ruby-protobuf/protobuf/
|
46
|
-
[Wiki Pages]: https://github.com/ruby-protobuf/protobuf/wiki
|
47
|
-
|
48
19
|
## Requirements
|
49
20
|
|
50
21
|
### Code coverage
|
data/Rakefile
CHANGED
@@ -6,8 +6,13 @@ require 'yaml'
|
|
6
6
|
# Tests #
|
7
7
|
################################
|
8
8
|
|
9
|
-
RSpec::Core::RakeTask.new
|
10
|
-
|
9
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
10
|
+
t.pattern = ['spec/yoti']
|
11
|
+
end
|
12
|
+
|
13
|
+
RSpec::Core::RakeTask.new(:test_generators) do |t|
|
14
|
+
t.pattern = ['spec/generators']
|
15
|
+
end
|
11
16
|
|
12
17
|
################################
|
13
18
|
# Coveralls #
|
@@ -46,4 +51,4 @@ end
|
|
46
51
|
# Defaults #
|
47
52
|
################################
|
48
53
|
|
49
|
-
task default: %i[spec rubocop]
|
54
|
+
task default: %i[spec test_generators rubocop]
|
@@ -1,14 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'time'
|
4
|
+
|
3
5
|
module Yoti
|
4
6
|
module DynamicSharingService
|
5
7
|
class ThirdPartyAttributeDefinition
|
8
|
+
#
|
9
|
+
# @param [String] name
|
10
|
+
#
|
6
11
|
def initialize(name)
|
7
12
|
@name = name
|
8
13
|
end
|
9
14
|
|
15
|
+
def as_json(*_args)
|
16
|
+
{ name: @name }
|
17
|
+
end
|
18
|
+
|
10
19
|
def to_json(*_args)
|
11
|
-
|
20
|
+
as_json.to_json
|
12
21
|
end
|
13
22
|
end
|
14
23
|
|
@@ -18,11 +27,21 @@ module Yoti
|
|
18
27
|
@definitions = []
|
19
28
|
end
|
20
29
|
|
30
|
+
#
|
31
|
+
# @param [DateTime,Time] expiry_date
|
32
|
+
#
|
33
|
+
# @return [self]
|
34
|
+
#
|
21
35
|
def with_expiry_date(expiry_date)
|
22
36
|
@expiry_date = expiry_date
|
23
37
|
self
|
24
38
|
end
|
25
39
|
|
40
|
+
#
|
41
|
+
# @param [String] *names
|
42
|
+
#
|
43
|
+
# @return [self]
|
44
|
+
#
|
26
45
|
def with_definitions(*names)
|
27
46
|
@definitions += names.map do |name|
|
28
47
|
ThirdPartyAttributeDefinition.new(name)
|
@@ -30,39 +49,71 @@ module Yoti
|
|
30
49
|
self
|
31
50
|
end
|
32
51
|
|
52
|
+
#
|
53
|
+
# @return [ThirdPartyAttributeExtension]
|
54
|
+
#
|
33
55
|
def build
|
34
|
-
|
35
|
-
|
36
|
-
extension.instance_variable_get(:@content)[:definitions] = @definitions
|
37
|
-
extension
|
56
|
+
content = ThirdPartyAttributeExtensionContent.new(@expiry_date, @definitions)
|
57
|
+
ThirdPartyAttributeExtension.new(content)
|
38
58
|
end
|
39
59
|
end
|
40
60
|
|
41
61
|
class ThirdPartyAttributeExtension
|
42
62
|
EXTENSION_TYPE = 'THIRD_PARTY_ATTRIBUTE'
|
43
63
|
|
64
|
+
# @return [ThirdPartyAttributeExtensionContent]
|
44
65
|
attr_reader :content
|
66
|
+
|
67
|
+
# @return [String]
|
45
68
|
attr_reader :type
|
46
69
|
|
47
|
-
|
48
|
-
|
70
|
+
#
|
71
|
+
# @param [ThirdPartyAttributeExtensionContent] content
|
72
|
+
#
|
73
|
+
def initialize(content = nil)
|
74
|
+
@content = content
|
49
75
|
@type = EXTENSION_TYPE
|
50
76
|
end
|
51
77
|
|
52
78
|
def as_json(*_args)
|
53
|
-
{
|
54
|
-
|
55
|
-
|
56
|
-
|
79
|
+
json = {}
|
80
|
+
json[:type] = @type
|
81
|
+
json[:content] = @content.as_json unless @content.nil?
|
82
|
+
json
|
57
83
|
end
|
58
84
|
|
59
85
|
def to_json(*_args)
|
60
86
|
as_json.to_json
|
61
87
|
end
|
62
88
|
|
89
|
+
#
|
90
|
+
# @return [ThirdPartyAttributeExtensionBuilder]
|
91
|
+
#
|
63
92
|
def self.builder
|
64
93
|
ThirdPartyAttributeExtensionBuilder.new
|
65
94
|
end
|
66
95
|
end
|
96
|
+
|
97
|
+
class ThirdPartyAttributeExtensionContent
|
98
|
+
#
|
99
|
+
# @param [DateTime,Time] expiry_date
|
100
|
+
# @param [Array<ThirdPartyAttributeDefinition>] definitions
|
101
|
+
#
|
102
|
+
def initialize(expiry_date, definitions)
|
103
|
+
@expiry_date = expiry_date
|
104
|
+
@definitions = definitions
|
105
|
+
end
|
106
|
+
|
107
|
+
def as_json(*_args)
|
108
|
+
json = {}
|
109
|
+
json[:expiry_date] = @expiry_date.to_time.utc.strftime('%FT%T.%3NZ') unless @expiry_date.nil?
|
110
|
+
json[:definitions] = @definitions.map(&:as_json)
|
111
|
+
json
|
112
|
+
end
|
113
|
+
|
114
|
+
def to_json(*_args)
|
115
|
+
as_json.to_json
|
116
|
+
end
|
117
|
+
end
|
67
118
|
end
|
68
119
|
end
|
@@ -105,19 +105,19 @@ module Yoti
|
|
105
105
|
end
|
106
106
|
|
107
107
|
def with_family_name(options = {})
|
108
|
-
with_wanted_attribute_by_name Attribute::FAMILY_NAME, options
|
108
|
+
with_wanted_attribute_by_name Attribute::FAMILY_NAME, **options
|
109
109
|
end
|
110
110
|
|
111
111
|
def with_given_names(options = {})
|
112
|
-
with_wanted_attribute_by_name Attribute::GIVEN_NAMES, options
|
112
|
+
with_wanted_attribute_by_name Attribute::GIVEN_NAMES, **options
|
113
113
|
end
|
114
114
|
|
115
115
|
def with_full_name(options = {})
|
116
|
-
with_wanted_attribute_by_name Attribute::FULL_NAME, options
|
116
|
+
with_wanted_attribute_by_name Attribute::FULL_NAME, **options
|
117
117
|
end
|
118
118
|
|
119
119
|
def with_date_of_birth(options = {})
|
120
|
-
with_wanted_attribute_by_name Attribute::DATE_OF_BIRTH, options
|
120
|
+
with_wanted_attribute_by_name Attribute::DATE_OF_BIRTH, **options
|
121
121
|
end
|
122
122
|
|
123
123
|
#
|
@@ -138,42 +138,42 @@ module Yoti
|
|
138
138
|
# @param [Integer] derivation
|
139
139
|
#
|
140
140
|
def with_age_over(age, options = {})
|
141
|
-
with_age_derived_attribute(Attribute::AGE_OVER + age.to_s, options)
|
141
|
+
with_age_derived_attribute(Attribute::AGE_OVER + age.to_s, **options)
|
142
142
|
end
|
143
143
|
|
144
144
|
#
|
145
145
|
# @param [Integer] derivation
|
146
146
|
#
|
147
147
|
def with_age_under(age, options = {})
|
148
|
-
with_age_derived_attribute(Attribute::AGE_UNDER + age.to_s, options)
|
148
|
+
with_age_derived_attribute(Attribute::AGE_UNDER + age.to_s, **options)
|
149
149
|
end
|
150
150
|
|
151
151
|
def with_gender(options = {})
|
152
|
-
with_wanted_attribute_by_name Attribute::GENDER, options
|
152
|
+
with_wanted_attribute_by_name Attribute::GENDER, **options
|
153
153
|
end
|
154
154
|
|
155
155
|
def with_postal_address(options = {})
|
156
|
-
with_wanted_attribute_by_name(Attribute::POSTAL_ADDRESS, options)
|
156
|
+
with_wanted_attribute_by_name(Attribute::POSTAL_ADDRESS, **options)
|
157
157
|
end
|
158
158
|
|
159
159
|
def with_structured_postal_address(options = {})
|
160
|
-
with_wanted_attribute_by_name(Attribute::STRUCTURED_POSTAL_ADDRESS, options)
|
160
|
+
with_wanted_attribute_by_name(Attribute::STRUCTURED_POSTAL_ADDRESS, **options)
|
161
161
|
end
|
162
162
|
|
163
163
|
def with_nationality(options = {})
|
164
|
-
with_wanted_attribute_by_name(Attribute::NATIONALITY, options)
|
164
|
+
with_wanted_attribute_by_name(Attribute::NATIONALITY, **options)
|
165
165
|
end
|
166
166
|
|
167
167
|
def with_phone_number(options = {})
|
168
|
-
with_wanted_attribute_by_name(Attribute::PHONE_NUMBER, options)
|
168
|
+
with_wanted_attribute_by_name(Attribute::PHONE_NUMBER, **options)
|
169
169
|
end
|
170
170
|
|
171
171
|
def with_selfie(options = {})
|
172
|
-
with_wanted_attribute_by_name(Attribute::SELFIE, options)
|
172
|
+
with_wanted_attribute_by_name(Attribute::SELFIE, **options)
|
173
173
|
end
|
174
174
|
|
175
175
|
def with_email(options = {})
|
176
|
-
with_wanted_attribute_by_name(Attribute::EMAIL_ADDRESS, options)
|
176
|
+
with_wanted_attribute_by_name(Attribute::EMAIL_ADDRESS, **options)
|
177
177
|
end
|
178
178
|
|
179
179
|
def with_document_details
|
data/lib/yoti/http/request.rb
CHANGED
data/lib/yoti/protobuf/main.rb
CHANGED
@@ -94,7 +94,7 @@ module Yoti
|
|
94
94
|
proto_multi_value = Yoti::Protobuf::Attrpubapi::MultiValue.decode(value)
|
95
95
|
items = []
|
96
96
|
proto_multi_value.values.each do |item|
|
97
|
-
items
|
97
|
+
items << value_based_on_content_type(item.data, item.content_type)
|
98
98
|
end
|
99
99
|
MultiValue.new(items)
|
100
100
|
end
|
data/lib/yoti/version.rb
CHANGED
data/yoti.gemspec
CHANGED
@@ -23,9 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
|
24
24
|
spec.required_ruby_version = '>= 2.4'
|
25
25
|
|
26
|
-
spec.add_dependency '
|
27
|
-
spec.add_dependency 'google-protobuf', '~> 3.7', '>= 3.7.0'
|
28
|
-
spec.add_dependency 'protobuf', '~> 3.6'
|
26
|
+
spec.add_dependency 'google-protobuf', '~> 3.7'
|
29
27
|
|
30
28
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
31
29
|
spec.add_development_dependency 'coveralls', '~> 0.8'
|
metadata
CHANGED
@@ -1,36 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yoti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.6.
|
4
|
+
version: 1.6.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastian Zaremba
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: activesupport
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '5.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '5.0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: google-protobuf
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
30
16
|
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 3.7.0
|
34
17
|
- - "~>"
|
35
18
|
- !ruby/object:Gem::Version
|
36
19
|
version: '3.7'
|
@@ -38,26 +21,9 @@ dependencies:
|
|
38
21
|
prerelease: false
|
39
22
|
version_requirements: !ruby/object:Gem::Requirement
|
40
23
|
requirements:
|
41
|
-
- - ">="
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version: 3.7.0
|
44
24
|
- - "~>"
|
45
25
|
- !ruby/object:Gem::Version
|
46
26
|
version: '3.7'
|
47
|
-
- !ruby/object:Gem::Dependency
|
48
|
-
name: protobuf
|
49
|
-
requirement: !ruby/object:Gem::Requirement
|
50
|
-
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '3.6'
|
54
|
-
type: :runtime
|
55
|
-
prerelease: false
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: '3.6'
|
61
27
|
- !ruby/object:Gem::Dependency
|
62
28
|
name: bundler
|
63
29
|
requirement: !ruby/object:Gem::Requirement
|