avmtrf1-tools 0.39.7 → 0.40.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: 409b614dd9df105476d7d7ce456efbaf3166b6c7eacf0d51bf507e84b0814423
4
+ data.tar.gz: ce1872a84c657132015e826bb8bbc59fc939b031f5cb7c9d90ea706877618eda
5
5
  SHA512:
6
- metadata.gz: 8bb6a402eecd5eec3a2addaa090f700b48c4bd7d95385e9661a1102429d4284f3d3715f88a67520288c8df43684b7e00fa6685d3bc6422f81feda21dd019998f
7
- data.tar.gz: 258fd349764cb1cf8ae5f37375bb8954840a74fab6a54dc871071b2b63bfe84bb25c67d69e622728445035d52bf9522886e7d127d5ffeee992246532fbf66c5b
6
+ metadata.gz: 786b256eb94d24cad76a280e6621c5b37b8042b38bf0a95d0c7df81592e917b3698abb774d27569087146a78c782bc62c0fae488235bdc888464db610699ced0
7
+ data.tar.gz: c53d815127b4e1da902e3ac1e239c55aa40b2c4817e6c4d911b50507c94c6052c3e05b2d9bc1778dfed303bb0052ab019be9e72af0ec7c060d671b439b62d156
@@ -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::Group]
20
+ def group(group_id)
21
+ child_entity(::Avmtrf1::Tools::Msgraph::Api::Group, group_id)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,27 @@
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
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ 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
@@ -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,7 @@ 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
14
16
 
15
17
  def client_id
16
18
  client_id_by_argument || client_id_by_config
@@ -23,6 +25,13 @@ module Avmtrf1
23
25
  def client_id_by_config
24
26
  ::EacConfig::Node.context.current.entry('msgraph.client_id').value
25
27
  end
28
+
29
+ private
30
+
31
+ # @return [Avmtrf1::Tools::Msgraph::Api]
32
+ def api_uncached
33
+ ::Avmtrf1::Tools::Msgraph::Api.new(client_id)
34
+ end
26
35
  end
27
36
  end
28
37
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avmtrf1
4
4
  module Tools
5
- VERSION = '0.39.7'
5
+ VERSION = '0.40.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.40.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-06-30 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.153'
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.153'
67
61
  - !ruby/object:Gem::Dependency
68
62
  name: eac_rest
69
63
  requirement: !ruby/object:Gem::Requirement
@@ -323,6 +317,9 @@ 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/root.rb
322
+ - lib/avmtrf1/tools/msgraph/api/team.rb
326
323
  - lib/avmtrf1/tools/msgraph/token_retrieve.rb
327
324
  - lib/avmtrf1/tools/runner.rb
328
325
  - lib/avmtrf1/tools/runner/check_point.rb
@@ -343,6 +340,7 @@ files:
343
340
  - lib/avmtrf1/tools/runner/git/push_large.rb
344
341
  - lib/avmtrf1/tools/runner/inventario_sistemas.rb
345
342
  - lib/avmtrf1/tools/runner/msgraph.rb
343
+ - lib/avmtrf1/tools/runner/msgraph/joined_teams.rb
346
344
  - lib/avmtrf1/tools/runner/msgraph/token.rb
347
345
  - lib/avmtrf1/tools/runner/node_js.rb
348
346
  - lib/avmtrf1/tools/runner/node_js/docker.rb