pd1_tools 0.43.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 +7 -0
- data/Gemfile +12 -0
- data/exe/pd1 +8 -0
- data/lib/avmtrf1/active_directory/user.rb +28 -0
- data/lib/avmtrf1/active_directory.rb +8 -0
- data/lib/avmtrf1/ad_user.rb +11 -0
- data/lib/avmtrf1/check_point/session/login.rb +57 -0
- data/lib/avmtrf1/check_point/session.rb +60 -0
- data/lib/avmtrf1/check_point.rb +3 -0
- data/lib/avmtrf1/default_esosti.rb +20 -0
- data/lib/avmtrf1/default_jira.rb +18 -0
- data/lib/avmtrf1/default_redmine.rb +16 -0
- data/lib/avmtrf1/docker/image.rb +49 -0
- data/lib/avmtrf1/docker/image_runner.rb +83 -0
- data/lib/avmtrf1/docker.rb +9 -0
- data/lib/avmtrf1/esosti/entities/issue.rb +24 -0
- data/lib/avmtrf1/esosti/entities.rb +9 -0
- data/lib/avmtrf1/esosti/instance/changed.rb +33 -0
- data/lib/avmtrf1/esosti/instance.rb +22 -0
- data/lib/avmtrf1/esosti/raw_data_sanitizer.rb +47 -0
- data/lib/avmtrf1/esosti/session/action_base.rb +34 -0
- data/lib/avmtrf1/esosti/session/atividades.rb +35 -0
- data/lib/avmtrf1/esosti/session/login.rb +47 -0
- data/lib/avmtrf1/esosti/session/solicitacao/main.rb +49 -0
- data/lib/avmtrf1/esosti/session/solicitacao.rb +81 -0
- data/lib/avmtrf1/esosti/session.rb +36 -0
- data/lib/avmtrf1/esosti.rb +8 -0
- data/lib/avmtrf1/executables.rb +23 -0
- data/lib/avmtrf1/forponto/parsers/day_registers.rb +19 -0
- data/lib/avmtrf1/forponto/parsers/espelho/day_node.rb +50 -0
- data/lib/avmtrf1/forponto/parsers/espelho/methods_as_fields.rb +21 -0
- data/lib/avmtrf1/forponto/parsers/espelho/row_node.rb +34 -0
- data/lib/avmtrf1/forponto/parsers/espelho/rows_consumer.rb +71 -0
- data/lib/avmtrf1/forponto/parsers/espelho/sub_node.rb +20 -0
- data/lib/avmtrf1/forponto/parsers/espelho/summary_node.rb +55 -0
- data/lib/avmtrf1/forponto/parsers/espelho/utils.rb +32 -0
- data/lib/avmtrf1/forponto/parsers/espelho.rb +26 -0
- data/lib/avmtrf1/forponto/session/day_registers.rb +39 -0
- data/lib/avmtrf1/forponto/session/interval.rb +27 -0
- data/lib/avmtrf1/forponto/session/login.rb +45 -0
- data/lib/avmtrf1/forponto/session.rb +32 -0
- data/lib/avmtrf1/forponto/user/balance.rb +155 -0
- data/lib/avmtrf1/forponto/user/day_registers.rb +32 -0
- data/lib/avmtrf1/forponto/user/month.rb +141 -0
- data/lib/avmtrf1/forponto/user.rb +22 -0
- data/lib/avmtrf1/git/cached_repository.rb +27 -0
- data/lib/avmtrf1/git/gitlab.rb +11 -0
- data/lib/avmtrf1/git/issue_on_repository.rb +100 -0
- data/lib/avmtrf1/git/push_large/_utils.rb +16 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/cache.rb +21 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/checkout_previous_revision.rb +35 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/commit_changes.rb +48 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/helpers.rb +29 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/pick_source_revision.rb +103 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/push.rb +90 -0
- data/lib/avmtrf1/git/push_large/lfs_commit/track_large_files.rb +53 -0
- data/lib/avmtrf1/git/push_large/lfs_commit.rb +47 -0
- data/lib/avmtrf1/git/push_large/source_commit/push.rb +42 -0
- data/lib/avmtrf1/git/push_large/source_commit.rb +58 -0
- data/lib/avmtrf1/git/push_large.rb +69 -0
- data/lib/avmtrf1/git/reference.rb +34 -0
- data/lib/avmtrf1/git.rb +10 -0
- data/lib/avmtrf1/gitlab/commit.rb +37 -0
- data/lib/avmtrf1/gitlab/repository.rb +41 -0
- data/lib/avmtrf1/ini/profile.rb +42 -0
- data/lib/avmtrf1/ini.rb +55 -0
- data/lib/avmtrf1/inventario_sistemas/parser/body.rb +27 -0
- data/lib/avmtrf1/inventario_sistemas/parser/body_row.rb +12 -0
- data/lib/avmtrf1/inventario_sistemas/parser/header.rb +38 -0
- data/lib/avmtrf1/inventario_sistemas/parser/header_column.rb +27 -0
- data/lib/avmtrf1/inventario_sistemas/parser.rb +40 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base/elements.rb +54 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base/layout.rb +55 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base/stylesheet.css +57 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/html_page_base.rb +41 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/index.rb +20 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/sistema.rb +62 -0
- data/lib/avmtrf1/inventario_sistemas/site_build/sistemas_index.rb +31 -0
- data/lib/avmtrf1/inventario_sistemas/site_build.rb +71 -0
- data/lib/avmtrf1/inventario_sistemas.rb +38 -0
- data/lib/avmtrf1/issues/factory.rb +22 -0
- data/lib/avmtrf1/issues.rb +7 -0
- data/lib/avmtrf1/jira/entities/issue.rb +30 -0
- data/lib/avmtrf1/jira/entities.rb +9 -0
- data/lib/avmtrf1/jira/instance.rb +28 -0
- data/lib/avmtrf1/jira.rb +8 -0
- data/lib/avmtrf1/node_js/docker_image.rb +14 -0
- data/lib/avmtrf1/node_js.rb +9 -0
- data/lib/avmtrf1/openvpn/config/builder.rb +59 -0
- data/lib/avmtrf1/openvpn/config/parser/builder.rb +62 -0
- data/lib/avmtrf1/openvpn/config/parser/line.rb +47 -0
- data/lib/avmtrf1/openvpn/config/parser/simple.rb +27 -0
- data/lib/avmtrf1/openvpn/config/parser/tag.rb +39 -0
- data/lib/avmtrf1/openvpn/config/parser.rb +20 -0
- data/lib/avmtrf1/oracle/connection/base.rb +66 -0
- data/lib/avmtrf1/oracle/connection/string_builder.rb +44 -0
- data/lib/avmtrf1/oracle/connection.rb +12 -0
- data/lib/avmtrf1/oracle/object/base.rb +39 -0
- data/lib/avmtrf1/oracle/object/table.rb +15 -0
- data/lib/avmtrf1/oracle/object/user.rb +15 -0
- data/lib/avmtrf1/oracle/object/view.rb +15 -0
- data/lib/avmtrf1/oracle/object.rb +25 -0
- data/lib/avmtrf1/oracle/objects/relation.rb +23 -0
- data/lib/avmtrf1/oracle/objects/sql_builder.rb +64 -0
- data/lib/avmtrf1/oracle/objects.rb +53 -0
- data/lib/avmtrf1/oracle/oci8.rb +29 -0
- data/lib/avmtrf1/oracle.rb +10 -0
- data/lib/avmtrf1/patches/avm/git/issue/complete.rb +50 -0
- data/lib/avmtrf1/patches/avm/git/issue.rb +4 -0
- data/lib/avmtrf1/patches/avm/git/launcher/base.rb +46 -0
- data/lib/avmtrf1/patches/avm/git/launcher.rb +4 -0
- data/lib/avmtrf1/patches/avm/git.rb +4 -0
- data/lib/avmtrf1/patches/avm.rb +4 -0
- data/lib/avmtrf1/patches/inifile.rb +13 -0
- data/lib/avmtrf1/patches.rb +4 -0
- data/lib/avmtrf1/php/docker_images/base.rb +49 -0
- data/lib/avmtrf1/php/docker_images/factory.rb +37 -0
- data/lib/avmtrf1/php/docker_images/v5.rb +47 -0
- data/lib/avmtrf1/php/docker_images/v7.rb +27 -0
- data/lib/avmtrf1/php/docker_images/v7_v4.rb +30 -0
- data/lib/avmtrf1/php/docker_images/v8.rb +19 -0
- data/lib/avmtrf1/php/docker_images.rb +11 -0
- data/lib/avmtrf1/php.rb +9 -0
- data/lib/avmtrf1/red/client/authorization.xml.erb +4 -0
- data/lib/avmtrf1/red/client.rb +38 -0
- data/lib/avmtrf1/red/helper.rb +35 -0
- data/lib/avmtrf1/red/profile/put_file.xml.erb +19 -0
- data/lib/avmtrf1/red/profile.rb +58 -0
- data/lib/avmtrf1/red/server.rb +33 -0
- data/lib/avmtrf1/red.rb +5 -0
- data/lib/avmtrf1/redmine/entities/issue.rb +29 -0
- data/lib/avmtrf1/redmine/entities/issue_status.rb +23 -0
- data/lib/avmtrf1/redmine/entities.rb +10 -0
- data/lib/avmtrf1/redmine/instance.rb +41 -0
- data/lib/avmtrf1/redmine.rb +7 -0
- data/lib/avmtrf1/rest_provider/entity.rb +18 -0
- data/lib/avmtrf1/rest_provider/instance/issues.rb +30 -0
- data/lib/avmtrf1/rest_provider/instance.rb +30 -0
- data/lib/avmtrf1/rest_provider/request.rb +44 -0
- data/lib/avmtrf1/rest_provider/response.rb +73 -0
- data/lib/avmtrf1/rest_provider.rb +7 -0
- data/lib/avmtrf1/result.rb +44 -0
- data/lib/avmtrf1/ruby.rb +9 -0
- data/lib/avmtrf1/tools/application.rb +13 -0
- data/lib/avmtrf1/tools/core_ext.rb +4 -0
- data/lib/avmtrf1/tools/msgraph/api/entity.rb +35 -0
- data/lib/avmtrf1/tools/msgraph/api/member.rb +31 -0
- data/lib/avmtrf1/tools/msgraph/api/root.rb +27 -0
- data/lib/avmtrf1/tools/msgraph/api/team/member_add.rb +36 -0
- data/lib/avmtrf1/tools/msgraph/api/team.rb +40 -0
- data/lib/avmtrf1/tools/msgraph/api.rb +55 -0
- data/lib/avmtrf1/tools/msgraph/error.rb +31 -0
- data/lib/avmtrf1/tools/msgraph/request_mixin.rb +18 -0
- data/lib/avmtrf1/tools/msgraph/response_mixin.rb +23 -0
- data/lib/avmtrf1/tools/msgraph/token_retrieve.rb +42 -0
- data/lib/avmtrf1/tools/msgraph.rb +11 -0
- data/lib/avmtrf1/tools/rubygems/dependency.rb +20 -0
- data/lib/avmtrf1/tools/rubygems/not_found_error.rb +17 -0
- data/lib/avmtrf1/tools/rubygems.rb +11 -0
- data/lib/avmtrf1/tools/runner/check_point/login.rb +33 -0
- data/lib/avmtrf1/tools/runner/check_point.rb +17 -0
- data/lib/avmtrf1/tools/runner/esosti/changed.rb +39 -0
- data/lib/avmtrf1/tools/runner/esosti/fetch.rb +39 -0
- data/lib/avmtrf1/tools/runner/esosti/request.rb +76 -0
- data/lib/avmtrf1/tools/runner/esosti.rb +27 -0
- data/lib/avmtrf1/tools/runner/forponto/espelho.rb +47 -0
- data/lib/avmtrf1/tools/runner/forponto/marcacoes.rb +32 -0
- data/lib/avmtrf1/tools/runner/forponto/resumos.rb +87 -0
- data/lib/avmtrf1/tools/runner/forponto/saldo.rb +91 -0
- data/lib/avmtrf1/tools/runner/forponto.rb +70 -0
- data/lib/avmtrf1/tools/runner/git/gitlab/commit_link.rb +81 -0
- data/lib/avmtrf1/tools/runner/git/gitlab.rb +20 -0
- data/lib/avmtrf1/tools/runner/git/issues_check.rb +59 -0
- data/lib/avmtrf1/tools/runner/git/push_large.rb +46 -0
- data/lib/avmtrf1/tools/runner/git.rb +14 -0
- data/lib/avmtrf1/tools/runner/inventario_sistemas.rb +71 -0
- data/lib/avmtrf1/tools/runner/msgraph/joined_teams.rb +39 -0
- data/lib/avmtrf1/tools/runner/msgraph/request.rb +45 -0
- data/lib/avmtrf1/tools/runner/msgraph/team/member/add.rb +48 -0
- data/lib/avmtrf1/tools/runner/msgraph/team/member.rb +25 -0
- data/lib/avmtrf1/tools/runner/msgraph/team/members.rb +38 -0
- data/lib/avmtrf1/tools/runner/msgraph/team.rb +27 -0
- data/lib/avmtrf1/tools/runner/msgraph/token.rb +31 -0
- data/lib/avmtrf1/tools/runner/msgraph.rb +43 -0
- data/lib/avmtrf1/tools/runner/node_js/docker.rb +15 -0
- data/lib/avmtrf1/tools/runner/node_js.rb +18 -0
- data/lib/avmtrf1/tools/runner/openvpn.rb +91 -0
- data/lib/avmtrf1/tools/runner/oracle/query.rb +71 -0
- data/lib/avmtrf1/tools/runner/oracle/source_get.rb +51 -0
- data/lib/avmtrf1/tools/runner/oracle/user_clear.rb +59 -0
- data/lib/avmtrf1/tools/runner/oracle.rb +37 -0
- data/lib/avmtrf1/tools/runner/php/docker.rb +20 -0
- data/lib/avmtrf1/tools/runner/php.rb +18 -0
- data/lib/avmtrf1/tools/runner/red.rb +83 -0
- data/lib/avmtrf1/tools/runner/source.rb +14 -0
- data/lib/avmtrf1/tools/runner.rb +43 -0
- data/lib/avmtrf1/tools.rb +4 -0
- data/lib/pd1_tools/version.rb +5 -0
- data/lib/pd1_tools.rb +7 -0
- data/template/avmtrf1/node_js/docker_image/Dockerfile.template +25 -0
- data/template/avmtrf1/node_js/docker_image/auxiliary/config_banner.sh +15 -0
- data/template/avmtrf1/node_js/docker_image/auxiliary/init.sh +18 -0
- data/template/avmtrf1/node_js/docker_image/auxiliary/lib.sh +30 -0
- data/template/avmtrf1/node_js/docker_image/auxiliary/ng_serve.sh +16 -0
- data/template/avmtrf1/node_js/docker_image/auxiliary/npm_install.sh +21 -0
- data/template/avmtrf1/node_js/docker_image/auxiliary/start.sh +17 -0
- data/template/avmtrf1/php/docker_images/base/Dockerfile.template +104 -0
- data/template/avmtrf1/php/docker_images/base/aux/apache_foreground.sh +16 -0
- data/template/avmtrf1/php/docker_images/base/aux/apache_user.sh +54 -0
- data/template/avmtrf1/php/docker_images/base/aux/app_user_run.sh +17 -0
- data/template/avmtrf1/php/docker_images/base/aux/config_banner.sh +20 -0
- data/template/avmtrf1/php/docker_images/base/aux/init.sh +39 -0
- data/template/avmtrf1/php/docker_images/base/aux/laravel.sh +58 -0
- data/template/avmtrf1/php/docker_images/base/aux/lib.sh +70 -0
- data/template/avmtrf1/php/docker_images/base/aux/pear.sh +35 -0
- data/template/avmtrf1/php/docker_images/base/aux/php_composer.sh +31 -0
- data/template/avmtrf1/php/docker_images/base/aux/php_values.sh +41 -0
- data/template/avmtrf1/php/docker_images/base/aux/setup_apache_site.sh +16 -0
- data/template/avmtrf1/php/docker_images/base/aux/start.sh +26 -0
- data/template/avmtrf1/php/docker_images/base/aux/templates/apache_site.conf +12 -0
- data/template/avmtrf1/tools/msgraph/token_retrieve/python_retriever.py +85 -0
- metadata +460 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'avmtrf1/tools/rubygems/not_found_error'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
module Tools
|
8
|
+
module Rubygems
|
9
|
+
class Dependency
|
10
|
+
common_constructor :gem_name, :lib_name
|
11
|
+
|
12
|
+
def require_lib
|
13
|
+
require lib_name
|
14
|
+
rescue LoadError
|
15
|
+
raise ::Avmtrf1::Tools::Rubygems::NotFoundError, self
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Avmtrf1
|
4
|
+
module Tools
|
5
|
+
module Rubygems
|
6
|
+
class NotFoundError < ::StandardError
|
7
|
+
attr_reader :dependency
|
8
|
+
|
9
|
+
def initialize(dependency)
|
10
|
+
@dependency = dependency
|
11
|
+
super("Gem \"#{dependency.gem_name}\" not found " \
|
12
|
+
"(Library required: \"#{dependency.lib_name}\")")
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/check_point/session'
|
4
|
+
require 'avmtrf1/tools/core_ext'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
module Tools
|
8
|
+
class Runner
|
9
|
+
class CheckPoint
|
10
|
+
class Login
|
11
|
+
runner_with :help do
|
12
|
+
desc 'Login no CheckPoint (https://cp.trf1.jus.br).'
|
13
|
+
end
|
14
|
+
|
15
|
+
def run
|
16
|
+
infov 'Username', session.username
|
17
|
+
logged = session.logged?
|
18
|
+
infov 'Logged', logged
|
19
|
+
return if logged
|
20
|
+
|
21
|
+
infom 'Trying login...'
|
22
|
+
session.login
|
23
|
+
infov 'Logged after login?', session.logged?
|
24
|
+
end
|
25
|
+
|
26
|
+
def session_uncached
|
27
|
+
::Avmtrf1::CheckPoint::Session.by_default_ad_user
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Tools
|
7
|
+
class Runner
|
8
|
+
class CheckPoint
|
9
|
+
require_sub __FILE__
|
10
|
+
runner_with :help, :subcommands do
|
11
|
+
desc 'Utilidades para Check Point (https://cp.trf1.jus.br).'
|
12
|
+
subcommands
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Tools
|
7
|
+
class Runner
|
8
|
+
class Esosti
|
9
|
+
class Changed
|
10
|
+
runner_with :help do
|
11
|
+
desc 'Recupera o conteúdo de uma solicitação e-Sosti (Control Desk).'
|
12
|
+
pos_arg :time
|
13
|
+
end
|
14
|
+
|
15
|
+
def run
|
16
|
+
infov 'Time', time
|
17
|
+
infov 'URL', request.url
|
18
|
+
out data.to_yaml
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def data_uncached
|
24
|
+
infom 'Recuperando informações...'
|
25
|
+
request.response.body_data_or_raise
|
26
|
+
end
|
27
|
+
|
28
|
+
def request_uncached
|
29
|
+
runner_context.call(:esosti_instance).changed_request(time)
|
30
|
+
end
|
31
|
+
|
32
|
+
def time
|
33
|
+
::Time.parse(parsed.time)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Tools
|
7
|
+
class Runner
|
8
|
+
class Esosti
|
9
|
+
class Fetch
|
10
|
+
runner_with :help do
|
11
|
+
desc 'Recupera o conteúdo de uma solicitação e-Sosti (Control Desk).'
|
12
|
+
pos_arg :solicitacao_id
|
13
|
+
end
|
14
|
+
|
15
|
+
def run
|
16
|
+
infov 'URL', request.url
|
17
|
+
fatal_error("Issue não encontrado: #{solicitacao_id}") unless issue
|
18
|
+
out issue.data.to_yaml
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def request_uncached
|
24
|
+
runner_context.call(:esosti_instance).issue_request(solicitacao_id)
|
25
|
+
end
|
26
|
+
|
27
|
+
def issue_uncached
|
28
|
+
infom "Recuperando informações de #{solicitacao_id}..."
|
29
|
+
request.response.body_data_or_raise
|
30
|
+
end
|
31
|
+
|
32
|
+
def solicitacao_id
|
33
|
+
parsed.solicitacao_id
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
4
|
+
require 'yaml'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
module Tools
|
8
|
+
class Runner
|
9
|
+
class Esosti
|
10
|
+
class Request
|
11
|
+
runner_with :help do
|
12
|
+
desc 'Requisições genéricas para e-Sosti (Control Desk).'
|
13
|
+
bool_opt '-d', '--default', 'Opções --json e --yaml.'
|
14
|
+
bool_opt '-j', '--json', 'Solicita resposta em JSON.'
|
15
|
+
bool_opt '-x', '--xml', 'Solicita resposta em XML.'
|
16
|
+
bool_opt '-y', '--yaml', 'Imprime saída em YAML.'
|
17
|
+
pos_arg :url_suffix
|
18
|
+
end
|
19
|
+
|
20
|
+
def run
|
21
|
+
start_banner
|
22
|
+
output_data
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def json?
|
28
|
+
parsed.json? || parsed.default?
|
29
|
+
end
|
30
|
+
|
31
|
+
def start_banner
|
32
|
+
infov 'URL', request.url
|
33
|
+
infom 'Recuperando informações...'
|
34
|
+
infov 'Response status', response.status
|
35
|
+
end
|
36
|
+
|
37
|
+
def output_data
|
38
|
+
if yaml?
|
39
|
+
out ::YAML.dump(response.body_data)
|
40
|
+
else
|
41
|
+
out response.body_str
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def request_uncached
|
46
|
+
runner_context.call(:esosti_instance).request(url_suffix, request_headers)
|
47
|
+
end
|
48
|
+
|
49
|
+
def request_headers
|
50
|
+
r = {}
|
51
|
+
%w[json xml].each do |format|
|
52
|
+
r['Accept'] = "application/#{format}" if send("#{format}?")
|
53
|
+
end
|
54
|
+
r
|
55
|
+
end
|
56
|
+
|
57
|
+
def response_uncached
|
58
|
+
request.response
|
59
|
+
end
|
60
|
+
|
61
|
+
def url_suffix
|
62
|
+
parsed.url_suffix
|
63
|
+
end
|
64
|
+
|
65
|
+
def xml?
|
66
|
+
parsed.xml?
|
67
|
+
end
|
68
|
+
|
69
|
+
def yaml?
|
70
|
+
parsed.yaml? || parsed.default?
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
4
|
+
require 'avmtrf1/default_esosti'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
module Tools
|
8
|
+
class Runner
|
9
|
+
class Esosti
|
10
|
+
require_sub __FILE__
|
11
|
+
runner_with :help, :subcommands do
|
12
|
+
desc 'Utilidades para e-Sosti (Control Desk).'
|
13
|
+
arg_opt '-U', '--url', 'Utiliza o Control Desk em <url>.'
|
14
|
+
subcommands
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def esosti_instance_uncached
|
20
|
+
parsed.url.if_present(::Avmtrf1.default_esosti) do |url|
|
21
|
+
::Avmtrf1.trf1_esosti(url)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Tools
|
7
|
+
class Runner
|
8
|
+
class Forponto
|
9
|
+
class Espelho
|
10
|
+
runner_with :help do
|
11
|
+
desc 'Recupera e trata dados do Forponto.'
|
12
|
+
pos_arg :year
|
13
|
+
pos_arg :month
|
14
|
+
end
|
15
|
+
|
16
|
+
def run
|
17
|
+
infov 'Start date', user_month.start_date
|
18
|
+
infov 'End date', user_month.end_date
|
19
|
+
out(fetched_data.to_yaml)
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def fetched_data
|
25
|
+
user_month.data
|
26
|
+
end
|
27
|
+
|
28
|
+
def user_month_uncached
|
29
|
+
runner_context.call(:user).month(year, month)
|
30
|
+
end
|
31
|
+
|
32
|
+
def year
|
33
|
+
parsed.year.to_i
|
34
|
+
end
|
35
|
+
|
36
|
+
def month
|
37
|
+
parsed.month.to_i
|
38
|
+
end
|
39
|
+
|
40
|
+
def date(day)
|
41
|
+
::Date.civil(year, month, day)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/forponto/user/day_registers'
|
4
|
+
require 'avmtrf1/tools/core_ext'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
module Tools
|
8
|
+
class Runner
|
9
|
+
class Forponto
|
10
|
+
class Marcacoes
|
11
|
+
runner_with :help do
|
12
|
+
desc 'Mostra marcações Forponto do dia.'
|
13
|
+
end
|
14
|
+
|
15
|
+
def run
|
16
|
+
infov 'Date', day_registers.date
|
17
|
+
infov 'Times', day_registers.times.count
|
18
|
+
day_registers.times.each_with_index do |time, index|
|
19
|
+
infov " * #{index + 1}º", time
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def day_registers_uncached
|
26
|
+
::Avmtrf1::Forponto::User::DayRegisters.new(runner_context.call(:user))
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
4
|
+
|
5
|
+
module Avmtrf1
|
6
|
+
module Tools
|
7
|
+
class Runner
|
8
|
+
class Forponto
|
9
|
+
class Resumos
|
10
|
+
runner_with :help do
|
11
|
+
desc 'Mostra os resumos.'
|
12
|
+
end
|
13
|
+
|
14
|
+
def run
|
15
|
+
sorted_months.each do |month|
|
16
|
+
show_month(month)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def head_month
|
21
|
+
today = ::Date.today # rubocop:disable Rails/Date
|
22
|
+
date = ::Date.civil(today.year, today.month, 1)
|
23
|
+
runner_context.call(:user).month(date.year, date.month)
|
24
|
+
end
|
25
|
+
|
26
|
+
def show_month(month)
|
27
|
+
infov 'Month', month
|
28
|
+
show_self_summaries(month)
|
29
|
+
end
|
30
|
+
|
31
|
+
def show_self_summaries(month)
|
32
|
+
infov ' * Self summaries', month.os_data.summaries.count
|
33
|
+
show_month_summaries(month)
|
34
|
+
show_month_self_summaries(month)
|
35
|
+
show_month_acum_summaries(month)
|
36
|
+
end
|
37
|
+
|
38
|
+
def show_month_summaries(month)
|
39
|
+
month.os_data.summaries.each do |s|
|
40
|
+
infov ' * ' + summary_to_label(s), summary_to_value(s) # rubocop:disable Style/StringConcatenation
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def show_month_self_summaries(month)
|
45
|
+
infov ' * Débito', minutes_to_s(month.debito)
|
46
|
+
infov ' * Crédito', minutes_to_s(month.credito)
|
47
|
+
infov ' * Saldo', minutes_to_s(month.saldo)
|
48
|
+
end
|
49
|
+
|
50
|
+
def show_month_acum_summaries(month)
|
51
|
+
infov ' * Débito acum.', minutes_to_s(month.debito_acum)
|
52
|
+
infov ' * Crédito acum.', minutes_to_s(month.credito_acum)
|
53
|
+
infov ' * Saldo acum.', minutes_to_s(month.saldo_acum)
|
54
|
+
end
|
55
|
+
|
56
|
+
def summary_to_label(summary)
|
57
|
+
"#{summary.code} - #{summary.description}"
|
58
|
+
end
|
59
|
+
|
60
|
+
def summary_to_value(summary)
|
61
|
+
minutes_to_s(summary.minutes)
|
62
|
+
end
|
63
|
+
|
64
|
+
def minutes_to_s(minutes)
|
65
|
+
signal = ''
|
66
|
+
if minutes.negative?
|
67
|
+
signal = '-'
|
68
|
+
minutes = -minutes
|
69
|
+
end
|
70
|
+
time = [minutes / 60, minutes % 60].map { |x| x.to_s.rjust(2, '0') }.join(':')
|
71
|
+
"#{signal}#{time} / #{signal}#{minutes} minutes"
|
72
|
+
end
|
73
|
+
|
74
|
+
def sorted_months_uncached
|
75
|
+
r = []
|
76
|
+
current = head_month
|
77
|
+
while current.present?
|
78
|
+
r << current
|
79
|
+
current = current.parent_month
|
80
|
+
end
|
81
|
+
r.reverse
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avmtrf1/tools/core_ext'
|
4
|
+
require 'avmtrf1/forponto/user/balance'
|
5
|
+
|
6
|
+
module Avmtrf1
|
7
|
+
module Tools
|
8
|
+
class Runner
|
9
|
+
class Forponto
|
10
|
+
class Saldo
|
11
|
+
runner_with :help do
|
12
|
+
desc 'Calcula saldo de horas atual.'
|
13
|
+
bool_opt '-d', '--details', 'Show details.'
|
14
|
+
end
|
15
|
+
|
16
|
+
def run
|
17
|
+
balance.months_balances.each do |mb|
|
18
|
+
show_balance_month(mb)
|
19
|
+
end
|
20
|
+
end_banner
|
21
|
+
end
|
22
|
+
|
23
|
+
def end_banner
|
24
|
+
infov 'Crédito final', minutes_to_s(balance.credito_left)
|
25
|
+
infov 'Débito final', minutes_to_s(balance.debito_left)
|
26
|
+
infov 'Saldo final', minutes_to_s(balance.saldo_left)
|
27
|
+
end
|
28
|
+
|
29
|
+
def show_balance_month(balance_month)
|
30
|
+
infov 'Month', balance_month.month
|
31
|
+
show_month_attr_balance(balance_month.credito, 'Crédito')
|
32
|
+
show_month_attr_balance(balance_month.debito, 'Débito')
|
33
|
+
infov ' * After trigger', minutes_to_s(balance_month.after_trigger)
|
34
|
+
infov ' * After trigger acum.', minutes_to_s(balance_month.after_trigger_acum)
|
35
|
+
end
|
36
|
+
|
37
|
+
def show_month_attr_balance(mba, label)
|
38
|
+
infov " * #{label}", minutes_to_s(mba.initial_value)
|
39
|
+
return unless parsed.details?
|
40
|
+
|
41
|
+
show_month_withdrawals(mba)
|
42
|
+
show_month_requests(mba)
|
43
|
+
show_month_end_resume(mba)
|
44
|
+
end
|
45
|
+
|
46
|
+
def show_month_withdrawals(mba)
|
47
|
+
infov ' * Withdrawals', mba.withdrawals.count
|
48
|
+
mba.withdrawals.each do |w|
|
49
|
+
infov " * #{w.month.month}", minutes_to_s(w.value)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def show_month_requests(mba)
|
54
|
+
infov ' * Requests', mba.requests.count
|
55
|
+
mba.requests.each do |r|
|
56
|
+
infov " * #{r.month.month}", minutes_to_s(r.value)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def show_month_end_resume(mba)
|
61
|
+
infov ' * Left', minutes_to_s(mba.left) + ' ' + left_status(mba) # rubocop:disable Style/StringConcatenation
|
62
|
+
infov ' * After trigger', minutes_to_s(mba.after_trigger)
|
63
|
+
infov ' * After trigger acum.', minutes_to_s(mba.after_trigger_acum)
|
64
|
+
end
|
65
|
+
|
66
|
+
def left_status(mba)
|
67
|
+
if mba.left.positive? && mba.owner_month.lost
|
68
|
+
'[LOST]'.red
|
69
|
+
else
|
70
|
+
'[OK]'
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def minutes_to_s(minutes)
|
75
|
+
signal = ''
|
76
|
+
if minutes.negative?
|
77
|
+
signal = '-'
|
78
|
+
minutes = -minutes
|
79
|
+
end
|
80
|
+
time = [minutes / 60, minutes % 60].map { |x| x.to_s.rjust(2, '0') }.join(':')
|
81
|
+
"#{signal}#{time} / #{signal}#{minutes} minutes"
|
82
|
+
end
|
83
|
+
|
84
|
+
def balance_uncached
|
85
|
+
::Avmtrf1::Forponto::User::Balance.new(runner_context.call(:user))
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_config/node'
|
4
|
+
require 'avmtrf1/tools/core_ext'
|
5
|
+
require 'avmtrf1/forponto/user'
|
6
|
+
|
7
|
+
module Avmtrf1
|
8
|
+
module Tools
|
9
|
+
class Runner
|
10
|
+
class Forponto
|
11
|
+
require_sub __FILE__
|
12
|
+
|
13
|
+
DEFAULT_VALUES = {
|
14
|
+
url: 'http://pontoeletronico.trf1.jus.br/forponto/fptoweb.exe'
|
15
|
+
}.freeze
|
16
|
+
|
17
|
+
runner_with :help, :subcommands do
|
18
|
+
desc 'Operações para Forponto.'
|
19
|
+
arg_opt '-u', '--url', 'URL inicial.'
|
20
|
+
arg_opt '-m', '--matricula', 'Matrícula.'
|
21
|
+
arg_opt '-c', '--codigo', 'Código.'
|
22
|
+
subcommands
|
23
|
+
end
|
24
|
+
|
25
|
+
def run
|
26
|
+
start_banner
|
27
|
+
run_with_subcommand
|
28
|
+
end
|
29
|
+
|
30
|
+
def start_banner
|
31
|
+
infov 'URL', user.url
|
32
|
+
infov 'Matrícula', user.matricula
|
33
|
+
end
|
34
|
+
|
35
|
+
def attr_value(name, read_options = {})
|
36
|
+
value_by_option(name) || value_by_default(name) || value_by_entry(name, read_options)
|
37
|
+
end
|
38
|
+
|
39
|
+
def value_by_option(name)
|
40
|
+
parsed.fetch(name)
|
41
|
+
end
|
42
|
+
|
43
|
+
def value_by_default(name)
|
44
|
+
DEFAULT_VALUES[name.to_sym]
|
45
|
+
end
|
46
|
+
|
47
|
+
def value_by_entry(name, read_options)
|
48
|
+
::EacConfig::Node.context.current.entry("trf1.forponto.#{name}", read_options)
|
49
|
+
.send(read_options[:noecho] ? :secret_value : :value)
|
50
|
+
end
|
51
|
+
|
52
|
+
def user_uncached
|
53
|
+
::Avmtrf1::Forponto::User.new(url, matricula, codigo)
|
54
|
+
end
|
55
|
+
|
56
|
+
def url
|
57
|
+
attr_value(__method__)
|
58
|
+
end
|
59
|
+
|
60
|
+
def matricula
|
61
|
+
attr_value(__method__)
|
62
|
+
end
|
63
|
+
|
64
|
+
def codigo
|
65
|
+
attr_value(__method__, noecho: true)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|