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 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