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_item_update(item_id): 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'] item = Item.objects.get(id=ObjectId(item_id)) data = json.loads(request.data) form_data = item.to_form_data() for d in form_data: if d not in data: data.update({d: form_data[d]}) form = ItemForm.from_json(data) if form.validate(): item.title = data['title'] item.shop_name = data['shop_name'] item.price = data['price'] item.count = data['count'] item.magaz = data['magaz'] item.save() Telegram.push(message=u"Список покупок уточнен, добавил %s" % item.shop_name, chat_id=xchat_id) else: print form.errors item = Item.objects.get(id=ObjectId(item_id)) return json.dumps(item.as_api()), 200, {'Content-Type': 'application/json; charset=utf-8'}