Ejemplo n.º 1
0
async def create_order(
    order_body: OrderModel,
    identity: Optional[str] = Depends(get_jwt_identity_optional)):
    try:
        products = []
        for p in order_body.items:
            product: Product = Product.objects.get(id=p.id)
            products.append(
                CartItem(product=product, qty=p.qty, price=product.price))
        order = Order(orderer=identity,
                      orderStatus='not placed',
                      gateway=order_body.gateway,
                      products=products)
        order.save()
        return str(order.id)
    except DoesNotExist:
        raise SchemaValidationError().http_exception
    except Exception as e:
        raise e
Ejemplo n.º 2
0
def results():
    # build a request object
    req = request.get_json(force=True)
    session = str(req.get('session')).split('/')[-1]
    order_session = Order(session=session)
    if Order.objects(session=session) is None:
        order_session.save()

    # fetch action from json
    action = req.get('queryResult').get('action')
    parameters = req.get('queryResult').get('parameters')
    if action == 'getting.started':
        return {'fulfillmentText': 'webhook works'}

    elif action == 'delivery.product.add' or action == 'delivery.search' or action == 'delivery.order.add':
        reply = add_products(parameters, session)
    elif action == 'delivery.product.remove':
        reply = delete_products(parameters, session)
    elif action == 'delivery.product.swap':
        reply = update_products(parameters, session)
    elif action == 'delivery.order.check':
        reply = check_order()

    return reply