def put(self, _id): data = Post.parser.parse_args() if len(data['title']) > Configuration.MAX_POST_TITLE_SIZE: return { 'message': 'A title\'s length is more than {}'.format( Configuration.MAX_POST_TITLE_SIZE) } category = data['category_id'] if category: if not CM.query.filter(CM.id == category).first(): return { 'message': 'There is no such category: \'{}\''.format(category) } tag_names = data['tags'] if tag_names: tags = get_tags(tag_names) else: tags = [] comments_id = data['comments'] if comments_id: comments = get_comments(comments_id) else: comments = [] del data['tags'] del data['category_id'] del data['comments'] post = PostModel.find_by_id(_id) if not post: post = PostModel(**data) if tags: post = get_item_tags(tags, post) if comments: post = get_item_comments(comments, post) else: post.title = data['title'] post.body = data['body'] post.user_id = data['user_id'] post.is_published = data['is_published'] post.category_id = category post.tags = [] post.comments = [] if tags: post = get_item_tags(tags, post) if comments: post = get_item_comments(comments, post) try: post.save_to_db() except SQLAlchemyError as e: err = str(e.__class__.__name__) return {'message': '{}'.format(err)}, 500 return post.get_json(), 201
def put(self, name): data = Post.parser.parse_args() post = PostModel.find_by_title(name) if post is None: post = PostModel(data['title'], data['desc']) else: post.title = data['title'] post.desc = data['desc'] post.save_to_db() return post.json()
def put(self, post_id): data = Post.parser.parse_args() post = PostModel.find_by_id(post_id) if post is None: post = PostModel(post_id, data['title']) else: post.title = data['title'] post.save_to_db() return post.json()