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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74d89accf83c82b82c4cabc7ae771fd0cf7977e6b3a18c1c94e5a7b6d035a7e8
4
- data.tar.gz: 729168d22da5b1f2418712687afd767cdc1365b70f2ae2cc7bcd138a592c3803
3
+ metadata.gz: deffef9fed701fdd895529665042b9e0d4ff93932eef2f51e66d5bcf82ede6b2
4
+ data.tar.gz: 882cd5b9a5a0397bfde0c6e0bece1120e260374cf45205cb649257145201814f
5
5
  SHA512:
6
- metadata.gz: 16ac680b2e78a38f944afb194892e8655dfbcbc377107a37edfb760b2a17704746972a0f2344c88ee20e3088ed505913b51f07743086e692817ce194d82632b5
7
- data.tar.gz: 7df63a50a530c9f466f9be161d1e5699abe48e0d29c39d1710e6dc693d165bb9171f18a1c530df3405536ff93202ca3790f1a9190c7f14ef1bae0eac92bc71d6
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
- sanitize_data(v.fetch('TICKET'))
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] fetch <solicitacao_id>
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
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avmtrf1
4
4
  module Tools
5
- VERSION = '0.28.0'
5
+ VERSION = '0.29.0'
6
6
  end
7
7
  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.28.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-12 00:00:00.000000000 Z
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.2'
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.2'
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.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.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.34'
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.34'
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.2'
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.2'
88
+ version: '0.3'
95
89
  - !ruby/object:Gem::Dependency
96
- name: eac_launcher
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.6'
95
+ version: '0.32'
102
96
  - - ">="
103
97
  - !ruby/object:Gem::Version
104
- version: 0.6.4
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.6'
105
+ version: '0.32'
112
106
  - - ">="
113
107
  - !ruby/object:Gem::Version
114
- version: 0.6.4
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