worker-automate-hub 0.4.446__tar.gz → 0.4.448__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/PKG-INFO +1 -1
  2. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/pyproject.toml +1 -1
  3. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/api/client.py +9 -9
  4. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/api/rpa_fila_service.py +2 -2
  5. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/api/rpa_historico_service.py +2 -2
  6. worker_automate_hub-0.4.448/worker_automate_hub/api/webhook_service.py +57 -0
  7. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/task_executor.py +9 -0
  8. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/utils/util.py +1 -1
  9. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/README.md +0 -0
  10. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/__init__.py +0 -0
  11. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/api/__init__.py +0 -0
  12. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/api/ahead_service.py +0 -0
  13. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/api/helpers/__init__.py +0 -0
  14. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/api/helpers/api_helpers.py +0 -0
  15. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/cli.py +0 -0
  16. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/config/__init__.py +0 -0
  17. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/config/settings.py +0 -0
  18. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/config.py +0 -0
  19. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/core/so_manipulation.py +0 -0
  20. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/decorators/__init__.py +0 -0
  21. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/decorators/deprecation.py +0 -0
  22. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/decorators/rate_limit.py +0 -0
  23. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/decorators/repeat.py +0 -0
  24. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/decorators/retry.py +0 -0
  25. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/decorators/singleton.py +0 -0
  26. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/decorators/timeit.py +0 -0
  27. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/__init__.py +0 -0
  28. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/dao/__init__.py +0 -0
  29. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/dao/rpa_configuracao.py +0 -0
  30. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/dao/rpa_historico.py +0 -0
  31. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/dao/rpa_processo.py +0 -0
  32. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/dto/__init__.py +0 -0
  33. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/dto/rpa_historico_request_dto.py +0 -0
  34. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/dto/rpa_processo_entrada_dto.py +0 -0
  35. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/dto/rpa_processo_rdp_dto.py +0 -0
  36. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/models/dto/rpa_sistema_dto.py +0 -0
  37. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/__init__.py +0 -0
  38. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/__init__.py +0 -0
  39. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/coleta_dje_process.py +0 -0
  40. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/conexao_rdp.py +0 -0
  41. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/descartes.py +0 -0
  42. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/ecac_estadual_go.py +0 -0
  43. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/ecac_estadual_main.py +0 -0
  44. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/ecac_estadual_mt.py +0 -0
  45. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/ecac_estadual_sc.py +0 -0
  46. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/ecac_estadual_sp.py +0 -0
  47. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/ecac_federal.py +0 -0
  48. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_15.py +0 -0
  49. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_16.py +0 -0
  50. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_207.py +0 -0
  51. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_32.py +0 -0
  52. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_33.py +0 -0
  53. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_34.py +0 -0
  54. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_36.py +0 -0
  55. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_39.py +0 -0
  56. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_500.py +0 -0
  57. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_505.py +0 -0
  58. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_7139.py +0 -0
  59. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/entrada_de_notas_9.py +0 -0
  60. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/exemplo_processo.py +0 -0
  61. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/fidc_gerar_nosso_numero.py +0 -0
  62. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/fidc_remessa_cobranca_cnab240.py +0 -0
  63. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/login_emsys.py +0 -0
  64. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/playground.py +0 -0
  65. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/sped_fiscal.py +0 -0
  66. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/jobs/transferencias.py +0 -0
  67. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/tasks/task_definitions.py +0 -0
  68. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/utils/__init__.py +0 -0
  69. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/utils/env.py +0 -0
  70. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/utils/get_creds_gworkspace.py +0 -0
  71. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/utils/logger.py +0 -0
  72. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/utils/toast.py +0 -0
  73. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/utils/updater.py +0 -0
  74. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/utils/utils_nfe_entrada.py +0 -0
  75. {worker_automate_hub-0.4.446 → worker_automate_hub-0.4.448}/worker_automate_hub/worker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: worker-automate-hub
3
- Version: 0.4.446
3
+ Version: 0.4.448
4
4
  Summary: Worker Automate HUB é uma aplicação para automatizar rotinas de RPA nos ambientes Argenta.
5
5
  Author: Joel Paim
6
6
  Requires-Python: >=3.12,<4.0
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "worker-automate-hub"
3
- version = "0.4.446"
3
+ version = "0.4.448"
4
4
  description = "Worker Automate HUB é uma aplicação para automatizar rotinas de RPA nos ambientes Argenta."
5
5
  authors = ["Joel Paim"]
6
6
  readme = "README.md"
@@ -24,7 +24,7 @@ async def get_new_task(stop_event: threading.Event) -> RpaProcessoEntradaDTO:
24
24
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
25
25
  data = await get_new_task_info()
26
26
 
27
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
27
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
28
28
  async with session.post(
29
29
  f"{env_config["API_BASE_URL"]}/robo/new-job",
30
30
  data=data,
@@ -53,7 +53,7 @@ async def notify_is_alive(stop_event: threading.Event):
53
53
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
54
54
  data = await get_system_info()
55
55
 
56
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
56
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
57
57
  async with session.put(
58
58
  f"{env_config["API_BASE_URL"]}/robo/last-alive",
59
59
  data=data,
@@ -89,7 +89,7 @@ async def get_historico_by_processo_identificador(identificador, process_name):
89
89
  }
90
90
 
91
91
  try:
92
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
92
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
93
93
  async with session.post(
94
94
  f"{env_config['API_BASE_URL']}/historico/by-identificador",
95
95
  headers=headers_basic,
@@ -131,7 +131,7 @@ async def get_processo(uuidProcesso: str) -> RpaProcesso:
131
131
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
132
132
 
133
133
 
134
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
134
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
135
135
  async with session.get(
136
136
  f"{env_config["API_BASE_URL"]}/processo/{uuidProcesso}",
137
137
  headers=headers_basic,
@@ -164,7 +164,7 @@ async def get_workers():
164
164
 
165
165
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
166
166
 
167
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
167
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
168
168
  async with session.get(
169
169
  f"{env_config["API_BASE_URL"]}/robo/workers",
170
170
  headers=headers_basic,
@@ -207,7 +207,7 @@ async def get_config_by_name(name: str) -> RpaConfiguracao:
207
207
  try:
208
208
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
209
209
 
210
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
210
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
211
211
  async with session.get(
212
212
  f"{env_config["API_BASE_URL"]}/configuracao/api/{name}",
213
213
  headers=headers_basic,
@@ -297,7 +297,7 @@ async def send_gchat_message(message: str) -> None:
297
297
  try:
298
298
  headers_basic = {"Authorization": f"Basic {env_config['API_AUTHORIZATION']}"}
299
299
 
300
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
300
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
301
301
  async with session.post(
302
302
  f"{env_config['API_BASE_URL']}/google-chat",
303
303
  data={"message": message},
@@ -376,7 +376,7 @@ async def get_index_modelo_emsys(filial: str, descricao_documento: str):
376
376
 
377
377
  try:
378
378
  async with aiohttp.ClientSession(
379
- connector=aiohttp.TCPConnector(verify_ssl=False)
379
+ connector=aiohttp.TCPConnector(verify_ssl=True)
380
380
  ) as session:
381
381
  async with session.post(f"{env_config['API_BASE_URL']}/emsys/buscar-index-documento-fiscal", data=body,
382
382
  headers=headers_basic) as response:
@@ -420,7 +420,7 @@ async def get_status_nf_emsys(chave: int):
420
420
 
421
421
  try:
422
422
  async with aiohttp.ClientSession(
423
- connector=aiohttp.TCPConnector(verify_ssl=False)
423
+ connector=aiohttp.TCPConnector(verify_ssl=True)
424
424
  ) as session:
425
425
  async with session.get(url, headers=headers_basic) as response:
426
426
  if response.status != 200:
@@ -14,7 +14,7 @@ async def burn_queue(id_fila: str):
14
14
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
15
15
 
16
16
 
17
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
17
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
18
18
  async with session.delete(
19
19
  f"{env_config["API_BASE_URL"]}/fila/burn-queue/{id_fila}",
20
20
  headers=headers_basic,
@@ -41,7 +41,7 @@ async def unlock_queue(id: str):
41
41
  headers_basic = {"Authorization": f"Basic {env_config["API_AUTHORIZATION"]}"}
42
42
 
43
43
 
44
- async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=False)) as session:
44
+ async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(verify_ssl=True)) as session:
45
45
  async with session.get(
46
46
  f"{env_config["API_BASE_URL"]}/fila/unlock-queue/{id}",
47
47
  headers=headers_basic,
@@ -36,7 +36,7 @@ async def store(data: RpaHistoricoRequestDTO) -> dict:
36
36
  }
37
37
  try:
38
38
  async with aiohttp.ClientSession(
39
- connector=aiohttp.TCPConnector(verify_ssl=False)
39
+ connector=aiohttp.TCPConnector(verify_ssl=True)
40
40
  ) as session:
41
41
  payload = data.model_dump_json()
42
42
 
@@ -86,7 +86,7 @@ async def update(data: RpaHistoricoRequestDTO) -> dict:
86
86
  raise TypeError("Parâmetro data deve ser do tipo RpaHistoricoRequestDTO")
87
87
  try:
88
88
  async with aiohttp.ClientSession(
89
- connector=aiohttp.TCPConnector(verify_ssl=False)
89
+ connector=aiohttp.TCPConnector(verify_ssl=True)
90
90
  ) as session:
91
91
  if not data.uuidHistorico:
92
92
  raise ValueError("Parâmetro uuidHistorico deve ser informado")
@@ -0,0 +1,57 @@
1
+ from worker_automate_hub.utils.logger import logger
2
+ from rich.console import Console
3
+
4
+ import aiohttp
5
+
6
+ console = Console()
7
+
8
+ async def send_to_webhook(
9
+ url_retorno: str,
10
+ status: str,
11
+ observacao: str
12
+ ) -> None:
13
+ """
14
+ Envia uma notificacao para o endpoint do webhook passado como parametro.
15
+
16
+ Args:
17
+ url_retorno (str): URL do endpoint do webhook.
18
+ status (str): Status da notificacao.
19
+ observacao (str): Observacao da notificacao.
20
+
21
+ Raises:
22
+ ValueError: Se a URL, status ou observacao forem vazias.
23
+ """
24
+ if not url_retorno:
25
+ raise ValueError("URL do retorno esta vazia.")
26
+
27
+ if not status:
28
+ raise ValueError("Status da notificacao esta vazio.")
29
+
30
+ if not observacao:
31
+ raise ValueError("Observacao da notificacao esta vazia.")
32
+
33
+ data = {
34
+ "status": status,
35
+ "observacao": observacao,
36
+ }
37
+
38
+ try:
39
+ async with aiohttp.ClientSession(
40
+ connector=aiohttp.TCPConnector(verify_ssl=False)
41
+ ) as session:
42
+ async with session.post(f"{url_retorno}", data=data) as response:
43
+ if response.status != 200:
44
+ raise Exception(f"Erro ao enviar notificacao: {response.text()}")
45
+
46
+ data = await response.text()
47
+ log_msg = f"\nSucesso ao enviar {data}\n para o webhook: {url_retorno}.\n"
48
+ console.print(
49
+ log_msg,
50
+ style="bold green",
51
+ )
52
+ logger.info(log_msg)
53
+
54
+ except Exception as e:
55
+ err_msg = f"Erro ao comunicar com endpoint do webhook: {e}"
56
+ console.print(f"\n{err_msg}\n", style="bold red")
57
+ logger.info(err_msg)
@@ -1,6 +1,7 @@
1
1
  from datetime import datetime
2
2
 
3
3
  from pytz import timezone
4
+ from worker_automate_hub.api.webhook_service import send_to_webhook
4
5
  from rich.console import Console
5
6
 
6
7
  from worker_automate_hub.api.client import (
@@ -37,6 +38,7 @@ async def perform_task(task: RpaProcessoEntradaDTO):
37
38
  console.print(f"\n{log_msg}\n", style="green")
38
39
  logger.info(log_msg)
39
40
  task_uuid = task.uuidProcesso
41
+ url_retorno = task.configEntrada.get("urlRetorno", None)
40
42
  processo: RpaProcesso = await get_processo(task_uuid)
41
43
  if processo is None:
42
44
  worker_config = load_worker_config()
@@ -74,6 +76,9 @@ async def perform_task(task: RpaProcessoEntradaDTO):
74
76
  )
75
77
  else:
76
78
  show_toast("Sucesso", f"Processo executado com sucesso: {result}")
79
+
80
+ if url_retorno is not None and result.sucesso == False:
81
+ await send_to_webhook(url_retorno, result.status, result.retorno)
77
82
  return result
78
83
  else:
79
84
  err_msg = f"Processo não encontrado: {task_uuid}"
@@ -93,6 +98,8 @@ async def perform_task(task: RpaProcessoEntradaDTO):
93
98
  processo=processo,
94
99
  )
95
100
  await unlock_queue(task.uuidFila)
101
+ if url_retorno is not None:
102
+ await send_to_webhook(url_retorno, RpaHistoricoStatusEnum.Falha, err_msg)
96
103
  return None
97
104
  except Exception as e:
98
105
  err_msg = f"Erro ao performar o processo: {e}"
@@ -112,6 +119,8 @@ async def perform_task(task: RpaProcessoEntradaDTO):
112
119
  await capture_and_send_screenshot(
113
120
  uuidRelacao=historico.uuidHistorico, desArquivo=err_msg
114
121
  )
122
+ if url_retorno is not None:
123
+ await send_to_webhook(url_retorno, RpaHistoricoStatusEnum.Falha, err_msg)
115
124
 
116
125
 
117
126
  async def _store_historico(
@@ -650,7 +650,7 @@ async def api_simplifica(
650
650
 
651
651
  try:
652
652
  async with aiohttp.ClientSession(
653
- connector=aiohttp.TCPConnector(verify_ssl=False)
653
+ connector=aiohttp.TCPConnector(verify_ssl=True)
654
654
  ) as session:
655
655
  async with session.post(f"{urlSimplifica}", data=data) as response:
656
656
  if response.status != 200: