cloudally 0.2.2 → 0.3.0

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: 1afb93903c08a062ef900cef1ee3fecdc0c12cc8574f910bc30eb3ebe144e38a
4
- data.tar.gz: e3725fbd2e6054b4c6325cf2968e04440fb3e11561cccc70a081dc05d502ad61
3
+ metadata.gz: 3e29633647fb8984a79c99fcd163a8ec7a394aee08e70fa9b769841ac8a2f0b4
4
+ data.tar.gz: 6231ffb138601eb3719500f778758b9824a83a3e51032d25d4420ef9bbe605f2
5
5
  SHA512:
6
- metadata.gz: 33d730dd7104a7d8e626255e54c3d2fc689193b26633b64b31710cb32a02a979889144adca53e2bf314427bf31f31f8f699c824b861030b660306f9307ced288
7
- data.tar.gz: 3ddb3a4a625bdd3748f6bca581e23e2c14c4288a021f40508caa602272ca75b190e0ecacc2b776c34e5b1d6c5017dcce0e753772805010434804c9958a370ce8
6
+ metadata.gz: bf7fb20897ffd7c2c443824dab575b922458ffb1c12f55e15ab220412d174b44a90744a1c764537e3a44d3f5a496c72ef207f352c49bb569d189c6a56957aaa1
7
+ data.tar.gz: 2ba40d29f87ead154cf16f18ba26080fd4469de2b96d7c4cf9c02d7bd1b84ae999df2caed48dd95511eda0102b23ca7c6394fe46c0c15fd43aebae07f4828c3e
data/CHANGELOG.md CHANGED
@@ -21,3 +21,6 @@
21
21
  ## [0.2.2] - 2024-02-08
22
22
  - updated wrapi pagination
23
23
 
24
+ ## [0.3.0] - 2024-02-21
25
+ - Harmonization exceptions
26
+
data/Gemfile CHANGED
@@ -7,3 +7,4 @@ gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
9
  gem "rubocop", "~> 1.7"
10
+ gem 'simplecov', require: false, group: :test
data/README.md CHANGED
@@ -1,4 +1,7 @@
1
1
  # Cloudally API
2
+ [![Version](https://img.shields.io/gem/v/cloudally.svg)](https://rubygems.org/gems/cloudally)
3
+ [![Maintainability](https://api.codeclimate.com/v1/badges/fc344d88ac45777b3168/maintainability)](https://codeclimate.com/github/jancotanis/cloudally/maintainability)
4
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/fc344d88ac45777b3168/test_coverage)](https://codeclimate.com/github/jancotanis/cloudally/test_coverage)
2
5
 
3
6
 
4
7
  This is a wrapper for the CloudAlly portal API v1. You can see the API endpoints here https://api.cloudally.com/documentation
data/Rakefile CHANGED
@@ -1,14 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rake/testtask"
3
+ require 'bundler/gem_tasks'
4
+ require 'dotenv'
5
+ require 'rake/testtask'
6
+
7
+ Dotenv.load
8
+
9
+ system './bin/cc-test-reporter before-build'
5
10
 
6
11
  Rake::TestTask.new(:test) do |t|
7
- t.libs << "test"
8
- t.libs << "lib"
9
- t.test_files = FileList["test/**/*_test.rb"]
12
+ t.libs << 'test'
13
+ t.libs << 'lib'
14
+ t.test_files = FileList['test/**/*_test.rb']
15
+ at_exit do
16
+ system './bin/cc-test-reporter after-build'
17
+ end
10
18
  end
11
19
 
12
- require "rubocop/rake_task"
20
+ require 'rubocop/rake_task'
13
21
  RuboCop::RakeTask.new
14
22
  task default: %i[test rubocop]
Binary file
data/cloudally.gemspec CHANGED
@@ -33,4 +33,5 @@ Gem::Specification.new do |s|
33
33
  s.add_development_dependency 'dotenv'
34
34
  s.add_development_dependency 'minitest'
35
35
  s.add_development_dependency 'rubocop'
36
+ s.add_development_dependency 'simplecov'
36
37
  end
@@ -1,25 +1,36 @@
1
+ require 'faraday'
2
+ require File.expand_path('error', __dir__)
1
3
 
2
4
  module CloudAlly
3
5
  # Deals with authentication flow and stores it within global configuration
4
6
  module Authentication
5
7
  # Authorize to the CloudAlly portal and return access_token
6
8
  def auth(options = {})
9
+ raise raise ConfigurationError.new "client_id and/or client_secret empty" unless client_id && client_secret
7
10
  api_auth('/auth', options)
11
+ rescue Faraday::UnauthorizedError => e
12
+ raise AuthenticationError.new e.to_s
8
13
  end
9
14
  alias login auth
10
15
 
11
16
  # Return an access token from authorization
12
17
  def auth_refresh(token)
13
18
  api_refresh('/auth/refresh', token)
19
+ rescue Faraday::UnauthorizedError => e
20
+ raise AuthenticationError.new e.to_s
14
21
  end
15
22
 
16
23
  # Authorize to the partner portal and return access_token
17
24
  def auth_partner(options = {})
25
+ raise raise ConfigurationError.new "client_id and/or client_secret empty" unless client_id && client_secret
18
26
  api_auth('/auth/partner', options)
27
+ rescue Faraday::ServerError, Faraday::UnauthorizedError => e
28
+ raise AuthenticationError.new e.to_s
19
29
  end
20
30
  alias partner_login auth_partner
21
31
  private
22
32
  def api_access_token_params
33
+ raise raise ConfigurationError.new "username and/or password empty" unless username && password
23
34
  {
24
35
  email: username,
25
36
  password: password
@@ -0,0 +1,11 @@
1
+ module CloudAlly
2
+
3
+ # Generic error to be able to rescue all CloudAlly errors
4
+ class CloudAllyError < StandardError; end
5
+
6
+ # Error when configuration not sufficient
7
+ class ConfigurationError < CloudAllyError; end
8
+
9
+ # Error when authentication fails
10
+ class AuthenticationError < CloudAllyError; end
11
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CloudAlly
4
- VERSION = '0.2.2'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudally
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janco Tanis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-02-08 00:00:00.000000000 Z
11
+ date: 2024-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: simplecov
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description:
84
98
  email: gems@jancology.com
85
99
  executables: []
@@ -92,12 +106,14 @@ files:
92
106
  - Gemfile
93
107
  - README.md
94
108
  - Rakefile
109
+ - bin/cc-test-reporter.exe
95
110
  - cloudally.gemspec
96
111
  - lib/cloudally.rb
97
112
  - lib/cloudally/api.rb
98
113
  - lib/cloudally/authentication.rb
99
114
  - lib/cloudally/client.rb
100
115
  - lib/cloudally/client/partners.rb
116
+ - lib/cloudally/error.rb
101
117
  - lib/cloudally/pagination.rb
102
118
  - lib/cloudally/version.rb
103
119
  homepage: https://rubygems.org/gems/cloudally