From bfdd42c53a947b68f83ec9dc4d88ea200213c5f8 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Fri, 14 Feb 2020 10:48:56 -0500 Subject: [PATCH] FIX: Return a 404 when the `draft_key` is missing Previously if `draft_key` was missing you'd get a 500 error in the logs. --- app/controllers/draft_controller.rb | 2 ++ spec/requests/draft_controller_spec.rb | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/app/controllers/draft_controller.rb b/app/controllers/draft_controller.rb index 9537634cd74..8fb9c0a6eb2 100644 --- a/app/controllers/draft_controller.rb +++ b/app/controllers/draft_controller.rb @@ -11,6 +11,8 @@ class DraftController < ApplicationController end def update + raise Discourse::NotFound.new if params[:draft_key].blank? + sequence = begin Draft.set( diff --git a/spec/requests/draft_controller_spec.rb b/spec/requests/draft_controller_spec.rb index 161980b143e..7663a5118d6 100644 --- a/spec/requests/draft_controller_spec.rb +++ b/spec/requests/draft_controller_spec.rb @@ -21,6 +21,12 @@ describe DraftController do expect(Draft.get(user, 'xyz', 0)).to eq(%q({"my":"data"})) end + it "returns 404 when the key is missing" do + user = sign_in(Fabricate(:user)) + post "/draft.json", params: { data: { my: "data" }.to_json, sequence: 0 } + expect(response.status).to eq(404) + end + it 'checks for an conflict on update' do user = sign_in(Fabricate(:user)) post = Fabricate(:post, user: user)