updated userlogger in API to pass HTTPError to client

pull/67/head
13621160019@163.com 2021-09-04 15:41:06 +08:00 committed by Caozhenhui
parent 13efbfc516
commit 859ed6826c
1 changed files with 17 additions and 6 deletions

View File

@ -6,6 +6,7 @@ from datetime import datetime
import uuid import uuid
from gunicorn.http.body import Body from gunicorn.http.body import Body
import simplejson as json import simplejson as json
import falcon
def write_log(user_uuid, request_method, resource_type, resource_id, request_body): def write_log(user_uuid, request_method, resource_type, resource_id, request_body):
@ -33,7 +34,7 @@ def write_log(user_uuid, request_method, resource_type, resource_id, request_bod
)) ))
cnx.commit() cnx.commit()
except Exception as e: except Exception as e:
print(str(e)) print('write_log:' + str(e))
finally: finally:
if cnx: if cnx:
cnx.disconnect() cnx.disconnect()
@ -72,12 +73,15 @@ def user_logger(func):
raw_json = reads.decode('utf-8') raw_json = reads.decode('utf-8')
with open(file_name, "rb") as fr: with open(file_name, "rb") as fr:
req.stream = Body(fr) req.stream = Body(fr)
os.remove(file_name)
func(*args, **kwargs) func(*args, **kwargs)
write_log(user_uuid=user_uuid, request_method='POST', resource_type=class_name, write_log(user_uuid=user_uuid, request_method='POST', resource_type=class_name,
resource_id=kwargs.get('id_'), request_body=raw_json) resource_id=kwargs.get('id_'), request_body=raw_json)
os.remove(file_name)
except Exception as e: except Exception as e:
print('user_logger:' + str(e)) if isinstance(e, falcon.HTTPError):
raise e
else:
print('user_logger:' + str(e))
return return
elif func_name == "on_put": elif func_name == "on_put":
try: try:
@ -88,12 +92,16 @@ def user_logger(func):
raw_json = reads.decode('utf-8') raw_json = reads.decode('utf-8')
with open(file_name, "rb") as fr: with open(file_name, "rb") as fr:
req.stream = Body(fr) req.stream = Body(fr)
os.remove(file_name)
func(*args, **kwargs) func(*args, **kwargs)
write_log(user_uuid=user_uuid, request_method='PUT', resource_type=class_name, write_log(user_uuid=user_uuid, request_method='PUT', resource_type=class_name,
resource_id=kwargs.get('id_'), request_body=raw_json) resource_id=kwargs.get('id_'), request_body=raw_json)
os.remove(file_name)
except Exception as e: except Exception as e:
print('user_logger:' + str(e)) if isinstance(e, falcon.HTTPError):
raise e
else:
print('user_logger:' + str(e))
return return
elif func_name == "on_delete": elif func_name == "on_delete":
try: try:
@ -101,7 +109,10 @@ def user_logger(func):
write_log(user_uuid=user_uuid, request_method="DELETE", resource_type=class_name, write_log(user_uuid=user_uuid, request_method="DELETE", resource_type=class_name,
resource_id=kwargs.get('id_'), request_body=json.dumps(kwargs)) resource_id=kwargs.get('id_'), request_body=json.dumps(kwargs))
except Exception as e: except Exception as e:
print('user_logger:' + str(e)) if isinstance(e, falcon.HTTPError):
raise e
else:
print('user_logger:' + str(e))
return return
return logger return logger