avmtrf1-tools 0.41.0 → 0.41.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 32ccec06864f6a302202ebb37a37c7bad52f3c9ee3d336cbd775069eb699ef9f
4
- data.tar.gz: 79845abb8223ddca954e98f2144de63756e07b1b1e3551071bed763eddc6c413
3
+ metadata.gz: 7c004c200bbd53b895d1ab4b9df5d5e2f01f7d0b3c77605fb6f1049e96c01d66
4
+ data.tar.gz: 100127b8522690406d21d3f352e97546ddbd9b066127955d227b9bd57f6fa07a
5
5
  SHA512:
6
- metadata.gz: b83e3b6b85b4047ee4e37aa83e73dee02846c454a4b7ca7704e94d0fe614fd0c95a2e0ac47700f107abb8dc897d4c7100c37f7bc1d23068daedfc252b0e3ed94
7
- data.tar.gz: 47dd7a59ec8f390e5ab61c4fbc5fcddc08da6b1889db15ef0bbcd90038f9b3816255c93e21d14d15aec7354ebb4da9c577e415729270db471e2c7f605a92775d
6
+ metadata.gz: b46dc0766ba4a2f5b3c6515608192f79ad8fc301b23b2b57a8a892b1307dc5bd35a95e2daf7435c4b575211d039456b28ee6eb2721e4995dd8386fc55f25c357
7
+ data.tar.gz: a3eb77e607af031c654dd26e5fef97dc7cfc195d140073dd3343b1087e6e073a6757b7a38084e6dc83cf741736df47cb27acdcdc16e1057a3a2ca6dfabfbaa4e
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_rest/entity'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ module Msgraph
9
+ class Api < ::EacRest::Api
10
+ class Entity < ::EacRest::Entity
11
+ def request_data(url_suffix)
12
+ req = api.request(url_suffix)
13
+ req.response.body_data_or_raise
14
+ rescue ::Avmtrf1::Tools::Msgraph::InvalidTokenError
15
+ api.clear_token_info
16
+ req.response.body_data_or_raise
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_rest/entity'
3
+ require 'avmtrf1/tools/msgraph/api/entity'
4
4
  require 'eac_ruby_utils/core_ext'
5
5
 
6
6
  module Avmtrf1
7
7
  module Tools
8
8
  module Msgraph
9
9
  class Api < ::EacRest::Api
10
- class Member < ::EacRest::Entity
10
+ class Member < ::Avmtrf1::Tools::Msgraph::Api::Entity
11
11
  %w[displayName email roles tenantId userId visibleHistoryStartDateTime]
12
12
  .each do |key|
13
13
  define_method key.underscore do
@@ -1,17 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avmtrf1/tools/msgraph/api/entity'
3
4
  require 'avmtrf1/tools/msgraph/api/team'
4
- require 'eac_rest/entity'
5
5
  require 'eac_ruby_utils/core_ext'
6
6
 
7
7
  module Avmtrf1
8
8
  module Tools
9
9
  module Msgraph
10
10
  class Api < ::EacRest::Api
11
- class Root < ::EacRest::Entity
11
+ class Root < ::Avmtrf1::Tools::Msgraph::Api::Entity
12
12
  # @return [Array<Avmtrf1::Tools::Msgraph::Api::Group>]
13
13
  def joined_teams
14
- api.request('/me/joinedTeams').response.body_data.fetch('value').map do |team_data|
14
+ request_data('/me/joinedTeams').map do |team_data|
15
15
  child_entity(::Avmtrf1::Tools::Msgraph::Api::Team, team_data)
16
16
  end
17
17
  end
@@ -1,13 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'eac_rest/entity'
3
+ require 'avmtrf1/tools/msgraph/api/entity'
4
4
  require 'eac_ruby_utils/core_ext'
5
5
 
6
6
  module Avmtrf1
7
7
  module Tools
8
8
  module Msgraph
9
9
  class Api < ::EacRest::Api
10
- class Team < ::EacRest::Entity
10
+ class Team < ::Avmtrf1::Tools::Msgraph::Api::Entity
11
11
  %w[classification createdDateTime description discoverySettings displayName funSettings
12
12
  guestSettings internalId isArchived isMembershipLimitedToOwners memberSettings
13
13
  messagingSettings specialization summary tenantId visibility webUrl].each do |key|
@@ -21,8 +21,7 @@ module Avmtrf1
21
21
  end
22
22
 
23
23
  def members
24
- api.request("/teams/#{id}/members").response.body_data.fetch('value')
25
- .map do |member_data|
24
+ request_data("/teams/#{id}/members").map do |member_data|
26
25
  child_entity(::Avmtrf1::Tools::Msgraph::Api::Member, member_data)
27
26
  end
28
27
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'avmtrf1/tools/msgraph/request_mixin'
3
4
  require 'eac_rest/api'
4
5
  require 'eac_ruby_utils/core_ext'
5
6
 
@@ -17,10 +18,18 @@ module Avmtrf1
17
18
  token_info.fetch(:token).fetch(:accessToken)
18
19
  end
19
20
 
21
+ # @return [void]
22
+ def clear_token_info
23
+ token_info_cache.clear
24
+ reset_cache(:token_info)
25
+ end
26
+
20
27
  # @return [EacRest::Request]
21
28
  def request(service_url_suffix, headers = {}, &body_data_proc)
22
- super(service_url_suffix, headers, &body_data_proc)
23
- .header('Authorization', "Bearer #{access_token}")
29
+ r = super(service_url_suffix, headers, &body_data_proc)
30
+ .header('Authorization', "Bearer #{access_token}")
31
+ r.singleton_class.prepend(::Avmtrf1::Tools::Msgraph::RequestMixin)
32
+ r
24
33
  end
25
34
 
26
35
  def fs_object_id
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_rest/error'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ module Msgraph
9
+ class InvalidTokenError < ::EacRest::Error
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/msgraph/response_mixin'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ module Msgraph
9
+ module RequestMixin
10
+ def response
11
+ r = super
12
+ r.singleton_class.prepend(::Avmtrf1::Tools::Msgraph::ResponseMixin)
13
+ r
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/msgraph/invalid_token_error'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ module Msgraph
9
+ module ResponseMixin
10
+ ERROR_KEY = 'error'
11
+ INVALID_TOKEN_CODE = 'InvalidAuthenticationToken'
12
+ VALUE_KEY = 'value'
13
+
14
+ def body_data_or_raise
15
+ check_invalid_token
16
+ r = super
17
+ return r unless r.is_a?(::Hash)
18
+
19
+ body_hash_or_raise(r)
20
+ end
21
+
22
+ # @return [String, nil]
23
+ def error_code
24
+ return false unless body_data.is_a?(::Hash)
25
+ return false unless body_data.key?(ERROR_KEY)
26
+
27
+ body_data.fetch(ERROR_KEY).fetch('code')
28
+ end
29
+
30
+ protected
31
+
32
+ def body_hash_or_raise(result_data)
33
+ return result_data.fetch(VALUE_KEY) if result_data.key?(VALUE_KEY)
34
+ return raise_error_from_hash(result_data.fetch(ERROR_KEY)) if result_data.key?(ERROR_KEY)
35
+
36
+ nbr
37
+ end
38
+
39
+ def check_invalid_token
40
+ return unless error_code == INVALID_TOKEN_CODE
41
+
42
+ raise ::Avmtrf1::Tools::Msgraph::InvalidTokenError
43
+ end
44
+
45
+ def raise_error_from_hash(error_hash)
46
+ raise ::EacRest::Error, error_hash.pretty_inspect
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avmtrf1
4
4
  module Tools
5
- VERSION = '0.41.0'
5
+ VERSION = '0.41.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avmtrf1-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.41.0
4
+ version: 0.41.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo H. Bogoni
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-19 00:00:00.000000000 Z
11
+ date: 2023-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-selenium
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: '0.18'
34
34
  - - ">="
35
35
  - !ruby/object:Gem::Version
36
- version: 0.18.1
36
+ version: 0.18.2
37
37
  type: :runtime
38
38
  prerelease: false
39
39
  version_requirements: !ruby/object:Gem::Requirement
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0.18'
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 0.18.1
46
+ version: 0.18.2
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: avm-tools
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -318,9 +318,13 @@ files:
318
318
  - lib/avmtrf1/tools/core_ext.rb
319
319
  - lib/avmtrf1/tools/msgraph.rb
320
320
  - lib/avmtrf1/tools/msgraph/api.rb
321
+ - lib/avmtrf1/tools/msgraph/api/entity.rb
321
322
  - lib/avmtrf1/tools/msgraph/api/member.rb
322
323
  - lib/avmtrf1/tools/msgraph/api/root.rb
323
324
  - lib/avmtrf1/tools/msgraph/api/team.rb
325
+ - lib/avmtrf1/tools/msgraph/invalid_token_error.rb
326
+ - lib/avmtrf1/tools/msgraph/request_mixin.rb
327
+ - lib/avmtrf1/tools/msgraph/response_mixin.rb
324
328
  - lib/avmtrf1/tools/msgraph/token_retrieve.rb
325
329
  - lib/avmtrf1/tools/runner.rb
326
330
  - lib/avmtrf1/tools/runner/check_point.rb