def update_item_in_category(new_item, category_id, item_id): # Check existences of category and item category = Category.find_by_id(category_id) if not category: raise RecordNotFoundError('category', category_id) item = category.items.filter_by(id=item_id).first() if not item: raise ItemNotFoundError(item_id) # Check permission if item.user.id != get_jwt_identity(): raise ForbiddenError() # Save title of item for notification old_title = item.title # Check existences of item title title = new_item.title old_item = Item.find_by_title(title) if old_item and old_item.id != item_id: raise DuplicateValueError('item', 'title', title) # Update final result item.update_from_copy(new_item) item.save_to_db() return message('Item "{}" was updated.'.format(old_title))
def create_item_in_category(item, category_id): # Check existences of category category = Category.find_by_id(category_id) if not category: raise RecordNotFoundError('category', category_id) # Fill necessary fields item.user_id = get_jwt_identity() item.category_id = category_id # Check existences of item title title = item.title old_item = Item.find_by_title(title) if old_item: raise DuplicateValueError('item', 'title', title) item.save_to_db() return message('Item "{}" was created.'.format(item.title))