avmtrf1-tools 0.40.0 → 0.41.1

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: 409b614dd9df105476d7d7ce456efbaf3166b6c7eacf0d51bf507e84b0814423
4
- data.tar.gz: ce1872a84c657132015e826bb8bbc59fc939b031f5cb7c9d90ea706877618eda
3
+ metadata.gz: 7c004c200bbd53b895d1ab4b9df5d5e2f01f7d0b3c77605fb6f1049e96c01d66
4
+ data.tar.gz: 100127b8522690406d21d3f352e97546ddbd9b066127955d227b9bd57f6fa07a
5
5
  SHA512:
6
- metadata.gz: 786b256eb94d24cad76a280e6621c5b37b8042b38bf0a95d0c7df81592e917b3698abb774d27569087146a78c782bc62c0fae488235bdc888464db610699ced0
7
- data.tar.gz: c53d815127b4e1da902e3ac1e239c55aa40b2c4817e6c4d911b50507c94c6052c3e05b2d9bc1778dfed303bb0052ab019be9e72af0ec7c060d671b439b62d156
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
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/msgraph/api/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 Member < ::Avmtrf1::Tools::Msgraph::Api::Entity
11
+ %w[displayName email roles tenantId userId visibleHistoryStartDateTime]
12
+ .each do |key|
13
+ define_method key.underscore do
14
+ data.fetch(key)
15
+ end
16
+ end
17
+
18
+ # @return [String]
19
+ def id_from_data
20
+ data.fetch('id')
21
+ end
22
+
23
+ # @return [String]
24
+ def type
25
+ data.fetch('@odata.type')
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,24 +1,24 @@
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
18
18
 
19
- # @return [Avmtrf1::Tools::Msgraph::Api::Group]
20
- def group(group_id)
21
- child_entity(::Avmtrf1::Tools::Msgraph::Api::Group, group_id)
19
+ # @return [Avmtrf1::Tools::Msgraph::Api::Team]
20
+ def team(team_id)
21
+ child_entity(::Avmtrf1::Tools::Msgraph::Api::Team, team_id)
22
22
  end
23
23
  end
24
24
  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|
@@ -19,6 +19,12 @@ module Avmtrf1
19
19
  def id_from_data
20
20
  data.fetch('id')
21
21
  end
22
+
23
+ def members
24
+ request_data("/teams/#{id}/members").map do |member_data|
25
+ child_entity(::Avmtrf1::Tools::Msgraph::Api::Member, member_data)
26
+ end
27
+ end
22
28
  end
23
29
  end
24
30
  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
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+
5
+ module Avmtrf1
6
+ module Tools
7
+ class Runner
8
+ class Msgraph
9
+ class Request
10
+ runner_with :help do
11
+ pos_arg :url_suffix
12
+ end
13
+
14
+ def run
15
+ request_banner
16
+ fetch_response
17
+ end
18
+
19
+ private
20
+
21
+ def request_banner
22
+ api_banner
23
+ infov 'URL', request.url
24
+ end
25
+
26
+ def fetch_response
27
+ infom 'Requesting...'
28
+ infov 'Response status', response.status
29
+ infov 'Response body class', response.body_data.class
30
+ infov 'Response body', '*'
31
+ out response.body_data.to_yaml + "\n"
32
+ end
33
+
34
+ def request_uncached
35
+ api.request_json(parsed.url_suffix)
36
+ end
37
+
38
+ def response_uncached
39
+ request.response
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+
5
+ module Avmtrf1
6
+ module Tools
7
+ class Runner
8
+ class Msgraph
9
+ class Team
10
+ class Members
11
+ runner_with :help, :output
12
+
13
+ def run
14
+ infov 'Found', members.count
15
+ run_output
16
+ end
17
+
18
+ private
19
+
20
+ def members_uncached
21
+ team.members.sort_by { |m| [m.email, m.id] }
22
+ end
23
+
24
+ def format_member(member)
25
+ %w[email display_name].map { |k| member.send(k) }.join('|')
26
+ end
27
+
28
+ def output_content
29
+ members.map { |member| "#{format_member(member)}\n" }.join
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+
5
+ module Avmtrf1
6
+ module Tools
7
+ class Runner
8
+ class Msgraph
9
+ class Team
10
+ runner_with :help, :subcommands do
11
+ pos_arg :team_id
12
+ subcommands
13
+ end
14
+ for_context :team
15
+
16
+ private
17
+
18
+ def team_uncached
19
+ api.root_entity.team(parsed.team_id)
20
+ end
21
+
22
+ require_sub __FILE__
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -12,7 +12,12 @@ module Avmtrf1
12
12
  arg_opt '-i', '--client-id', 'ID de aplicação cliente alternativo.'
13
13
  subcommands
14
14
  end
15
- for_context :api
15
+ for_context :api, :api_banner
16
+
17
+ def api_banner
18
+ infov 'Client ID', api.client_id
19
+ infov 'Root URL', api.root_url
20
+ end
16
21
 
17
22
  def client_id
18
23
  client_id_by_argument || client_id_by_config
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avmtrf1
4
4
  module Tools
5
- VERSION = '0.40.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.40.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-06-30 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,21 +43,21 @@ 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
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.153'
53
+ version: '0.154'
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '0.153'
60
+ version: '0.154'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: eac_rest
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -101,7 +101,7 @@ dependencies:
101
101
  version: '1.15'
102
102
  - - ">="
103
103
  - !ruby/object:Gem::Version
104
- version: 1.15.2
104
+ version: 1.15.3
105
105
  type: :runtime
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
@@ -111,7 +111,7 @@ dependencies:
111
111
  version: '1.15'
112
112
  - - ">="
113
113
  - !ruby/object:Gem::Version
114
- version: 1.15.2
114
+ version: 1.15.3
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: recursive-open-struct
117
117
  requirement: !ruby/object:Gem::Requirement
@@ -318,8 +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
322
+ - lib/avmtrf1/tools/msgraph/api/member.rb
321
323
  - lib/avmtrf1/tools/msgraph/api/root.rb
322
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
323
328
  - lib/avmtrf1/tools/msgraph/token_retrieve.rb
324
329
  - lib/avmtrf1/tools/runner.rb
325
330
  - lib/avmtrf1/tools/runner/check_point.rb
@@ -341,6 +346,9 @@ files:
341
346
  - lib/avmtrf1/tools/runner/inventario_sistemas.rb
342
347
  - lib/avmtrf1/tools/runner/msgraph.rb
343
348
  - lib/avmtrf1/tools/runner/msgraph/joined_teams.rb
349
+ - lib/avmtrf1/tools/runner/msgraph/request.rb
350
+ - lib/avmtrf1/tools/runner/msgraph/team.rb
351
+ - lib/avmtrf1/tools/runner/msgraph/team/members.rb
344
352
  - lib/avmtrf1/tools/runner/msgraph/token.rb
345
353
  - lib/avmtrf1/tools/runner/node_js.rb
346
354
  - lib/avmtrf1/tools/runner/node_js/docker.rb