avmtrf1-tools 0.40.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 +4 -4
- data/lib/avmtrf1/tools/msgraph/api/entity.rb +22 -0
- data/lib/avmtrf1/tools/msgraph/api/member.rb +31 -0
- data/lib/avmtrf1/tools/msgraph/api/root.rb +6 -6
- data/lib/avmtrf1/tools/msgraph/api/team.rb +8 -2
- data/lib/avmtrf1/tools/msgraph/api.rb +11 -2
- data/lib/avmtrf1/tools/msgraph/invalid_token_error.rb +13 -0
- data/lib/avmtrf1/tools/msgraph/request_mixin.rb +18 -0
- data/lib/avmtrf1/tools/msgraph/response_mixin.rb +51 -0
- data/lib/avmtrf1/tools/runner/msgraph/request.rb +45 -0
- data/lib/avmtrf1/tools/runner/msgraph/team/members.rb +36 -0
- data/lib/avmtrf1/tools/runner/msgraph/team.rb +27 -0
- data/lib/avmtrf1/tools/runner/msgraph.rb +6 -1
- data/lib/avmtrf1/tools/version.rb +1 -1
- metadata +16 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7c004c200bbd53b895d1ab4b9df5d5e2f01f7d0b3c77605fb6f1049e96c01d66
|
|
4
|
+
data.tar.gz: 100127b8522690406d21d3f352e97546ddbd9b066127955d227b9bd57f6fa07a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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 < ::
|
|
11
|
+
class Root < ::Avmtrf1::Tools::Msgraph::Api::Entity
|
|
12
12
|
# @return [Array<Avmtrf1::Tools::Msgraph::Api::Group>]
|
|
13
13
|
def joined_teams
|
|
14
|
-
|
|
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::
|
|
20
|
-
def
|
|
21
|
-
child_entity(::Avmtrf1::Tools::Msgraph::Api::
|
|
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 '
|
|
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 < ::
|
|
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
|
-
|
|
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,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
|
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.
|
|
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-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|