in modular_api/helpers/decorators.py [0:0]
def produce_audit(secured_params=None):
"""
Creates audit event and publishes after successful execution.
:param secured_params: names of secured parameters - they won't be
included to audit event.
:return:
"""
def real_wrapper(func):
@wraps(func)
def wrapper(*args, **kwargs):
group, command = get_command_info(func=func)
parameters = deepcopy(kwargs)
for param, value in kwargs.items():
if secured_params and param in secured_params:
parameters[param] = '*****'
try:
func_result = func(*args, **kwargs)
except ModularApiBaseException as e:
raise e
SERVICE_PROVIDER.audit_service.save_audit(
group=group,
command=command,
timestamp=utc_time_now().isoformat(),
parameters=json.dumps(parameters),
result=func_result.message if func_result.message else str(func_result.items),
warnings=func_result.warnings
)
return func_result
return wrapper
return real_wrapper