avmtrf1-tools 0.39.7 → 0.41.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: 3ff10204c30ec6cd792506a13db51d8fc7460eb9e86b17832596808f32f6e17d
4
- data.tar.gz: 1ccf217dbdb39e3b5249a04a5cba1abc103cb7a9573a77823fff7be433b6f6ea
3
+ metadata.gz: 32ccec06864f6a302202ebb37a37c7bad52f3c9ee3d336cbd775069eb699ef9f
4
+ data.tar.gz: 79845abb8223ddca954e98f2144de63756e07b1b1e3551071bed763eddc6c413
5
5
  SHA512:
6
- metadata.gz: 8bb6a402eecd5eec3a2addaa090f700b48c4bd7d95385e9661a1102429d4284f3d3715f88a67520288c8df43684b7e00fa6685d3bc6422f81feda21dd019998f
7
- data.tar.gz: 258fd349764cb1cf8ae5f37375bb8954840a74fab6a54dc871071b2b63bfe84bb25c67d69e622728445035d52bf9522886e7d127d5ffeee992246532fbf66c5b
6
+ metadata.gz: b83e3b6b85b4047ee4e37aa83e73dee02846c454a4b7ca7704e94d0fe614fd0c95a2e0ac47700f107abb8dc897d4c7100c37f7bc1d23068daedfc252b0e3ed94
7
+ data.tar.gz: 47dd7a59ec8f390e5ab61c4fbc5fcddc08da6b1889db15ef0bbcd90038f9b3816255c93e21d14d15aec7354ebb4da9c577e415729270db471e2c7f605a92775d
@@ -0,0 +1,31 @@
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 Member < ::EacRest::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
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/msgraph/api/team'
4
+ require 'eac_rest/entity'
5
+ require 'eac_ruby_utils/core_ext'
6
+
7
+ module Avmtrf1
8
+ module Tools
9
+ module Msgraph
10
+ class Api < ::EacRest::Api
11
+ class Root < ::EacRest::Entity
12
+ # @return [Array<Avmtrf1::Tools::Msgraph::Api::Group>]
13
+ def joined_teams
14
+ api.request('/me/joinedTeams').response.body_data.fetch('value').map do |team_data|
15
+ child_entity(::Avmtrf1::Tools::Msgraph::Api::Team, team_data)
16
+ end
17
+ end
18
+
19
+ # @return [Avmtrf1::Tools::Msgraph::Api::Team]
20
+ def team(team_id)
21
+ child_entity(::Avmtrf1::Tools::Msgraph::Api::Team, team_id)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,34 @@
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 Team < ::EacRest::Entity
11
+ %w[classification createdDateTime description discoverySettings displayName funSettings
12
+ guestSettings internalId isArchived isMembershipLimitedToOwners memberSettings
13
+ messagingSettings specialization summary tenantId visibility webUrl].each do |key|
14
+ define_method key.underscore do
15
+ data.fetch(key)
16
+ end
17
+
18
+ # @return [String]
19
+ def id_from_data
20
+ data.fetch('id')
21
+ end
22
+
23
+ def members
24
+ api.request("/teams/#{id}/members").response.body_data.fetch('value')
25
+ .map do |member_data|
26
+ child_entity(::Avmtrf1::Tools::Msgraph::Api::Member, member_data)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_rest/api'
4
+ require 'eac_ruby_utils/core_ext'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ module Msgraph
9
+ class Api < ::EacRest::Api
10
+ API_ROOT_URL = 'https://graph.microsoft.com/v1.0'
11
+
12
+ enable_simple_cache
13
+ common_constructor :client_id, super_args: -> { [API_ROOT_URL] }
14
+
15
+ # @return [String]
16
+ def access_token
17
+ token_info.fetch(:token).fetch(:accessToken)
18
+ end
19
+
20
+ # @return [EacRest::Request]
21
+ def request(service_url_suffix, headers = {}, &body_data_proc)
22
+ super(service_url_suffix, headers, &body_data_proc)
23
+ .header('Authorization', "Bearer #{access_token}")
24
+ end
25
+
26
+ def fs_object_id
27
+ client_id.to_s.variableize
28
+ end
29
+
30
+ private
31
+
32
+ # @return [EacFs::StorageTree]
33
+ def token_info_cache
34
+ fs_cache.child('token')
35
+ end
36
+
37
+ def token_info_uncached
38
+ token_info_cache.read_or_store_yaml { new_token_info }
39
+ end
40
+
41
+ def new_token_info
42
+ ::Avmtrf1::Tools::Msgraph::TokenRetrieve.new(client_id).result
43
+ end
44
+
45
+ require_sub __FILE__
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avmtrf1/tools/core_ext'
4
+ require 'avmtrf1/tools/msgraph/token_retrieve'
5
+
6
+ module Avmtrf1
7
+ module Tools
8
+ class Runner
9
+ class Msgraph
10
+ class JoinedTeams
11
+ runner_with :help, :output do
12
+ desc 'Lista as próprias equipes no MS Teams.'
13
+ end
14
+
15
+ def run
16
+ infov 'Found', teams.count
17
+ run_output
18
+ end
19
+
20
+ private
21
+
22
+ def output_content
23
+ teams.map { |t| "#{t.id}|#{t.display_name}\n" }.join
24
+ end
25
+
26
+ def teams_uncached
27
+ api.root_entity.joined_teams.sort_by { |t| [t.display_name, t.id] }
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ 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
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avmtrf1/tools/core_ext'
4
+ require 'avmtrf1/tools/msgraph/api'
4
5
 
5
6
  module Avmtrf1
6
7
  module Tools
@@ -11,6 +12,12 @@ module Avmtrf1
11
12
  arg_opt '-i', '--client-id', 'ID de aplicação cliente alternativo.'
12
13
  subcommands
13
14
  end
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
14
21
 
15
22
  def client_id
16
23
  client_id_by_argument || client_id_by_config
@@ -23,6 +30,13 @@ module Avmtrf1
23
30
  def client_id_by_config
24
31
  ::EacConfig::Node.context.current.entry('msgraph.client_id').value
25
32
  end
33
+
34
+ private
35
+
36
+ # @return [Avmtrf1::Tools::Msgraph::Api]
37
+ def api_uncached
38
+ ::Avmtrf1::Tools::Msgraph::Api.new(client_id)
39
+ end
26
40
  end
27
41
  end
28
42
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avmtrf1
4
4
  module Tools
5
- VERSION = '0.39.7'
5
+ VERSION = '0.41.0'
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.39.7
4
+ version: 0.41.0
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-28 00:00:00.000000000 Z
11
+ date: 2023-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-selenium
@@ -50,20 +50,14 @@ dependencies:
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '0.151'
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 0.151.1
53
+ version: '0.154'
57
54
  type: :runtime
58
55
  prerelease: false
59
56
  version_requirements: !ruby/object:Gem::Requirement
60
57
  requirements:
61
58
  - - "~>"
62
59
  - !ruby/object:Gem::Version
63
- version: '0.151'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 0.151.1
60
+ version: '0.154'
67
61
  - !ruby/object:Gem::Dependency
68
62
  name: eac_rest
69
63
  requirement: !ruby/object:Gem::Requirement
@@ -107,7 +101,7 @@ dependencies:
107
101
  version: '1.15'
108
102
  - - ">="
109
103
  - !ruby/object:Gem::Version
110
- version: 1.15.2
104
+ version: 1.15.3
111
105
  type: :runtime
112
106
  prerelease: false
113
107
  version_requirements: !ruby/object:Gem::Requirement
@@ -117,7 +111,7 @@ dependencies:
117
111
  version: '1.15'
118
112
  - - ">="
119
113
  - !ruby/object:Gem::Version
120
- version: 1.15.2
114
+ version: 1.15.3
121
115
  - !ruby/object:Gem::Dependency
122
116
  name: recursive-open-struct
123
117
  requirement: !ruby/object:Gem::Requirement
@@ -323,6 +317,10 @@ files:
323
317
  - lib/avmtrf1/tools/application.rb
324
318
  - lib/avmtrf1/tools/core_ext.rb
325
319
  - lib/avmtrf1/tools/msgraph.rb
320
+ - lib/avmtrf1/tools/msgraph/api.rb
321
+ - lib/avmtrf1/tools/msgraph/api/member.rb
322
+ - lib/avmtrf1/tools/msgraph/api/root.rb
323
+ - lib/avmtrf1/tools/msgraph/api/team.rb
326
324
  - lib/avmtrf1/tools/msgraph/token_retrieve.rb
327
325
  - lib/avmtrf1/tools/runner.rb
328
326
  - lib/avmtrf1/tools/runner/check_point.rb
@@ -343,6 +341,10 @@ files:
343
341
  - lib/avmtrf1/tools/runner/git/push_large.rb
344
342
  - lib/avmtrf1/tools/runner/inventario_sistemas.rb
345
343
  - lib/avmtrf1/tools/runner/msgraph.rb
344
+ - lib/avmtrf1/tools/runner/msgraph/joined_teams.rb
345
+ - lib/avmtrf1/tools/runner/msgraph/request.rb
346
+ - lib/avmtrf1/tools/runner/msgraph/team.rb
347
+ - lib/avmtrf1/tools/runner/msgraph/team/members.rb
346
348
  - lib/avmtrf1/tools/runner/msgraph/token.rb
347
349
  - lib/avmtrf1/tools/runner/node_js.rb
348
350
  - lib/avmtrf1/tools/runner/node_js/docker.rb