Exemplo n.º 1
0
 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, "请求详细数据失败")
Exemplo n.º 2
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()
Exemplo n.º 3
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))
Exemplo n.º 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)
Exemplo n.º 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)
Exemplo n.º 6
0
 async def inner():
     ol = OrderLogic(logger)
     data_list = await ol.order_list(form.token, form.typ, form.page)
     ret_list = list(map(lambda x: vars(x), data_list))
     d = ApiResp.from_data(ret_list).to_dict()
     ret = OrderListResponseModel(**d)
     # convert status to str
     for item in ret.data:
         item.set_status_str()
     return ret
Exemplo n.º 7
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()
Exemplo n.º 8
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, "系统内部错误")
Exemplo n.º 9
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)
Exemplo n.º 10
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)
Exemplo n.º 11
0
 async def inner():
     data = f.to_data()
     j = await ztk.search(data)
     return ApiResp.from_data(j.content).to_dict()
Exemplo n.º 12
0
 async def inner():
     args = SuggestArgs(content=content)
     j = await ztk.suggest(args)
     return ApiResp.from_data(j).to_dict()
Exemplo n.º 13
0
 async def inner():
     data = await ztk.keyword()
     return ApiResp(data=data).to_dict()
Exemplo n.º 14
0
 async def inner():
     data = g.to_data()
     j = await ztk.bang_dan_tui_jian(data)
     return ApiResp.from_data(j).to_dict()
Exemplo n.º 15
0
 async def inner():
     j = await tbk.get_brand_goods(args.brand_id, args.page_id)
     return ApiResp.from_data(j)
Exemplo n.º 16
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)
Exemplo n.º 17
0
 async def inner():
     data = g.to_data()
     j = await ztk.ju_hua_suan(data)
     return ApiResp.from_data(j.content).to_dict()
Exemplo n.º 18
0
 async def inner(user: User):
     ul = UserLogic(logger)
     data = await ul.profile(user=user)
     return ApiResp.from_data(data)
Exemplo n.º 19
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)
Exemplo n.º 20
0
 async def inner():
     logic = UserV2Logic(logger)
     await logic.ensure_bind_tb(g.token)
     return ApiResp.from_data(True)
Exemplo n.º 21
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)
Exemplo n.º 22
0
 async def inner():
     user = UserV2Logic(logger)
     ret = await user.cancel_user_account(g.token)
     return ApiResp.from_data(ret)
Exemplo n.º 23
0
 async def inner():
     data = g.to_data()
     j = await ztk.nine_nine(data)
     return ApiResp.from_data(j).to_dict()
Exemplo n.º 24
0
 async def inner():
     data = g.to_data()
     j = await ztk.tmall_chao_shi(data)
     return ApiResp.from_data(j).to_dict()
Exemplo n.º 25
0
 async def inner():
     logic = ShareLogic(logger)
     tkl = await logic.share_item(g.item_id, g.token, False)
     logger.bind(tkl=tkl, item_id=g.item_id).info("create tkl")
     return ApiResp.from_data(tkl)
Exemplo n.º 26
0
 async def inner():
     logic = SysLogic(logger)
     data = await logic.get_sys_config()
     return ApiResp.from_data(data)
Exemplo n.º 27
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)
Exemplo n.º 28
0
 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)
Exemplo n.º 29
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)
Exemplo n.º 30
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)