Add /post_replacements.json, /posts/1234/replacements.json.
This commit is contained in:
11
app/controllers/post_replacements_controller.rb
Normal file
11
app/controllers/post_replacements_controller.rb
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
class PostReplacementsController < ApplicationController
|
||||||
|
respond_to :html, :xml, :json
|
||||||
|
before_filter :approver_only, except: [:index]
|
||||||
|
|
||||||
|
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])
|
||||||
|
|
||||||
|
respond_with(@post_replacements)
|
||||||
|
end
|
||||||
|
end
|
||||||
@@ -61,4 +61,32 @@ class PostReplacement < ActiveRecord::Base
|
|||||||
post.distribute_files
|
post.distribute_files
|
||||||
post.update_iqdb_async
|
post.update_iqdb_async
|
||||||
end
|
end
|
||||||
|
|
||||||
|
module SearchMethods
|
||||||
|
def search(params = {})
|
||||||
|
q = all
|
||||||
|
|
||||||
|
if params[:creator_id].present?
|
||||||
|
q = q.where(creator_id: params[:creator_id].split(",").map(&:to_i))
|
||||||
|
end
|
||||||
|
|
||||||
|
if params[:creator_name].present?
|
||||||
|
q = q.where(creator_name: User.name_to_id(params[:creator_name]))
|
||||||
|
end
|
||||||
|
|
||||||
|
if params[:id].present?
|
||||||
|
q = q.where(id: params[:id].split(",").map(&:to_i))
|
||||||
|
end
|
||||||
|
|
||||||
|
if params[:post_id].present?
|
||||||
|
q = q.where(post_id: params[:post_id].split(",").map(&:to_i))
|
||||||
|
end
|
||||||
|
|
||||||
|
q = q.order("created_at DESC")
|
||||||
|
|
||||||
|
q
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
extend SearchMethods
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -199,6 +199,7 @@ Rails.application.routes.draw do
|
|||||||
end
|
end
|
||||||
resources :posts do
|
resources :posts do
|
||||||
resources :events, :only => [:index], :controller => "post_events"
|
resources :events, :only => [:index], :controller => "post_events"
|
||||||
|
resources :replacements, :only => [:index], :controller => "post_replacements"
|
||||||
resource :artist_commentary, :only => [:index, :show] do
|
resource :artist_commentary, :only => [:index, :show] do
|
||||||
collection { put :create_or_update }
|
collection { put :create_or_update }
|
||||||
member { put :revert }
|
member { put :revert }
|
||||||
@@ -217,6 +218,7 @@ Rails.application.routes.draw do
|
|||||||
end
|
end
|
||||||
resources :post_appeals
|
resources :post_appeals
|
||||||
resources :post_flags
|
resources :post_flags
|
||||||
|
resources :post_replacements, :only => [:index]
|
||||||
resources :post_versions, :only => [:index, :search] do
|
resources :post_versions, :only => [:index, :search] do
|
||||||
member do
|
member do
|
||||||
put :undo
|
put :undo
|
||||||
|
|||||||
6
test/factories/post_replacement.rb
Normal file
6
test/factories/post_replacement.rb
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
FactoryGirl.define do
|
||||||
|
factory(:post_replacement) do
|
||||||
|
original_url { FFaker::Internet.http_url }
|
||||||
|
replacement_url { FFaker::Internet.http_url }
|
||||||
|
end
|
||||||
|
end
|
||||||
21
test/functional/post_replacements_controller_test.rb
Normal file
21
test/functional/post_replacements_controller_test.rb
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class PostReplacementsControllerTest < ActionController::TestCase
|
||||||
|
context "The post replacements controller" do
|
||||||
|
setup do
|
||||||
|
@user = FactoryGirl.create(:user, can_approve_posts: true)
|
||||||
|
CurrentUser.user = @user
|
||||||
|
CurrentUser.ip_addr = "127.0.0.1"
|
||||||
|
|
||||||
|
@post = FactoryGirl.create(:post)
|
||||||
|
@post_replacement = FactoryGirl.create(:post_replacement, post_id: @post.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
context "index action" do
|
||||||
|
should "render" do
|
||||||
|
get :index, {format: :json}
|
||||||
|
assert_response :success
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user