avmtrf1-tools 0.28.0 → 0.29.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|