vgs_api_client 0.0.1.alpha202205100801 → 0.0.1.alpha202205100948

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
  SHA256:
3
- metadata.gz: 6955d0a16afc3b6659295e6e1d82fe799e8e3d6722c588b5c20357e2a74de738
4
- data.tar.gz: ef0363bb24db731d7b71e4e2820c9baeebaf5785f943bf1acfc0bc3ffb92bea0
3
+ metadata.gz: 35176944a2ae92e7b52287892ee2af1ab3a1979d95c17ffc55859ebb5bc55865
4
+ data.tar.gz: f1d7e0d0c7c443a75a76fbc226a17f8a9e50b4a5159484054ec8837170b50c2e
5
5
  SHA512:
6
- metadata.gz: 5127e6bdcf5012017f8a7cfd0636a35e9d02265c2b5ea5f06ef4753baad87d702433c6f992c061b3bff1da48d927600493d3e0bbcaa06ce6034f4f9591af7b54
7
- data.tar.gz: 583c52bdfde270bec107524b2019d2eeb9506c033e43dbe1dd95a1b12da0df072c1b4eb63d0410740860f7efc37895e1a63dbbb5c25afc1137fde187429d3f1c
6
+ metadata.gz: 33b806662139d67e958e79280af5f88d9262b17f749417abe6fde34e8b773219f5dabb8db8dde7c460269e867ded6bfba63d2392f1040cba14408581de3068c5
7
+ data.tar.gz: 5297ee1c5b2c182fa95055838d787e4f2f362ff822de7adb5d02b8129c321cd9bca72931199eaa41f1c366b8f59021ce1ece58d6c9183f8491e079d4e3904226
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1.alpha202205100801
1
+ 0.0.1.alpha202205100948
@@ -31,7 +31,7 @@ module VgsApiClient
31
31
  # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
32
32
  def initialize(config = Configuration.default)
33
33
  @config = config
34
- @user_agent = "vgs-api-client/0.0.1.alpha202205100801/ruby"
34
+ @user_agent = "vgs-api-client/0.0.1.alpha202205100948/ruby"
35
35
  @default_headers = {
36
36
  'Content-Type' => 'application/json',
37
37
  'User-Agent' => @user_agent
@@ -11,5 +11,5 @@ OpenAPI Generator version: 5.4.0
11
11
  =end
12
12
 
13
13
  module VgsApiClient
14
- VERSION = '0.0.1.alpha202205100801'
14
+ VERSION = '0.0.1.alpha202205100948'
15
15
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module VGS
2
- VERSION = '0.0.1.alpha202205100801'
2
+ VERSION = '0.0.1.alpha202205100948'
3
3
  end
@@ -1,14 +1,43 @@
1
1
  require 'openapi_client'
2
2
 
3
3
  module VGS
4
- class VgsApiException < StandardError
4
+ class VgsApiError < StandardError
5
+ end
6
+
7
+ class UnauthorizedError < VgsApiError
8
+ end
9
+
10
+ class NotFoundError < VgsApiError
11
+ end
12
+
13
+ class ForbiddenError < VgsApiError
5
14
  end
6
15
 
7
16
  class Aliases
8
17
  def initialize(config)
18
+ raise ArgumentError, 'config is nil' if config.nil?
9
19
  @aliases_api = VgsApiClient::AliasesApi.new(VgsApiClient::ApiClient.new(config))
10
20
  end
11
21
 
22
+ private def map_exception(message, error)
23
+ error_message = message
24
+ if error.is_a? VgsApiClient::ApiError
25
+ error_message += ". Details: #{error.message}"
26
+ case error.code
27
+ when 401
28
+ UnauthorizedError.new error_message
29
+ when 403
30
+ ForbiddenError.new error_message
31
+ when 404
32
+ NotFoundError.new error_message
33
+ else
34
+ VgsApiError.new error_message
35
+ end
36
+ else
37
+ VgsApiError.new error_message
38
+ end
39
+ end
40
+
12
41
  def redact(data)
13
42
  begin
14
43
  requests = data.map do |item|
@@ -26,9 +55,8 @@ module VGS
26
55
  response = @aliases_api.create_aliases(opts = {
27
56
  :create_aliases_request => create_aliases_request.to_hash
28
57
  })
29
-
30
- rescue
31
- raise VgsApiException, "Failed to redact data #{ data }"
58
+ rescue Exception => e
59
+ raise map_exception("Failed to redact data #{ data }", e)
32
60
  else
33
61
  response.data
34
62
  end
@@ -38,8 +66,8 @@ module VGS
38
66
  begin
39
67
  query = aliases.kind_of?(Array) ? aliases.join(",") : aliases
40
68
  response = @aliases_api.reveal_multiple_aliases(q = query)
41
- rescue
42
- raise VgsApiException, "Failed to reveal aliases #{ aliases }"
69
+ rescue Exception => e
70
+ raise map_exception("Failed to reveal aliases #{ aliases }", e)
43
71
  else
44
72
  response.data
45
73
  end
@@ -48,8 +76,8 @@ module VGS
48
76
  def delete(_alias)
49
77
  begin
50
78
  @aliases_api.delete_alias(_alias = _alias)
51
- rescue
52
- raise VgsApiException, "Failed to delete alias #{ _alias }"
79
+ rescue Exception => e
80
+ raise map_exception("Failed to delete alias #{ _alias }", e)
53
81
  end
54
82
  end
55
83
 
@@ -63,8 +91,8 @@ module VGS
63
91
  @aliases_api.update_alias(_alias = _alias, opts = {
64
92
  :update_alias_request => update_alias_request.to_hash
65
93
  })
66
- rescue
67
- raise VgsApiException, "Failed to update alias #{ _alias }"
94
+ rescue Exception => e
95
+ raise map_exception("Failed to update alias #{ _alias }", e)
68
96
  end
69
97
  end
70
98
  end
@@ -77,6 +105,7 @@ module VGS
77
105
  config.username = username
78
106
  config.password = password
79
107
  config.host = host
108
+ config.server_index = nil
80
109
  config
81
110
  end
82
111
  end
@@ -3,7 +3,7 @@
3
3
  LIB_VERSION=${LIB_VERSION:-0.0.1.alpha$(date "+%Y%m%d%H%M")}
4
4
 
5
5
  # fix version
6
- grep -rl 0.0.1.alpha202205100801 . | xargs sed -i "s/0.0.1.alpha202205100801/${LIB_VERSION}/g"
6
+ grep -rl 0.0.1.alpha202205100948 . | xargs sed -i "s/0.0.1.alpha202205100948/${LIB_VERSION}/g"
7
7
 
8
8
  # build
9
9
  gem build vgs_api_client.gemspec
data/scripts/test/run.sh CHANGED
@@ -5,7 +5,7 @@ set -e
5
5
  echo "Installing lib from local sources"
6
6
  # fix version
7
7
  VERSION=0.0.1.alpha$(date "+%Y%m%d%H%M")
8
- grep -rl 0.0.1.alpha202205100801 . | xargs sed -i "s/0.0.1.alpha202205100801/$VERSION/g"
8
+ grep -rl 0.0.1.alpha202205100948 . | xargs sed -i "s/0.0.1.alpha202205100948/$VERSION/g"
9
9
 
10
10
  bundle install
11
11
 
@@ -3,9 +3,43 @@ require 'securerandom'
3
3
  require 'vgs_api_client'
4
4
 
5
5
  describe 'AliasesApiSpec' do
6
- before(:all) do
6
+ before(:each) do
7
7
  config = VGS.config(username = ENV['VAULT_API_USERNAME'], password = ENV['VAULT_API_PASSWORD'])
8
- @aliases_api = VGS::Aliases.new config
8
+ @api = VGS::Aliases.new config
9
+ end
10
+
11
+ describe 'invalid auth' do
12
+ it 'should fail if invalid auth provided' do
13
+ invalid_config = VGS.config(username = 'Invalid', password = 'Invalid')
14
+ api = VGS::Aliases.new invalid_config
15
+ data = [{
16
+ format: 'UUID',
17
+ value: 'Joe Doe'
18
+ }]
19
+
20
+ expect { api.redact data }.to raise_error(VGS::UnauthorizedError)
21
+ end
22
+ end
23
+
24
+ describe 'invalid config' do
25
+ it 'should fail if invalid config provided' do
26
+ expect { VGS::Aliases.new nil }.to raise_error(ArgumentError)
27
+ end
28
+ end
29
+
30
+ describe 'invalid host' do
31
+ it 'should fail if invalid host provided' do
32
+ config = VGS.config(
33
+ username = ENV['VAULT_API_USERNAME'],
34
+ password = ENV['VAULT_API_PASSWORD'],
35
+ host = 'https://echo.apps.verygood.systems')
36
+ api = VGS::Aliases.new config
37
+ data = [{
38
+ format: 'UUID',
39
+ value: 'Joe Doe'
40
+ }]
41
+ expect { api.redact data }.to raise_error(VGS::NotFoundError)
42
+ end
9
43
  end
10
44
 
11
45
  describe 'redact' do
@@ -21,7 +55,7 @@ describe 'AliasesApiSpec' do
21
55
  value: 'Joe Doe',
22
56
  storage: 'VOLATILE'
23
57
  }]
24
- aliases = @aliases_api.redact data
58
+ aliases = @api.redact data
25
59
  expect(aliases.length).to eq 2
26
60
  data.each_with_index do |item, index|
27
61
  expect(aliases[index].value).to eq item[:value]
@@ -46,14 +80,14 @@ describe 'AliasesApiSpec' do
46
80
  value: 'Joe Doe',
47
81
  storage: 'VOLATILE'
48
82
  }]
49
- aliases = @aliases_api.redact(data).map { |item| item.aliases[0]._alias }
83
+ aliases = @api.redact(data).map { |item| item.aliases[0]._alias }
50
84
 
51
- response = @aliases_api.reveal aliases
85
+ response = @api.reveal aliases
52
86
 
53
87
  expect(response.length).to eq 2
54
88
  original_values = data.map { |i| i[:value] }
55
89
  revealed_values = response.values.map { |i| i.value }
56
- expect(Set.new(original_values)).to eq Set.new(revealed_values)
90
+ expect(Set.new original_values).to eq Set.new revealed_values
57
91
  end
58
92
  end
59
93
 
@@ -63,11 +97,11 @@ describe 'AliasesApiSpec' do
63
97
  format: 'UUID',
64
98
  value: SecureRandom.alphanumeric(10)
65
99
  }]
66
- _alias = @aliases_api.redact(data).map { |item| item.aliases[0]._alias }[0]
100
+ _alias = @api.redact(data).map { |item| item.aliases[0]._alias }[0]
67
101
 
68
- @aliases_api.update _alias, classifiers: %w[secure]
102
+ @api.update _alias, classifiers: %w[secure]
69
103
 
70
- response = @aliases_api.reveal(_alias)
104
+ response = @api.reveal _alias
71
105
  expect(response[_alias].classifiers).to eq %w[secure]
72
106
  end
73
107
  end
@@ -78,11 +112,11 @@ describe 'AliasesApiSpec' do
78
112
  format: 'UUID',
79
113
  value: '5201784564572092'
80
114
  }]
81
- _alias = @aliases_api.redact(data).map { |item| item.aliases[0]._alias }[0]
115
+ _alias = @api.redact(data).map { |item| item.aliases[0]._alias }[0]
82
116
 
83
- @aliases_api.delete _alias
117
+ @api.delete _alias
84
118
 
85
- expect { @aliases_api.reveal(_alias) }.to raise_error(VGS::VgsApiException)
119
+ expect { @api.reveal _alias }.to raise_error(VGS::VgsApiError)
86
120
  end
87
121
  end
88
122
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vgs_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.alpha202205100801
4
+ version: 0.0.1.alpha202205100948
5
5
  platform: ruby
6
6
  authors:
7
7
  - Very Good Security