diff --git a/app/controllers/post_replacements_controller.rb b/app/controllers/post_replacements_controller.rb index 6b66cffe7..eebbedd81 100644 --- a/app/controllers/post_replacements_controller.rb +++ b/app/controllers/post_replacements_controller.rb @@ -14,6 +14,13 @@ class PostReplacementsController < ApplicationController respond_with(@post_replacement, location: @post) end + def update + @post_replacement = PostReplacement.find(params[:id]) + @post_replacement.update(update_params) + + respond_with(@post_replacement) + end + def index params[:search][:post_id] = params.delete(:post_id) if params.has_key?(:post_id) @post_replacements = PostReplacement.search(params[:search]).paginate(params[:page], limit: params[:limit]) @@ -25,4 +32,12 @@ private def create_params params.require(:post_replacement).permit(:replacement_url, :replacement_file, :final_source, :tags) end + + def update_params + params.require(:post_replacement).permit( + :file_ext_was, :file_size_was, :image_width_was, :image_height_was, :md5_was, + :file_ext, :file_size, :image_width, :image_height, :md5, + :original_url, :replacement_url + ) + end end diff --git a/config/routes.rb b/config/routes.rb index 9e8e17021..b2d602646 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -195,7 +195,7 @@ Rails.application.routes.draw do get :diff end end - resources :post_replacements, :only => [:index, :new, :create] + resources :post_replacements, :only => [:index, :new, :create, :update] resources :posts do resources :events, :only => [:index], :controller => "post_events" resources :replacements, :only => [:index, :new, :create], :controller => "post_replacements" diff --git a/test/functional/post_replacements_controller_test.rb b/test/functional/post_replacements_controller_test.rb index 84b9399a5..c4d05597e 100644 --- a/test/functional/post_replacements_controller_test.rb +++ b/test/functional/post_replacements_controller_test.rb @@ -43,6 +43,25 @@ class PostReplacementsControllerTest < ActionController::TestCase end end + context "update action" do + should "update the replacement" do + params = { + format: :json, + id: @post_replacement.id, + post_replacement: { + file_size_was: 23, + file_size: 42, + } + } + + put :update, params, { user_id: @user.id } + @post_replacement.reload + + assert_equal(23, @post_replacement.file_size_was) + assert_equal(42, @post_replacement.file_size) + end + end + context "index action" do should "render" do get :index, {format: :json}