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:
def __init__(self, app, descriptor: Dict[str, Any]) -> None:
self.app = app
self.descriptor = descriptor
self.id_process = descriptor["idProcess"]
self.timezone = Timezone(app)
self.utils = Utils(app)
......@@ -57,7 +57,7 @@ class Process:
save = self.utils.save_result(result, self.descriptor, db_session)
if save["status"] == StatusEnum.ERROR.name:
raise InterruptedError(save["message"])
status_description = save["id"]
del result
except TimeoutError as e:
self.app.logger.error(f"Error de Timeout. Error: {e}")
......@@ -85,4 +85,4 @@ class Process:
self.app.logger.error(f"Error procesando engine - {self.descriptor['idProcess']}. {e}")
status, status_description = StatusEnum.ERROR, str(e)
finally:
return self.utils.create_response(status, status_description)
return self.utils.create_response(status, self.id_process, status_description)
import uuid
from typing import Dict, Any
from typing import Dict, Any, List
import os
import shutil
from enum import Enum
......@@ -48,18 +48,18 @@ class Utils:
finally:
return drop
def create_response(self, codeEnum: Enum, detail: str = "") -> Dict[str, Any]:
response = {"statusCode": codeEnum.value}
def create_response(self, codeEnum: Enum, id_process: int, detail: str = "") -> Dict[str, Any]:
response = {"idProcess": id_process, "params-output": {}}
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:
error = StatusEnum.ERROR.name
if codeEnum.value == CodeResponseEnum.TIMEOUT.value:
error = StatusEnum.TIMEOUT.name
description = DescResponseEnum[codeEnum.name].value
response.update({'status': error, 'message': description,
'detail': detail})
response["params-output"].update({'status': error, 'message': description,
'detail': detail})
return response
def create_result(self, data, descriptor):
......@@ -112,9 +112,12 @@ class Utils:
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-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-counterpart"] = str(i[FixedFieldsEnum.INTER_CTP_ID.value])
input_data["exclude-ids"] = str(i[FixedFieldsEnum.LISTA_DIFF.value])
input_data["list-ids-pivot"] = i[FixedFieldsEnum.INTER_PIVOT_ID.value] if isinstance(i[FixedFieldsEnum.INTER_PIVOT_ID.value], List) \
else json.loads(i[FixedFieldsEnum.INTER_PIVOT_ID.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])
result.append(input_data)
response['status'] = StatusEnum.OK.value
......@@ -134,7 +137,6 @@ class Utils:
result_json = json.dumps(result["detail"])
result_obj = ResultModel(
ID=None,
ACTION_ID=descriptor["idScript"],
ID_PROCESS=descriptor["idProcess"],
CREATE_DATE=d1,
......@@ -143,7 +145,9 @@ class Utils:
)
session.add(result_obj)
session.commit()
result_id = result_obj.ID
response['status'] = StatusEnum.OK.name
response["id"] = result_id
except Exception as e:
session.rollback()
response["status"] = StatusEnum.ERROR.name
......
......@@ -61,7 +61,7 @@ class MatchAndExcludeRecordsAction(ActionInterface):
self.identifier = descriptor["idProcess"]
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.pivot_params = pivot_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