コード例 #1
0
def new(request: HttpRequest) -> HttpResponse:
    if not validator.validate_order(request):
        return wrap_response.wrap_error('Запрос не валидирован')

    body = json.loads(request.body)
    items = [{
        "product_weight_id": item['productId'],
        "quantity": item['quantity']
    } for item in body.get('items')]

    try:
        items = db_interface.item.add_product_objects(items)
    except Product.DoesNotExist:
        return wrap_response.wrap_error('Неправильный id продукта')

    order = db_interface.order.create(
        name=body.get("name"),
        phone=body.get("phone"),
        email=body.get("email"),
        address=body.get("address"),
        comment=body.get("comment"),
        retail=body.get("retail"),
        items=items,
    )

    return wrap_response.wrap_data({'id': order.id, 'key': order.hash})
コード例 #2
0
def get(request: HttpRequest, order_id: int) -> HttpResponse:
    # noinspection PyCallByClass
    key = request.GET.get(key='key')
    if key is None:
        return wrap_response.wrap_error("Нет передан ключ")

    try:
        instance = db_interface.order.by_id(order_id, key)
    except Order.DoesNotExist:
        return wrap_response.wrap_error("Нет заказа с таким номером", 404)

    return wrap_response.wrap_data({'order': instance})
コード例 #3
0
def preview_every(request: HttpRequest) -> HttpResponse:
    # noinspection PyCallByClass,PyTypeChecker
    category_id = request.GET.get('categoryId', None)
    # noinspection PyCallByClass,PyTypeChecker
    retail = request.GET.get('retail', None)
    # noinspection PyCallByClass,PyTypeChecker
    product_ids_raw = request.GET.get('productIds', None)

    retail = {'true': True, 'false': False}.get(retail)
    if product_ids_raw:
        try:
            product_ids_list = [int(p) for p in product_ids_raw.split(',')]
            return wrap_data(
                {
                    'products': db_interface.product.preview_by_ids(
                        product_ids_list
                    )
                }
            )
        except ValueError:
            return wrap_error('Не удалось преобразовать id')

    products = db_interface.product.preview_every(category_id, retail)
    return wrap_data({"products": products})
コード例 #4
0
def every(request: HttpRequest) -> HttpResponse:
    return wrap_data({"categories": db_interface.category.every()})
コード例 #5
0
def daily_wholesale(_: HttpRequest):
    return wrap_data({"product": db_interface.product.get_daily_wholesale()})
コード例 #6
0
def full_by_id(_: HttpRequest, product_weight_id: int) -> HttpResponse:
    try:
        product = db_interface.product.full_by_id(product_weight_id)
        return wrap_data({"product": product})
    except Product.DoesNotExist:
        return wrap_error('Товар с таким id не найден', 404)