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})
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})
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})
def every(request: HttpRequest) -> HttpResponse: return wrap_data({"categories": db_interface.category.every()})
def daily_wholesale(_: HttpRequest): return wrap_data({"product": db_interface.product.get_daily_wholesale()})
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)