Ejemplo n.º 1
0
def cart_items():
    xchat_id = request.headers.get('X-Fridge-chat-id', None)
    if xchat_id is None or xchat_id == {} or xchat_id == "{}":
        xchat_id = app.config['DEFAULT_ROOM']
    print 'cart_items add'
    print xchat_id
    cart = CartController.get_or_create(chat_id=xchat_id)

    data = json.loads(request.data)
    words = Items.filterWords(data['title'])
    if len(words) == 0:
        return json.dumps({'error': 'can not add product'}), 400, {'Content-Type': 'application/json; charset=utf-8'}

    data['title'] = " ".join(words)

    items = Item.objects(title=data['title'], cart_id=cart.id)
    if len(items) > 0:
        return json.dumps(items[0].as_api()), 200, {'Content-Type': 'application/json; charset=utf-8'}

    form = ItemForm.from_json(data)
    if form.validate():
        print 'creating product'
        data = form.data
        data.update({'cart_id': cart.id})
        item = Item(**data)
        item.save()
        return json.dumps(item.as_api()), 200, {'Content-Type': 'application/json; charset=utf-8'}
    else:
        return json.dumps({'error': 'can not add product'}), 400, {'Content-Type': 'application/json; charset=utf-8'}
Ejemplo n.º 2
0
def cart_delete():
    xchat_id = request.headers.get('X-Fridge-chat-id', None)
    if xchat_id is None or xchat_id == {} or xchat_id == "{}":
        xchat_id = app.config['DEFAULT_ROOM']
    cart = CartController.get_or_create(chat_id=xchat_id)

    items = Item.objects(cart_id=cart.id)
    for item in items:
        item.delete()
    Cart.objects.get(chat_id=xchat_id).delete()

    Telegram.push(message=u"Корзина удалена", chat_id=xchat_id)
    return json.dumps({}), 200, {'Content-Type': 'application/json; charset=utf-8'}
Ejemplo n.º 3
0
def cart_items_list():
    xview = request.headers.get('X-Fridge-view', None)
    xchat_id = request.headers.get('X-Fridge-chat-id', None)
    if xchat_id is None or xchat_id == {} or xchat_id == "{}":
        xchat_id = app.config['DEFAULT_ROOM']
    cart = CartController.get_or_create(chat_id=xchat_id)
    items = Item.objects(cart_id=cart.id)

    if xview == 'ios':
        if cart.status == 'confirmed':
            data = ItemShopController.items_as_ios(items)
        else:
            data = ItemController.items_as_ios(items)
    else:
        data = ItemController.items_as_dict(items)

    return json.dumps(data), 200, {'Content-Type': 'application/json; charset=utf-8'}
Ejemplo n.º 4
0
def query():
    xchat_id = request.headers.get('X-Fridge-chat-id', None)
    if xchat_id is None or xchat_id == {} or xchat_id == "{}":
        xchat_id = app.config['DEFAULT_ROOM']
    cart = CartController.get_or_create(chat_id=xchat_id)

    q = request.args.get('q', None)
    words = Items.filterWords(q)
    words = list(set(words))
    for w in words:
        items = Item.objects(title=w, cart_id=cart.id)
        if len(items) > 0:
            continue

        item = Item(title=w, cart_id=cart.id)
        item.save()
        Telegram.push(message=u"Добавил %s" % w, chat_id=xchat_id)
    return json.dumps({}), 200, {'Content-Type': 'application/json; charset=utf-8'}
Ejemplo n.º 5
0
def cart_item_del(item_id):
    Item.objects(id=ObjectId(item_id)).delete()
    return json.dumps({}), 200, {'Content-Type': 'application/json; charset=utf-8'}