avmtrf1-tools 0.7.0 → 0.8.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/default_esosti.rb +4 -5
- data/lib/avmtrf1/esosti/entities/issue.rb +50 -0
- data/lib/avmtrf1/esosti/entities.rb +9 -0
- data/lib/avmtrf1/esosti/instance.rb +18 -0
- data/lib/avmtrf1/esosti.rb +8 -0
- data/lib/avmtrf1/rest_provider/instance.rb +28 -4
- data/lib/avmtrf1/tools/runner/esosti.rb +4 -14
- data/lib/avmtrf1/tools/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 488a4826095240654ea0d4de46002cbf385a7c064ed2c860c4f2f13d9befcdd3
|
4
|
+
data.tar.gz: 68a6d46f0388d806bd6248aca8b89161726b7a3c32d964e5bf361392f3bb37a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a411e8c9120b8b4d88963184a6a4d05343d3905b7807ea41707c423a443bb38e06af62ffc53141cf29e310f0c49c416f28ae884b88ebffc598efb7db4bd2c85
|
7
|
+
data.tar.gz: 58b316650009ad2e76fd7d0890eb191da17bc53492222155a4a807e5906e0e06d9b838d0fb2b01633111c9521a6f1455d0ae30959b7557bb038c3e6a9300d779
|
@@ -1,16 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avmtrf1/esosti/
|
3
|
+
require 'avmtrf1/esosti/instance'
|
4
4
|
require 'avmtrf1/ad_user'
|
5
5
|
|
6
6
|
module Avmtrf1
|
7
7
|
class << self
|
8
8
|
def default_esosti
|
9
|
-
@default_esosti ||= ::Avmtrf1::Esosti::
|
9
|
+
@default_esosti ||= ::Avmtrf1::Esosti::Instance.new(
|
10
10
|
'https://esosti.trf1.jus.br',
|
11
|
-
::Avmtrf1.ad_user.username,
|
12
|
-
::Avmtrf1.ad_user.password
|
13
|
-
::Avmtrf1.ad_user.domain.upcase
|
11
|
+
"#{::Avmtrf1.ad_user.username}@#{::Avmtrf1.ad_user.domain.downcase}.gov.br",
|
12
|
+
::Avmtrf1.ad_user.password
|
14
13
|
)
|
15
14
|
end
|
16
15
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/rest_provider/entity'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Esosti
|
7
|
+
module Entities
|
8
|
+
class Issue < ::Avmtrf1::RestProvider::Entity
|
9
|
+
class << self
|
10
|
+
def raw_data_to_data(raw_data)
|
11
|
+
sanitize_data(raw_data.fetch('QueryMS_RMTICKETResponse').fetch('MS_RMTICKETSet')
|
12
|
+
.fetch('TICKET'))
|
13
|
+
end
|
14
|
+
|
15
|
+
def sanitize_data(data)
|
16
|
+
if data.is_a?(Array)
|
17
|
+
sanitize_array_data(data)
|
18
|
+
elsif data.is_a?(Hash)
|
19
|
+
sanitize_hash_data(data)
|
20
|
+
else
|
21
|
+
data
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def sanitize_array_data(data)
|
28
|
+
data.map { |v| sanitize_data(v) }
|
29
|
+
end
|
30
|
+
|
31
|
+
def sanitize_hash_data(data)
|
32
|
+
if content_hash?(data)
|
33
|
+
sanitize_data(data.fetch('content'))
|
34
|
+
else
|
35
|
+
data.map { |k, v| [k, sanitize_data(v)] }.to_h
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def content_hash?(data)
|
40
|
+
data.is_a?(Hash) && data.count == 1 && data.key?('content')
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def initialize(instance, data)
|
45
|
+
super instance, self.class.raw_data_to_data(data)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/esosti/entities/issue'
|
4
|
+
require 'avmtrf1/rest_provider/instance'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
module Esosti
|
8
|
+
class Instance < ::Avmtrf1::RestProvider::Instance
|
9
|
+
def build_service_url(service_url_suffix)
|
10
|
+
"#{root_url}/maxrest/rest#{service_url_suffix}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def issue_get_url_suffix(provider_issue_id)
|
14
|
+
"/os/MS_RMTICKET/?ticketid=#{provider_issue_id}"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'curb'
|
4
4
|
require 'json'
|
5
5
|
require 'avmtrf1/jira/entities/issue'
|
6
|
+
require 'eac_ruby_utils/console/speaker'
|
6
7
|
|
7
8
|
module Avmtrf1
|
8
9
|
module RestProvider
|
@@ -11,6 +12,8 @@ module Avmtrf1
|
|
11
12
|
# * self.build_service_url(service_url_suffix)
|
12
13
|
# * self.issue_get_url_suffix(provider_issue_id)
|
13
14
|
class Instance
|
15
|
+
include ::EacRubyUtils::Console::Speaker
|
16
|
+
|
14
17
|
attr_reader :root_url, :username, :password
|
15
18
|
|
16
19
|
def initialize(root_url, username, password)
|
@@ -29,18 +32,39 @@ module Avmtrf1
|
|
29
32
|
end
|
30
33
|
|
31
34
|
def request(service_url_suffix)
|
32
|
-
|
35
|
+
url = build_service_url(service_url_suffix)
|
36
|
+
infov 'URL', url
|
37
|
+
c = ::Curl::Easy.new(url)
|
33
38
|
c.http_auth_types = :basic
|
34
39
|
c.username = username
|
35
40
|
c.password = password
|
36
|
-
|
37
|
-
|
38
|
-
JSON.parse(c.body_str)
|
41
|
+
c.headers['Accept'] = 'application/json'
|
42
|
+
curl_perform(c)
|
39
43
|
end
|
40
44
|
|
41
45
|
def issue_class
|
42
46
|
"#{self.class.name.deconstantize}::Entities::Issue".constantize
|
43
47
|
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def curl_perform(curl)
|
52
|
+
raise 'Curl failed' unless curl.perform
|
53
|
+
|
54
|
+
infov 'Return status', curl.status
|
55
|
+
return JSON.parse(curl.body_str) if curl.status.to_i == 200
|
56
|
+
|
57
|
+
raise curl_raise_message(curl)
|
58
|
+
end
|
59
|
+
|
60
|
+
def curl_raise_message(curl)
|
61
|
+
raise <<~MESSAGE
|
62
|
+
"#{curl.url} returned #{curl.status.to_i}:
|
63
|
+
#{'=' * 10}
|
64
|
+
#{curl.body_str}
|
65
|
+
#{'=' * 10}"
|
66
|
+
MESSAGE
|
67
|
+
end
|
44
68
|
end
|
45
69
|
end
|
46
70
|
end
|
@@ -3,9 +3,9 @@
|
|
3
3
|
require 'eac_ruby_utils/console/docopt_runner'
|
4
4
|
require 'eac_ruby_utils/console/speaker'
|
5
5
|
require 'eac_ruby_utils/simple_cache'
|
6
|
+
require 'avmtrf1/default_esosti'
|
6
7
|
require 'avmtrf1/ini'
|
7
8
|
require 'avmtrf1/red/profile'
|
8
|
-
require 'avmtrf1/esosti/session'
|
9
9
|
|
10
10
|
module Avmtrf1
|
11
11
|
module Tools
|
@@ -34,21 +34,11 @@ module Avmtrf1
|
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
37
|
-
private
|
38
|
-
|
39
|
-
def login
|
40
|
-
infom "Logando em #{session.url} com #{session.uf}\\#{session.user}..."
|
41
|
-
session.login
|
42
|
-
end
|
43
|
-
|
44
37
|
def fetch
|
45
|
-
login
|
46
38
|
infom "Recuperando informações de #{options.fetch('<solicitacao_id>')}..."
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
def session_uncached
|
51
|
-
::Avmtrf1.default_esosti
|
39
|
+
issue = ::Avmtrf1.default_esosti.issue(options.fetch('<solicitacao_id>'))
|
40
|
+
fatal_error("Issue não encontrado: #{options.fetch('<solicitacao_id>')}") unless issue
|
41
|
+
out issue.data.to_yaml
|
52
42
|
end
|
53
43
|
end
|
54
44
|
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.8.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: 2019-
|
11
|
+
date: 2019-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha
|
@@ -176,6 +176,10 @@ files:
|
|
176
176
|
- lib/avmtrf1/default_esosti.rb
|
177
177
|
- lib/avmtrf1/default_jira.rb
|
178
178
|
- lib/avmtrf1/default_redmine.rb
|
179
|
+
- lib/avmtrf1/esosti.rb
|
180
|
+
- lib/avmtrf1/esosti/entities.rb
|
181
|
+
- lib/avmtrf1/esosti/entities/issue.rb
|
182
|
+
- lib/avmtrf1/esosti/instance.rb
|
179
183
|
- lib/avmtrf1/esosti/parsers/solicitacao/main.rb
|
180
184
|
- lib/avmtrf1/esosti/session.rb
|
181
185
|
- lib/avmtrf1/esosti/session/action_base.rb
|