def post(self): request_dict = request.get_json() if not request_dict: response = {'message': 'No input data provided'} return response, status.HTTP_400_BAD_REQUEST errors = blog_schema.validate(request_dict) if errors: return errors, status.HTTP_400_BAD_REQUEST try: category_name = request_dict['category']['name'] category = Category.query.filter_by(name=category_name).first() if category is None: # Create a new Category category = Category(name=category_name) db.session.add(category) # Now that we are sure we have a category # create a new Message blog = Blog(title=request_dict['title'], content=request_dict['content'], author=request_dict['author'], category=category) blog.add(blog) query = Blog.query.get(blog.id) result = blog_schema.dump(query).data return result, status.HTTP_201_CREATED except SQLAlchemyError as e: db.session.rollback() resp = jsonify({"error": str(e)}) return resp, status.HTTP_400_BAD_REQUEST
def new_post(): back = session['back'] session['back'] = request.endpoint title = "" body = "" id = "" editing = False current_user = User.get_user(session['email']) if request.method == 'GET': try: id = request.args.get('id') except: pass if id: blog = Blog.get(None, id) title = blog.title body = blog.body id = blog.id editing = True if request.method == "POST": title = request.form['title'] body = request.form['body'] try: editing = request.form['editing'] except: pass if editing: id = request.form['id'] if current_user and title and body: if not editing: blog = Blog(title, body, current_user, datetime.date.today().strftime('%b %d, %Y')) else: if id: blog = Blog.get(None, id) blog.title = title blog.body = body Blog.add(blog) return redirect("/blog?blog-id=" + str(blog.id)) else: flash("Please fill out all fields", "Error") return render_template("new_post.html", title=title, body=body, editing=editing, id=id, back=back)