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'}
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'}
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'}
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'}
def cart_item_del(item_id): Item.objects(id=ObjectId(item_id)).delete() return json.dumps({}), 200, {'Content-Type': 'application/json; charset=utf-8'}