Commit 777a777e authored by Roberto Loayza Miljanovich's avatar Roberto Loayza Miljanovich

Merge branch 'developer_ca' into 'developer'

Update output responde and timeout parameter to milliseconds

See merge request !6
parents e82162be 6e8362cf
...@@ -14,7 +14,7 @@ class Process: ...@@ -14,7 +14,7 @@ class Process:
def __init__(self, app, descriptor: Dict[str, Any]) -> None: def __init__(self, app, descriptor: Dict[str, Any]) -> None:
self.app = app self.app = app
self.descriptor = descriptor self.descriptor = descriptor
self.id_process = descriptor["idProcess"]
self.timezone = Timezone(app) self.timezone = Timezone(app)
self.utils = Utils(app) self.utils = Utils(app)
...@@ -57,7 +57,7 @@ class Process: ...@@ -57,7 +57,7 @@ class Process:
save = self.utils.save_result(result, self.descriptor, db_session) save = self.utils.save_result(result, self.descriptor, db_session)
if save["status"] == StatusEnum.ERROR.name: if save["status"] == StatusEnum.ERROR.name:
raise InterruptedError(save["message"]) raise InterruptedError(save["message"])
status_description = save["id"]
del result del result
except TimeoutError as e: except TimeoutError as e:
self.app.logger.error(f"Error de Timeout. Error: {e}") self.app.logger.error(f"Error de Timeout. Error: {e}")
...@@ -85,4 +85,4 @@ class Process: ...@@ -85,4 +85,4 @@ class Process:
self.app.logger.error(f"Error procesando engine - {self.descriptor['idProcess']}. {e}") self.app.logger.error(f"Error procesando engine - {self.descriptor['idProcess']}. {e}")
status, status_description = StatusEnum.ERROR, str(e) status, status_description = StatusEnum.ERROR, str(e)
finally: finally:
return self.utils.create_response(status, status_description) return self.utils.create_response(status, self.id_process, status_description)
import uuid import uuid
from typing import Dict, Any from typing import Dict, Any, List
import os import os
import shutil import shutil
from enum import Enum from enum import Enum
...@@ -48,17 +48,17 @@ class Utils: ...@@ -48,17 +48,17 @@ class Utils:
finally: finally:
return drop return drop
def create_response(self, codeEnum: Enum, detail: str = "") -> Dict[str, Any]: def create_response(self, codeEnum: Enum, id_process: int, detail: str = "") -> Dict[str, Any]:
response = {"statusCode": codeEnum.value} response = {"idProcess": id_process, "params-output": {}}
if codeEnum.value == StatusEnum.OK.value: if codeEnum.value == StatusEnum.OK.value:
response.update({'status': StatusEnum.OK.name, 'detail': detail}) response["params-output"].update({"result": StatusEnum.OK.name, 'id-result': str(detail)})
else: else:
error = StatusEnum.ERROR.name error = StatusEnum.ERROR.name
if codeEnum.value == CodeResponseEnum.TIMEOUT.value: if codeEnum.value == CodeResponseEnum.TIMEOUT.value:
error = StatusEnum.TIMEOUT.name error = StatusEnum.TIMEOUT.name
description = DescResponseEnum[codeEnum.name].value description = DescResponseEnum[codeEnum.name].value
response.update({'status': error, 'message': description, response["params-output"].update({'status': error, 'message': description,
'detail': detail}) 'detail': detail})
return response return response
...@@ -112,9 +112,12 @@ class Utils: ...@@ -112,9 +112,12 @@ class Utils:
input_data["key-transaction"] = str(key_transaction) input_data["key-transaction"] = str(key_transaction)
input_data["key-group-pivot"] = "" if key_group_pivot is None else str(key_group_pivot) input_data["key-group-pivot"] = "" if key_group_pivot is None else str(key_group_pivot)
input_data["key-group-counterpart"] = "" if key_group_counterpart is None else str(key_group_counterpart) input_data["key-group-counterpart"] = "" if key_group_counterpart is None else str(key_group_counterpart)
input_data["list-ids-pivot"] = str(i[FixedFieldsEnum.INTER_PIVOT_ID.value]) input_data["list-ids-pivot"] = i[FixedFieldsEnum.INTER_PIVOT_ID.value] if isinstance(i[FixedFieldsEnum.INTER_PIVOT_ID.value], List) \
input_data["list-ids-counterpart"] = str(i[FixedFieldsEnum.INTER_CTP_ID.value]) else json.loads(i[FixedFieldsEnum.INTER_PIVOT_ID.value])
input_data["exclude-ids"] = str(i[FixedFieldsEnum.LISTA_DIFF.value]) input_data["list-ids-counterpart"] = i[FixedFieldsEnum.INTER_CTP_ID.value] if isinstance(i[FixedFieldsEnum.INTER_CTP_ID.value], List) \
else json.loads(i[FixedFieldsEnum.INTER_CTP_ID.value])
input_data["exclude-ids"] = i[FixedFieldsEnum.LISTA_DIFF.value] if isinstance(i[FixedFieldsEnum.LISTA_DIFF.value], List) \
else json.loads(i[FixedFieldsEnum.LISTA_DIFF.value])
input_data["difference-amount"] = str(i[FixedFieldsEnum.DIFF.value]) input_data["difference-amount"] = str(i[FixedFieldsEnum.DIFF.value])
result.append(input_data) result.append(input_data)
response['status'] = StatusEnum.OK.value response['status'] = StatusEnum.OK.value
...@@ -134,7 +137,6 @@ class Utils: ...@@ -134,7 +137,6 @@ class Utils:
result_json = json.dumps(result["detail"]) result_json = json.dumps(result["detail"])
result_obj = ResultModel( result_obj = ResultModel(
ID=None,
ACTION_ID=descriptor["idScript"], ACTION_ID=descriptor["idScript"],
ID_PROCESS=descriptor["idProcess"], ID_PROCESS=descriptor["idProcess"],
CREATE_DATE=d1, CREATE_DATE=d1,
...@@ -143,7 +145,9 @@ class Utils: ...@@ -143,7 +145,9 @@ class Utils:
) )
session.add(result_obj) session.add(result_obj)
session.commit() session.commit()
result_id = result_obj.ID
response['status'] = StatusEnum.OK.name response['status'] = StatusEnum.OK.name
response["id"] = result_id
except Exception as e: except Exception as e:
session.rollback() session.rollback()
response["status"] = StatusEnum.ERROR.name response["status"] = StatusEnum.ERROR.name
......
...@@ -61,7 +61,7 @@ class MatchAndExcludeRecordsAction(ActionInterface): ...@@ -61,7 +61,7 @@ class MatchAndExcludeRecordsAction(ActionInterface):
self.identifier = descriptor["idProcess"] self.identifier = descriptor["idProcess"]
self.max_combinations = configs["max-records-per-combinations"] self.max_combinations = configs["max-records-per-combinations"]
self.timeout = configs["max-timeout-per-combinations"] self.timeout = int(configs["max-timeout-per-combinations"]) // 1000 # Miliseconds
self.exclude_pivot = configs["exclude-entity-pivot"] self.exclude_pivot = configs["exclude-entity-pivot"]
self.pivot_params = pivot_params self.pivot_params = pivot_params
self.ctp_params = ctp_params self.ctp_params = ctp_params
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment