26 lines
770 B
Python
26 lines
770 B
Python
from fastapi import HTTPException, status
|
|
from app.db.schemas import ErrorCreate
|
|
from app.db.session import SessionLocal
|
|
from app.db.crud import create_log
|
|
|
|
class APIException(Exception):
|
|
|
|
def __init__(self,location:str,title:str,content:str,e:Exception):
|
|
if(str(e) == ''):
|
|
content += e.detail
|
|
self.detail = e.detail
|
|
self.status_code = e.status_code
|
|
else:
|
|
self.detail = str(e)
|
|
content += str(e)
|
|
self.status_code = 500
|
|
if(len(content) > 5000):
|
|
content =content[0:5000]
|
|
self.error = ErrorCreate(location=location,title=title,content=content)
|
|
|
|
def writedblog(exc: APIException):
|
|
db = SessionLocal()
|
|
try:
|
|
create_log(db,exc.error)
|
|
finally:
|
|
db.close() |