示例#1
0
    async def wrapper(func: Callable[[User], Any]):
        try:
            logic = UserV2Logic(logger)

            user = await logic.get_user_by_token(token)
            if user is None:
                return ApiResp.from_errno(AppErrno.auth_failed).to_dict()

            ret = await func(user)
            if isinstance(ret, ApiResp):
                return ret.to_dict()
            else:
                return ret
        except ApiException as e:
            tb = traceback.format_tb(e.__traceback__)
            logger.bind(exec=e, tb=tb).error("内部处理错误")

            return convert_exception_to_api_ret(e).to_dict()
        except InterfaceError:  # 数据库连接失败
            connection.close()
            logger.error("数据库错误")
            return ApiResp.system_error().to_dict()
        except Exception as e:
            tb = traceback.format_tb(e.__traceback__)
            logger.bind(exce=e, tb=tb).error("其他严重错误")

            return ApiResp.system_error().to_dict()
示例#2
0
    async def wrapper(func: Callable):
        try:
            ret = await func()
            if isinstance(ret, ApiResp):
                return ret.to_dict()
            else:
                return ret
        except ApiException as e:
            tb = traceback.format_tb(e.__traceback__)
            logger.bind(exec=e, tb=tb).error("内部处理错误")
            return convert_exception_to_api_ret(e).to_dict()
        except InterfaceError:  # 数据库连接失败
            connection.close()
            logger.error("数据库错误")
            return ApiResp.system_error().to_dict()
        except Exception as e:
            tb = traceback.format_tb(e.__traceback__)
            logger.bind(exce=e, tb=tb).error("其他严重错误")

            return ApiResp.system_error().to_dict()