except HTTPError, e: return e.error_response() if not item_list.user_can_update(auth_user): message = 'List cannot be modified by the user' logging.warn(message) return error_response(403, message) # Validate data for new item. params = web.input(data=None) try: if params.data: item_data = decode_json(params.data) else: item_data = decode_json(web.ctx.data) Item.validate(item_data) except ValueError, e: logging.warn(e) return error_response(400, 'Could not parse JSON') except ValidationError, e: logging.warn(e) return error_response(400, e.error) try: item = Item(item_data) item.set_creator(auth_user) item.save() item_added = item_list.add_item(item) if item_added: item_list.save() formatted_dict = item.formatted_dict()