avmtrf1-tools 0.41.1 → 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 +16 -3
- data/lib/avmtrf1/tools/msgraph/api/team/member_add.rb +36 -0
- data/lib/avmtrf1/tools/msgraph/api/team.rb +8 -1
- data/lib/avmtrf1/tools/msgraph/api.rb +2 -5
- data/lib/avmtrf1/tools/msgraph/error.rb +31 -0
- data/lib/avmtrf1/tools/msgraph/response_mixin.rb +5 -33
- 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 +10 -13
- data/lib/avmtrf1/tools/msgraph/invalid_token_error.rb +0 -13
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
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'avmtrf1/tools/msgraph/request_mixin'
|
3
4
|
require 'eac_rest/entity'
|
4
5
|
require 'eac_ruby_utils/core_ext'
|
5
6
|
|
@@ -8,13 +9,25 @@ module Avmtrf1
|
|
8
9
|
module Msgraph
|
9
10
|
class Api < ::EacRest::Api
|
10
11
|
class Entity < ::EacRest::Entity
|
11
|
-
def request_data(url_suffix)
|
12
|
-
req =
|
12
|
+
def request_data(url_suffix, &block)
|
13
|
+
req = request_data_request(url_suffix, &block)
|
13
14
|
req.response.body_data_or_raise
|
14
|
-
rescue ::Avmtrf1::Tools::Msgraph::
|
15
|
+
rescue ::Avmtrf1::Tools::Msgraph::Error => e
|
16
|
+
raise e unless e.invalid_token?
|
17
|
+
|
15
18
|
api.clear_token_info
|
16
19
|
req.response.body_data_or_raise
|
17
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
|
18
31
|
end
|
19
32
|
end
|
20
33
|
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
|
@@ -21,10 +21,17 @@ module Avmtrf1
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def members
|
24
|
-
|
24
|
+
members_request.map do |member_data|
|
25
25
|
child_entity(::Avmtrf1::Tools::Msgraph::Api::Member, member_data)
|
26
26
|
end
|
27
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
|
28
35
|
end
|
29
36
|
end
|
30
37
|
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avmtrf1/tools/msgraph/request_mixin'
|
4
3
|
require 'eac_rest/api'
|
5
4
|
require 'eac_ruby_utils/core_ext'
|
6
5
|
|
@@ -26,10 +25,8 @@ module Avmtrf1
|
|
26
25
|
|
27
26
|
# @return [EacRest::Request]
|
28
27
|
def request(service_url_suffix, headers = {}, &body_data_proc)
|
29
|
-
|
30
|
-
|
31
|
-
r.singleton_class.prepend(::Avmtrf1::Tools::Msgraph::RequestMixin)
|
32
|
-
r
|
28
|
+
super(service_url_suffix, headers, &body_data_proc)
|
29
|
+
.header('Authorization', "Bearer #{access_token}")
|
33
30
|
end
|
34
31
|
|
35
32
|
def fs_object_id
|
@@ -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
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'eac_rest/response'
|
4
|
+
require 'avmtrf1/tools/msgraph/error'
|
4
5
|
require 'eac_ruby_utils/core_ext'
|
5
6
|
|
6
7
|
module Avmtrf1
|
@@ -8,42 +9,13 @@ module Avmtrf1
|
|
8
9
|
module Msgraph
|
9
10
|
module ResponseMixin
|
10
11
|
ERROR_KEY = 'error'
|
11
|
-
INVALID_TOKEN_CODE = 'InvalidAuthenticationToken'
|
12
12
|
VALUE_KEY = 'value'
|
13
13
|
|
14
14
|
def body_data_or_raise
|
15
|
-
check_invalid_token
|
16
15
|
r = super
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
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)
|
47
19
|
end
|
48
20
|
end
|
49
21
|
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
|
@@ -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
|
@@ -322,7 +316,8 @@ files:
|
|
322
316
|
- lib/avmtrf1/tools/msgraph/api/member.rb
|
323
317
|
- lib/avmtrf1/tools/msgraph/api/root.rb
|
324
318
|
- lib/avmtrf1/tools/msgraph/api/team.rb
|
325
|
-
- lib/avmtrf1/tools/msgraph/
|
319
|
+
- lib/avmtrf1/tools/msgraph/api/team/member_add.rb
|
320
|
+
- lib/avmtrf1/tools/msgraph/error.rb
|
326
321
|
- lib/avmtrf1/tools/msgraph/request_mixin.rb
|
327
322
|
- lib/avmtrf1/tools/msgraph/response_mixin.rb
|
328
323
|
- lib/avmtrf1/tools/msgraph/token_retrieve.rb
|
@@ -348,6 +343,8 @@ files:
|
|
348
343
|
- lib/avmtrf1/tools/runner/msgraph/joined_teams.rb
|
349
344
|
- lib/avmtrf1/tools/runner/msgraph/request.rb
|
350
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
|
351
348
|
- lib/avmtrf1/tools/runner/msgraph/team/members.rb
|
352
349
|
- lib/avmtrf1/tools/runner/msgraph/token.rb
|
353
350
|
- lib/avmtrf1/tools/runner/node_js.rb
|