From 31aa21b5a463a24821c1158d093052a0118f29c5 Mon Sep 17 00:00:00 2001 From: Vinoth Kannan Date: Mon, 27 Nov 2017 18:45:29 +0530 Subject: [PATCH] FIX: Error if queued post not found while updating --- app/controllers/queued_posts_controller.rb | 2 ++ config/locales/server.en.yml | 1 + spec/controllers/queued_posts_controller_spec.rb | 14 ++++++++++++++ 3 files changed, 17 insertions(+) diff --git a/app/controllers/queued_posts_controller.rb b/app/controllers/queued_posts_controller.rb index 52792338c57..3360b41f7b9 100644 --- a/app/controllers/queued_posts_controller.rb +++ b/app/controllers/queued_posts_controller.rb @@ -20,6 +20,8 @@ class QueuedPostsController < ApplicationController def update qp = QueuedPost.where(id: params[:id]).first + return render_json_error I18n.t('queue.not_found') if qp.blank? + update_params = params[:queued_post] qp.raw = update_params[:raw] if update_params[:raw].present? diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 9b0cf7a8cbc..0c4ad0ac05e 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -264,6 +264,7 @@ en: queue: delete_reason: "Deleted via post moderation queue" + not_found: "Post not found or already updated." groups: success: diff --git a/spec/controllers/queued_posts_controller_spec.rb b/spec/controllers/queued_posts_controller_spec.rb index 81713052487..ac88c50479c 100644 --- a/spec/controllers/queued_posts_controller_spec.rb +++ b/spec/controllers/queued_posts_controller_spec.rb @@ -31,6 +31,20 @@ describe QueuedPostsController do let!(:user) { log_in(:moderator) } let(:qp) { Fabricate(:queued_post) } + context 'not found' do + it 'returns json error' do + qp.destroy! + + put :update, params: { + id: qp.id, queued_post: { state: 'approved' } + }, format: :json + + expect(response.status).to eq(422) + + expect(eval(response.body)).to eq(described_class.new.create_errors_json(I18n.t('queue.not_found'))) + end + end + context 'approved' do it 'updates the post to approved' do