avmtrf1-tools 0.7.0 → 0.8.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/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
|