avmtrf1-tools 0.28.0 → 0.29.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/esosti/entities/issue.rb +2 -29
- data/lib/avmtrf1/esosti/instance.rb +4 -0
- data/lib/avmtrf1/esosti/instance/changed.rb +30 -0
- data/lib/avmtrf1/esosti/raw_data_sanitizer.rb +47 -0
- data/lib/avmtrf1/tools/runner/esosti.rb +2 -21
- data/lib/avmtrf1/tools/runner/esosti/changed.rb +47 -0
- data/lib/avmtrf1/tools/runner/esosti/fetch.rb +47 -0
- data/lib/avmtrf1/tools/version.rb +1 -1
- metadata +31 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: deffef9fed701fdd895529665042b9e0d4ff93932eef2f51e66d5bcf82ede6b2
|
4
|
+
data.tar.gz: 882cd5b9a5a0397bfde0c6e0bece1120e260374cf45205cb649257145201814f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3e724ff217082ef2242ab23d1ea6246e3a72f67248ea53418c9eb6b293ce3d11f8a1eebaa5bda4b3bac4e0bd5ea99afc96c33d77e2d7e25e080c8f7fbbd590a2
|
7
|
+
data.tar.gz: '09c35fc0433617d22eb1efce1d9ff57ba7b100002b0b1d9f49a7875ae24ea3a5a927b59f6cdd2ac01ccd1b2fb331602d20113f3b7094d35e76e7242ef68e34a4'
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'avmtrf1/esosti/raw_data_sanitizer'
|
3
4
|
require 'avmtrf1/rest_provider/entity'
|
4
5
|
|
5
6
|
module Avmtrf1
|
@@ -9,37 +10,9 @@ module Avmtrf1
|
|
9
10
|
class << self
|
10
11
|
def parse_data(data)
|
11
12
|
data.fetch('QueryMS_RMTICKETResponse')['MS_RMTICKETSet'].if_present(nil) do |v|
|
12
|
-
|
13
|
+
::Avmtrf1::Esosti::RawDataSanitizer.sanitize(v.fetch('TICKET'))
|
13
14
|
end
|
14
15
|
end
|
15
|
-
|
16
|
-
def sanitize_data(data)
|
17
|
-
if data.is_a?(Array)
|
18
|
-
sanitize_array_data(data)
|
19
|
-
elsif data.is_a?(Hash)
|
20
|
-
sanitize_hash_data(data)
|
21
|
-
else
|
22
|
-
data
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
private
|
27
|
-
|
28
|
-
def sanitize_array_data(data)
|
29
|
-
data.map { |v| sanitize_data(v) }
|
30
|
-
end
|
31
|
-
|
32
|
-
def sanitize_hash_data(data)
|
33
|
-
if content_hash?(data)
|
34
|
-
sanitize_data(data.fetch('content'))
|
35
|
-
else
|
36
|
-
data.transform_values { |v| sanitize_data(v) }
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def content_hash?(data)
|
41
|
-
data.is_a?(Hash) && data.count == 1 && data.key?('content')
|
42
|
-
end
|
43
16
|
end
|
44
17
|
|
45
18
|
def initialize(instance, data)
|
@@ -1,11 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
3
4
|
require 'avmtrf1/esosti/entities/issue'
|
4
5
|
require 'avmtrf1/rest_provider/instance'
|
5
6
|
|
6
7
|
module Avmtrf1
|
7
8
|
module Esosti
|
8
9
|
class Instance < ::Avmtrf1::RestProvider::Instance
|
10
|
+
require_sub __FILE__
|
11
|
+
include ::Avmtrf1::Esosti::Instance::Changed
|
12
|
+
|
9
13
|
def build_service_url(service_url_suffix)
|
10
14
|
"#{root_url}/maxrest/rest#{service_url_suffix}"
|
11
15
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/esosti/raw_data_sanitizer'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Esosti
|
7
|
+
class Instance < ::Avmtrf1::RestProvider::Instance
|
8
|
+
module Changed
|
9
|
+
def changed(since)
|
10
|
+
changed_parse_result(request(changed_url_suffix(since)))
|
11
|
+
end
|
12
|
+
|
13
|
+
def changed_parse_result(raw_data)
|
14
|
+
::Avmtrf1::Esosti::RawDataSanitizer.sanitize(
|
15
|
+
raw_data.fetch('TICKETMboSet').fetch('TICKET')
|
16
|
+
).map { |ticket| ticket.fetch('Attributes').fetch('TICKETID').downcase }
|
17
|
+
end
|
18
|
+
|
19
|
+
def changed_url_suffix(since)
|
20
|
+
'/mbo/ticket?_includecols=ticketid&changedate=~gt~' +
|
21
|
+
::CGI.escape(formatted_time(since))
|
22
|
+
end
|
23
|
+
|
24
|
+
def formatted_time(time)
|
25
|
+
time.strftime('%FT%T%:z')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Esosti
|
7
|
+
class RawDataSanitizer
|
8
|
+
class << self
|
9
|
+
def sanitize(raw_data)
|
10
|
+
new(raw_data).sanitized
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
CONTENT_KEY = 'content'
|
15
|
+
|
16
|
+
common_constructor :raw_data
|
17
|
+
|
18
|
+
def sanitized
|
19
|
+
if raw_data.is_a?(Array)
|
20
|
+
array_sanitized
|
21
|
+
elsif raw_data.is_a?(Hash)
|
22
|
+
hash_sanitized
|
23
|
+
else
|
24
|
+
raw_data
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def array_sanitized
|
31
|
+
raw_data.map { |v| self.class.sanitize(v) }
|
32
|
+
end
|
33
|
+
|
34
|
+
def hash_sanitized
|
35
|
+
if content_hash?
|
36
|
+
self.class.sanitize(raw_data.fetch(CONTENT_KEY))
|
37
|
+
else
|
38
|
+
raw_data.transform_values { |v| self.class.sanitize(v) }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def content_hash?
|
43
|
+
raw_data.is_a?(Hash) && raw_data.count == 1 && raw_data.key?(CONTENT_KEY)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -10,6 +10,7 @@ module Avmtrf1
|
|
10
10
|
module Tools
|
11
11
|
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
12
12
|
class Esosti < ::EacRubyUtils::Console::DocoptRunner
|
13
|
+
require_sub __FILE__
|
13
14
|
enable_console_speaker
|
14
15
|
enable_simple_cache
|
15
16
|
|
@@ -17,23 +18,14 @@ module Avmtrf1
|
|
17
18
|
Utilidades para e-Sosti (Control Desk).
|
18
19
|
|
19
20
|
Usage:
|
20
|
-
__PROGRAM__ [options]
|
21
|
+
__PROGRAM__ [options] __SUBCOMMANDS__
|
21
22
|
__PROGRAM__ -h | --help
|
22
23
|
|
23
24
|
Options:
|
24
25
|
-h --help Mostra esta ajuda.
|
25
|
-
-u --user Usuário no e-Sosti.
|
26
26
|
-U --url=<url> Utiliza o Control Desk em <url>.
|
27
27
|
DOCOPT
|
28
28
|
|
29
|
-
def run
|
30
|
-
if options.fetch('fetch')
|
31
|
-
fetch
|
32
|
-
else
|
33
|
-
fatal_error('Subcomando não mapeado (Isto é um defeito do software)')
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
29
|
private
|
38
30
|
|
39
31
|
def esosti_instance_uncached
|
@@ -41,17 +33,6 @@ module Avmtrf1
|
|
41
33
|
::Avmtrf1.trf1_esosti(url)
|
42
34
|
end
|
43
35
|
end
|
44
|
-
|
45
|
-
def fetch
|
46
|
-
infom "Recuperando informações de #{solicitacao_id}..."
|
47
|
-
issue = esosti_instance.issue(solicitacao_id)
|
48
|
-
fatal_error("Issue não encontrado: #{solicitacao_id}") unless issue
|
49
|
-
out issue.data.to_yaml
|
50
|
-
end
|
51
|
-
|
52
|
-
def solicitacao_id
|
53
|
-
options.fetch('<solicitacao_id>')
|
54
|
-
end
|
55
36
|
end
|
56
37
|
end
|
57
38
|
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/console/docopt_runner'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'avmtrf1/default_esosti'
|
6
|
+
require 'avmtrf1/ini'
|
7
|
+
require 'avmtrf1/red/profile'
|
8
|
+
|
9
|
+
module Avmtrf1
|
10
|
+
module Tools
|
11
|
+
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
12
|
+
class Esosti < ::EacRubyUtils::Console::DocoptRunner
|
13
|
+
class Changed < ::EacRubyUtils::Console::DocoptRunner
|
14
|
+
enable_console_speaker
|
15
|
+
enable_simple_cache
|
16
|
+
|
17
|
+
DOC = <<~DOCOPT
|
18
|
+
Recupera o conteúdo de uma solicitação e-Sosti (Control Desk).
|
19
|
+
|
20
|
+
Usage:
|
21
|
+
__PROGRAM__ [options] <time>
|
22
|
+
__PROGRAM__ -h | --help
|
23
|
+
|
24
|
+
Options:
|
25
|
+
-h --help Mostra esta ajuda.
|
26
|
+
DOCOPT
|
27
|
+
|
28
|
+
def run
|
29
|
+
infov 'Time', time
|
30
|
+
out data.to_yaml
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def data_uncached
|
36
|
+
infom 'Recuperando informações...'
|
37
|
+
context(:esosti_instance).changed(time)
|
38
|
+
end
|
39
|
+
|
40
|
+
def time
|
41
|
+
::Time.parse(options.fetch('<time>'))
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/console/docopt_runner'
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'avmtrf1/default_esosti'
|
6
|
+
require 'avmtrf1/ini'
|
7
|
+
require 'avmtrf1/red/profile'
|
8
|
+
|
9
|
+
module Avmtrf1
|
10
|
+
module Tools
|
11
|
+
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
12
|
+
class Esosti < ::EacRubyUtils::Console::DocoptRunner
|
13
|
+
class Fetch < ::EacRubyUtils::Console::DocoptRunner
|
14
|
+
enable_console_speaker
|
15
|
+
enable_simple_cache
|
16
|
+
|
17
|
+
DOC = <<~DOCOPT
|
18
|
+
Recupera o conteúdo de uma solicitação e-Sosti (Control Desk).
|
19
|
+
|
20
|
+
Usage:
|
21
|
+
__PROGRAM__ [options] <solicitacao_id>
|
22
|
+
__PROGRAM__ -h | --help
|
23
|
+
|
24
|
+
Options:
|
25
|
+
-h --help Mostra esta ajuda.
|
26
|
+
DOCOPT
|
27
|
+
|
28
|
+
def run
|
29
|
+
fatal_error("Issue não encontrado: #{solicitacao_id}") unless issue
|
30
|
+
out issue.data.to_yaml
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def issue_uncached
|
36
|
+
infom "Recuperando informações de #{solicitacao_id}..."
|
37
|
+
context(:esosti_instance).issue(solicitacao_id)
|
38
|
+
end
|
39
|
+
|
40
|
+
def solicitacao_id
|
41
|
+
options.fetch('<solicitacao_id>')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
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.29.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: 2020-05-
|
11
|
+
date: 2020-05-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-parsers
|
@@ -16,20 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0.
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 0.2.1
|
19
|
+
version: '0.4'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
24
|
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: '0.
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 0.2.1
|
26
|
+
version: '0.4'
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: aranha-selenium
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,7 +33,7 @@ dependencies:
|
|
39
33
|
version: '0.1'
|
40
34
|
- - ">="
|
41
35
|
- !ruby/object:Gem::Version
|
42
|
-
version: 0.1.
|
36
|
+
version: 0.1.2
|
43
37
|
type: :runtime
|
44
38
|
prerelease: false
|
45
39
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,21 +43,21 @@ dependencies:
|
|
49
43
|
version: '0.1'
|
50
44
|
- - ">="
|
51
45
|
- !ruby/object:Gem::Version
|
52
|
-
version: 0.1.
|
46
|
+
version: 0.1.2
|
53
47
|
- !ruby/object:Gem::Dependency
|
54
48
|
name: avm-tools
|
55
49
|
requirement: !ruby/object:Gem::Requirement
|
56
50
|
requirements:
|
57
51
|
- - "~>"
|
58
52
|
- !ruby/object:Gem::Version
|
59
|
-
version: '0.
|
53
|
+
version: '0.46'
|
60
54
|
type: :runtime
|
61
55
|
prerelease: false
|
62
56
|
version_requirements: !ruby/object:Gem::Requirement
|
63
57
|
requirements:
|
64
58
|
- - "~>"
|
65
59
|
- !ruby/object:Gem::Version
|
66
|
-
version: '0.
|
60
|
+
version: '0.46'
|
67
61
|
- !ruby/object:Gem::Dependency
|
68
62
|
name: curb
|
69
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,48 +78,34 @@ dependencies:
|
|
84
78
|
requirements:
|
85
79
|
- - "~>"
|
86
80
|
- !ruby/object:Gem::Version
|
87
|
-
version: '0.
|
81
|
+
version: '0.3'
|
88
82
|
type: :runtime
|
89
83
|
prerelease: false
|
90
84
|
version_requirements: !ruby/object:Gem::Requirement
|
91
85
|
requirements:
|
92
86
|
- - "~>"
|
93
87
|
- !ruby/object:Gem::Version
|
94
|
-
version: '0.
|
88
|
+
version: '0.3'
|
95
89
|
- !ruby/object:Gem::Dependency
|
96
|
-
name:
|
90
|
+
name: eac_ruby_utils
|
97
91
|
requirement: !ruby/object:Gem::Requirement
|
98
92
|
requirements:
|
99
93
|
- - "~>"
|
100
94
|
- !ruby/object:Gem::Version
|
101
|
-
version: '0.
|
95
|
+
version: '0.32'
|
102
96
|
- - ">="
|
103
97
|
- !ruby/object:Gem::Version
|
104
|
-
version: 0.
|
98
|
+
version: 0.32.1
|
105
99
|
type: :runtime
|
106
100
|
prerelease: false
|
107
101
|
version_requirements: !ruby/object:Gem::Requirement
|
108
102
|
requirements:
|
109
103
|
- - "~>"
|
110
104
|
- !ruby/object:Gem::Version
|
111
|
-
version: '0.
|
105
|
+
version: '0.32'
|
112
106
|
- - ">="
|
113
107
|
- !ruby/object:Gem::Version
|
114
|
-
version: 0.
|
115
|
-
- !ruby/object:Gem::Dependency
|
116
|
-
name: eac_ruby_utils
|
117
|
-
requirement: !ruby/object:Gem::Requirement
|
118
|
-
requirements:
|
119
|
-
- - "~>"
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: '0.26'
|
122
|
-
type: :runtime
|
123
|
-
prerelease: false
|
124
|
-
version_requirements: !ruby/object:Gem::Requirement
|
125
|
-
requirements:
|
126
|
-
- - "~>"
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
version: '0.26'
|
108
|
+
version: 0.32.1
|
129
109
|
- !ruby/object:Gem::Dependency
|
130
110
|
name: filesize
|
131
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -175,6 +155,9 @@ dependencies:
|
|
175
155
|
- - "~>"
|
176
156
|
- !ruby/object:Gem::Version
|
177
157
|
version: '1.1'
|
158
|
+
- - ">="
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: 1.1.1
|
178
161
|
type: :runtime
|
179
162
|
prerelease: false
|
180
163
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -182,6 +165,9 @@ dependencies:
|
|
182
165
|
- - "~>"
|
183
166
|
- !ruby/object:Gem::Version
|
184
167
|
version: '1.1'
|
168
|
+
- - ">="
|
169
|
+
- !ruby/object:Gem::Version
|
170
|
+
version: 1.1.1
|
185
171
|
- !ruby/object:Gem::Dependency
|
186
172
|
name: eac_ruby_gem_support
|
187
173
|
requirement: !ruby/object:Gem::Requirement
|
@@ -189,6 +175,9 @@ dependencies:
|
|
189
175
|
- - "~>"
|
190
176
|
- !ruby/object:Gem::Version
|
191
177
|
version: '0.1'
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 0.1.1
|
192
181
|
type: :development
|
193
182
|
prerelease: false
|
194
183
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -196,6 +185,9 @@ dependencies:
|
|
196
185
|
- - "~>"
|
197
186
|
- !ruby/object:Gem::Version
|
198
187
|
version: '0.1'
|
188
|
+
- - ">="
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: 0.1.1
|
199
191
|
description:
|
200
192
|
email:
|
201
193
|
executables:
|
@@ -222,6 +214,8 @@ files:
|
|
222
214
|
- lib/avmtrf1/esosti/entities.rb
|
223
215
|
- lib/avmtrf1/esosti/entities/issue.rb
|
224
216
|
- lib/avmtrf1/esosti/instance.rb
|
217
|
+
- lib/avmtrf1/esosti/instance/changed.rb
|
218
|
+
- lib/avmtrf1/esosti/raw_data_sanitizer.rb
|
225
219
|
- lib/avmtrf1/esosti/session.rb
|
226
220
|
- lib/avmtrf1/esosti/session/action_base.rb
|
227
221
|
- lib/avmtrf1/esosti/session/atividades.rb
|
@@ -316,6 +310,8 @@ files:
|
|
316
310
|
- lib/avmtrf1/tools/runner/check_point.rb
|
317
311
|
- lib/avmtrf1/tools/runner/check_point/login.rb
|
318
312
|
- lib/avmtrf1/tools/runner/esosti.rb
|
313
|
+
- lib/avmtrf1/tools/runner/esosti/changed.rb
|
314
|
+
- lib/avmtrf1/tools/runner/esosti/fetch.rb
|
319
315
|
- lib/avmtrf1/tools/runner/forponto.rb
|
320
316
|
- lib/avmtrf1/tools/runner/forponto/espelho.rb
|
321
317
|
- lib/avmtrf1/tools/runner/forponto/marcacoes.rb
|