def create_post(): """Creates a new post with a new id""" if not request.json: abort(400) form = PostEditForm.from_json(request.json, skip_unkown_keys=False) if form.validate(): post = Post(json=form.data) objId = mongo.db.posts.insert(post.to_bson()) post.id = str(objId) return jsonify(**post.to_dict()), 201 else: abort(400)
def edit_post(post_id): """Replaces post behind id with submitted one""" post_d = mongo.db.posts.find_one(post_id) if post_d is None: abort(404) form = PostEditForm.from_json(request.json, skip_unknown_keys=False) if form.validate(): post = Post(bson=post_d) post.update(form.data) query = {'_id': post_id} mongo.db.posts.update(query, post.to_bson()) # needed for chaining multiple edits together token = generate_csrf_token() return jsonify(_csrf=token, **post.to_dict()) else: print form.errors #TODO abort(400)