Beispiel #1
0
 async def inner():
     args = g.to_data()
     j = await ztk.guess_you_like(args)
     if j.status == 200:
         return ApiResp.from_data(j.content)
     else:
         return ApiResp.from_errno(AppErrno.ztk_error, str(j.content))
 async def inner():
     args = ItemDetailV2Args(tao_id=item_id)
     j = await ztk.item_detail_v2(args)
     if j.status == 200:
         return ApiResp.from_data(j.content)
     else:
         return ApiResp.from_errno(AppErrno.ztk_error, "请求详细数据失败")
Beispiel #3
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()
Beispiel #4
0
 async def inner():
     j = await dtk.goods_search_suggestion(g)
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     ret_list = []
     for data in j:
         ret_list.append(data.kw)
     return ApiResp.from_data(ret_list)
Beispiel #5
0
    async def init():
        args = await g.to_data(g, logger)
        if args is None:  # 渠道 ID 信息可以没有 [客户端需要判断有渠道 ID 的信息]
            # 在 iOS 上, 因为 iOS 的审核,所以支持不需要 绑定淘宝 也支持购买
            # 在 android 上,必须绑定才允许购买
            return ApiResp.from_errno(AppErrno.no_channel_id)

        logic = ZTKLogic(logger)
        item = await logic.gao_yong(args)
        if item is None:  # 获取数据失败
            logger.error("get gao yong data failed")
            return ApiResp.from_data(None)
        else:
            # 获取数据成功
            return ApiResp.from_data(item)
Beispiel #6
0
def convert_exception_to_api_ret(e: ApiException) -> ApiResp:
    """
    把异常转换成错误的返回值

    :param e:
    :return:
    """
    if isinstance(e, TokenException):
        return ApiResp.from_errno(AppErrno.token_invalid,
                                  "您的认证凭证已经 过期/失效 ,请尝试重新登录")
    elif isinstance(e, UserNotExistsException):
        return ApiResp.from_errno(AppErrno.user_not_exists, "账号不存在")
    elif isinstance(e, TbNotBindException):
        return ApiResp.from_errno(AppErrno.no_channel_id, "没有淘宝授权")
    elif isinstance(e, ItemNotFoundException):
        return ApiResp.from_errno(AppErrno.item_not_found, "没有找到指定商品的优惠信息")
    elif isinstance(e, AuthFailedException):
        return ApiResp.from_errno(AppErrno.code_error, "验证码错误或者已经失效")
    elif isinstance(e, ZtkException):
        return ApiResp.from_errno(AppErrno.ztk_error, "请求第三方接口失败, 请稍后再试")
    else:
        return ApiResp.from_errno(AppErrno.system, "系统内部错误")
Beispiel #7
0
 async def inner():
     j = await tbk.get_goods_detail(args.tao_id)
     if j is None:
         return ApiResp.from_errno(AppErrno.tbk_error)
     return ApiResp.from_data(j)
Beispiel #8
0
 async def inner():
     j = await dtk.tb_service_get_privilege_link(args)
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     return ApiResp.from_data(j)
Beispiel #9
0
 async def inner():
     j = await dtk.goods_get_ranking_list(args)
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     return ApiResp.from_data(j)
Beispiel #10
0
 async def inner():
     j = await dtk.category_get_top100()
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     return ApiResp.from_data(j.hotWords)
Beispiel #11
0
 async def inner():
     j = await dtk.tb_service_get_brand_list(g)
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     return ApiResp.from_data(j)
Beispiel #12
0
 async def inner():
     j = await tbk.get_brand_list(args.page_id)
     if j is None:
         return ApiResp.from_errno(AppErrno.tbk_error)
     return ApiResp.from_data(j)
 async def inner():
     j = await dtk.goods_get_dtk_search_goods(args)
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     return ApiResp.from_data(j)
Beispiel #14
0
 async def inner():
     j = await dtk.category_get_super_category()
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     return ApiResp.from_data(j)
Beispiel #15
0
 async def inner():
     j = await dtk.category_ddq_goods_list(g)
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     out = j[0]
     return ApiResp.from_data(out)
Beispiel #16
0
 async def inner():
     j = await dtk.goods_explosive_goods_list(g)
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     return ApiResp.from_data(j)
Beispiel #17
0
 async def inner():
     j = await dtk.goods_price_trend(args)
     if j is None:
         return ApiResp.from_errno(AppErrno.dtk_error)
     return ApiResp.from_data(j)