avmtrf1-tools 0.41.0 → 0.42.0
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 +35 -0
- data/lib/avmtrf1/tools/msgraph/api/member.rb +2 -2
- data/lib/avmtrf1/tools/msgraph/api/root.rb +3 -3
- data/lib/avmtrf1/tools/msgraph/api/team/member_add.rb +36 -0
- data/lib/avmtrf1/tools/msgraph/api/team.rb +10 -4
- data/lib/avmtrf1/tools/msgraph/api.rb +6 -0
- data/lib/avmtrf1/tools/msgraph/error.rb +31 -0
- data/lib/avmtrf1/tools/msgraph/request_mixin.rb +18 -0
- data/lib/avmtrf1/tools/msgraph/response_mixin.rb +23 -0
- data/lib/avmtrf1/tools/runner/msgraph/joined_teams.rb +10 -4
- data/lib/avmtrf1/tools/runner/msgraph/team/member/add.rb +48 -0
- data/lib/avmtrf1/tools/runner/msgraph/team/member.rb +25 -0
- data/lib/avmtrf1/tools/runner/msgraph/team/members.rb +11 -9
- data/lib/avmtrf1/tools/version.rb +1 -1
- metadata +15 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 73ca9a438c2acc50c74bda3da77ac125188cde76748561f720fce83c98501594
|
4
|
+
data.tar.gz: abd8fb430e69bc6e79612950f519f390ac2ba1113642e6be8d615c16e25599e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56891d5de729710444c7279ed072e826b5f2bb91fe575415d92bf40789187e8342e6db923c0faabd784ac175f6e2601ac8b14e503bcc27217ae0308b67126cb5
|
7
|
+
data.tar.gz: fa085736e91ce1b4064c4e2ca217810de040ccc44cac42476ed553ca729f757d0c633d56cfaaee2bef0f9c36b3f9909895879ff303e6313f0821beff9fabf088
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/msgraph/request_mixin'
|
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 Entity < ::EacRest::Entity
|
12
|
+
def request_data(url_suffix, &block)
|
13
|
+
req = request_data_request(url_suffix, &block)
|
14
|
+
req.response.body_data_or_raise
|
15
|
+
rescue ::Avmtrf1::Tools::Msgraph::Error => e
|
16
|
+
raise e unless e.invalid_token?
|
17
|
+
|
18
|
+
api.clear_token_info
|
19
|
+
req.response.body_data_or_raise
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
# @return [EacRest::Request]
|
25
|
+
def request_data_request(url_suffix, &block)
|
26
|
+
req = api.request(url_suffix)
|
27
|
+
req = block.call(req) if block
|
28
|
+
req.singleton_class.prepend(::Avmtrf1::Tools::Msgraph::RequestMixin)
|
29
|
+
req
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
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 Member < ::
|
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 < ::
|
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
|
@@ -0,0 +1,36 @@
|
|
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 Team < ::Avmtrf1::Tools::Msgraph::Api::Entity
|
11
|
+
class MemberAdd
|
12
|
+
acts_as_instance_method
|
13
|
+
|
14
|
+
common_constructor :team, :user_id
|
15
|
+
|
16
|
+
# @return [Hash]
|
17
|
+
def result
|
18
|
+
team.members_request do |req|
|
19
|
+
req.verb(:post).header('Content-type', 'application/json')
|
20
|
+
.body_data(body_hash.to_json)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Hash]
|
25
|
+
def body_hash
|
26
|
+
{
|
27
|
+
'@odata.type' => '#microsoft.graph.aadUserConversationMember',
|
28
|
+
'user@odata.bind' => "https://graph.microsoft.com/v1.0/users('#{user_id}')"
|
29
|
+
}
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
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|
|
@@ -21,11 +21,17 @@ module Avmtrf1
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def members
|
24
|
-
|
25
|
-
.map do |member_data|
|
24
|
+
members_request.map do |member_data|
|
26
25
|
child_entity(::Avmtrf1::Tools::Msgraph::Api::Member, member_data)
|
27
26
|
end
|
28
27
|
end
|
28
|
+
|
29
|
+
# @return [EacRest::Request]
|
30
|
+
def members_request(&block)
|
31
|
+
request_data("/teams/#{id}/members", &block)
|
32
|
+
end
|
33
|
+
|
34
|
+
require_sub __FILE__, require_mode: :kernel
|
29
35
|
end
|
30
36
|
end
|
31
37
|
end
|
@@ -17,6 +17,12 @@ module Avmtrf1
|
|
17
17
|
token_info.fetch(:token).fetch(:accessToken)
|
18
18
|
end
|
19
19
|
|
20
|
+
# @return [void]
|
21
|
+
def clear_token_info
|
22
|
+
token_info_cache.clear
|
23
|
+
reset_cache(:token_info)
|
24
|
+
end
|
25
|
+
|
20
26
|
# @return [EacRest::Request]
|
21
27
|
def request(service_url_suffix, headers = {}, &body_data_proc)
|
22
28
|
super(service_url_suffix, headers, &body_data_proc)
|
@@ -0,0 +1,31 @@
|
|
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 Error < ::EacRest::Error
|
10
|
+
INVALID_TOKEN_CODE = 'InvalidAuthenticationToken'
|
11
|
+
|
12
|
+
attr_reader :data
|
13
|
+
|
14
|
+
def initialize(data)
|
15
|
+
@data = data
|
16
|
+
super(data.pretty_inspect)
|
17
|
+
end
|
18
|
+
|
19
|
+
# @return [String]
|
20
|
+
def code
|
21
|
+
data.fetch('code')
|
22
|
+
end
|
23
|
+
|
24
|
+
# @return [Boolean]
|
25
|
+
def invalid_token?
|
26
|
+
code == INVALID_TOKEN_CODE
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
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,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_rest/response'
|
4
|
+
require 'avmtrf1/tools/msgraph/error'
|
5
|
+
require 'eac_ruby_utils/core_ext'
|
6
|
+
|
7
|
+
module Avmtrf1
|
8
|
+
module Tools
|
9
|
+
module Msgraph
|
10
|
+
module ResponseMixin
|
11
|
+
ERROR_KEY = 'error'
|
12
|
+
VALUE_KEY = 'value'
|
13
|
+
|
14
|
+
def body_data_or_raise
|
15
|
+
r = super
|
16
|
+
r.is_a?(::Hash) && r.key?(VALUE_KEY) ? r.fetch(VALUE_KEY) : r
|
17
|
+
rescue ::EacRest::Response => e
|
18
|
+
raise ::Avmtrf1::Tools::Msgraph::Error, e.body_data.fetch(ERROR_KEY)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -8,7 +8,9 @@ module Avmtrf1
|
|
8
8
|
class Runner
|
9
9
|
class Msgraph
|
10
10
|
class JoinedTeams
|
11
|
-
|
11
|
+
LIST_COLUMNS = %w[id display_name].freeze
|
12
|
+
|
13
|
+
runner_with :help, :output_list do
|
12
14
|
desc 'Lista as próprias equipes no MS Teams.'
|
13
15
|
end
|
14
16
|
|
@@ -17,12 +19,16 @@ module Avmtrf1
|
|
17
19
|
run_output
|
18
20
|
end
|
19
21
|
|
20
|
-
|
22
|
+
def list_columns
|
23
|
+
LIST_COLUMNS
|
24
|
+
end
|
21
25
|
|
22
|
-
def
|
23
|
-
teams
|
26
|
+
def list_rows
|
27
|
+
teams
|
24
28
|
end
|
25
29
|
|
30
|
+
private
|
31
|
+
|
26
32
|
def teams_uncached
|
27
33
|
api.root_entity.joined_teams.sort_by { |t| [t.display_name, t.id] }
|
28
34
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
4
|
+
require 'avmtrf1/tools/msgraph/error'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
module Tools
|
8
|
+
class Runner
|
9
|
+
class Msgraph
|
10
|
+
class Team
|
11
|
+
class Member
|
12
|
+
class Add
|
13
|
+
runner_with :help, :output_item
|
14
|
+
|
15
|
+
def run
|
16
|
+
start_banner
|
17
|
+
add_member
|
18
|
+
run_output
|
19
|
+
fatal_error error.code if error.present?
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
attr_accessor :error, :result_data
|
25
|
+
|
26
|
+
def add_member
|
27
|
+
self.error = nil
|
28
|
+
self.result_data = team.member_add(member_id)
|
29
|
+
rescue ::Avmtrf1::Tools::Msgraph::Error => e
|
30
|
+
self.error = e
|
31
|
+
self.result_data = error.data
|
32
|
+
end
|
33
|
+
|
34
|
+
def start_banner
|
35
|
+
infov 'Team', team.id
|
36
|
+
infov 'Member ID', member_id
|
37
|
+
end
|
38
|
+
|
39
|
+
def item_hash
|
40
|
+
result_data
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,25 @@
|
|
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 Member
|
11
|
+
runner_with :help, :subcommands do
|
12
|
+
pos_arg :member_id
|
13
|
+
subcommands
|
14
|
+
end
|
15
|
+
for_context :member_id
|
16
|
+
|
17
|
+
delegate :member_id, to: :parsed
|
18
|
+
|
19
|
+
require_sub __FILE__
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -8,25 +8,27 @@ module Avmtrf1
|
|
8
8
|
class Msgraph
|
9
9
|
class Team
|
10
10
|
class Members
|
11
|
-
|
11
|
+
LIST_COLUMNS = %w[id email display_name].freeze
|
12
|
+
|
13
|
+
runner_with :help, :output_list
|
12
14
|
|
13
15
|
def run
|
14
16
|
infov 'Found', members.count
|
15
17
|
run_output
|
16
18
|
end
|
17
19
|
|
18
|
-
|
19
|
-
|
20
|
-
def members_uncached
|
21
|
-
team.members.sort_by { |m| [m.email, m.id] }
|
20
|
+
def list_columns
|
21
|
+
LIST_COLUMNS
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
25
|
-
|
24
|
+
def list_rows
|
25
|
+
members
|
26
26
|
end
|
27
27
|
|
28
|
-
|
29
|
-
|
28
|
+
private
|
29
|
+
|
30
|
+
def members_uncached
|
31
|
+
team.members.sort_by { |m| [m.email || '_BLANK_', m.id] }
|
30
32
|
end
|
31
33
|
end
|
32
34
|
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.
|
4
|
+
version: 0.42.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-
|
11
|
+
date: 2023-10-05 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,7 +43,7 @@ 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
|
@@ -64,20 +64,14 @@ dependencies:
|
|
64
64
|
requirements:
|
65
65
|
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '0.
|
68
|
-
- - ">="
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
version: 0.9.1
|
67
|
+
version: '0.10'
|
71
68
|
type: :runtime
|
72
69
|
prerelease: false
|
73
70
|
version_requirements: !ruby/object:Gem::Requirement
|
74
71
|
requirements:
|
75
72
|
- - "~>"
|
76
73
|
- !ruby/object:Gem::Version
|
77
|
-
version: '0.
|
78
|
-
- - ">="
|
79
|
-
- !ruby/object:Gem::Version
|
80
|
-
version: 0.9.1
|
74
|
+
version: '0.10'
|
81
75
|
- !ruby/object:Gem::Dependency
|
82
76
|
name: inifile
|
83
77
|
requirement: !ruby/object:Gem::Requirement
|
@@ -101,7 +95,7 @@ dependencies:
|
|
101
95
|
version: '1.15'
|
102
96
|
- - ">="
|
103
97
|
- !ruby/object:Gem::Version
|
104
|
-
version: 1.15.
|
98
|
+
version: 1.15.4
|
105
99
|
type: :runtime
|
106
100
|
prerelease: false
|
107
101
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -111,7 +105,7 @@ dependencies:
|
|
111
105
|
version: '1.15'
|
112
106
|
- - ">="
|
113
107
|
- !ruby/object:Gem::Version
|
114
|
-
version: 1.15.
|
108
|
+
version: 1.15.4
|
115
109
|
- !ruby/object:Gem::Dependency
|
116
110
|
name: recursive-open-struct
|
117
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -318,9 +312,14 @@ files:
|
|
318
312
|
- lib/avmtrf1/tools/core_ext.rb
|
319
313
|
- lib/avmtrf1/tools/msgraph.rb
|
320
314
|
- lib/avmtrf1/tools/msgraph/api.rb
|
315
|
+
- lib/avmtrf1/tools/msgraph/api/entity.rb
|
321
316
|
- lib/avmtrf1/tools/msgraph/api/member.rb
|
322
317
|
- lib/avmtrf1/tools/msgraph/api/root.rb
|
323
318
|
- lib/avmtrf1/tools/msgraph/api/team.rb
|
319
|
+
- lib/avmtrf1/tools/msgraph/api/team/member_add.rb
|
320
|
+
- lib/avmtrf1/tools/msgraph/error.rb
|
321
|
+
- lib/avmtrf1/tools/msgraph/request_mixin.rb
|
322
|
+
- lib/avmtrf1/tools/msgraph/response_mixin.rb
|
324
323
|
- lib/avmtrf1/tools/msgraph/token_retrieve.rb
|
325
324
|
- lib/avmtrf1/tools/runner.rb
|
326
325
|
- lib/avmtrf1/tools/runner/check_point.rb
|
@@ -344,6 +343,8 @@ files:
|
|
344
343
|
- lib/avmtrf1/tools/runner/msgraph/joined_teams.rb
|
345
344
|
- lib/avmtrf1/tools/runner/msgraph/request.rb
|
346
345
|
- lib/avmtrf1/tools/runner/msgraph/team.rb
|
346
|
+
- lib/avmtrf1/tools/runner/msgraph/team/member.rb
|
347
|
+
- lib/avmtrf1/tools/runner/msgraph/team/member/add.rb
|
347
348
|
- lib/avmtrf1/tools/runner/msgraph/team/members.rb
|
348
349
|
- lib/avmtrf1/tools/runner/msgraph/token.rb
|
349
350
|
- lib/avmtrf1/tools/runner/node_js.rb
|