pd1_tools 0.43.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|