From 1288889e52713da40280ca454c85e4c6faa86181 Mon Sep 17 00:00:00 2001 From: r888888888 Date: Thu, 19 Nov 2015 13:44:04 -0800 Subject: [PATCH] add edit option for saved searches --- app/controllers/saved_searches_controller.rb | 10 +++++++++ app/models/saved_search.rb | 23 ++++++++++++++++++++ config/routes.rb | 2 +- 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/app/controllers/saved_searches_controller.rb b/app/controllers/saved_searches_controller.rb index 5a35b2b34..d3cb5f6f1 100644 --- a/app/controllers/saved_searches_controller.rb +++ b/app/controllers/saved_searches_controller.rb @@ -37,6 +37,16 @@ class SavedSearchesController < ApplicationController @saved_search.destroy end + def edit + @saved_search = saved_searches.find(params[:id]) + end + + def update + @saved_search = saved_searches.find(params[:id]) + @saved_search.update_attributes(params[:saved_search]) + respond_with(@saved_search, :location => saved_searches_path) + end + private def saved_searches diff --git a/app/models/saved_search.rb b/app/models/saved_search.rb index e46ce9102..39412c80a 100644 --- a/app/models/saved_search.rb +++ b/app/models/saved_search.rb @@ -30,6 +30,23 @@ class SavedSearch < ActiveRecord::Base http.request(req) end end + + def update_listbooru_on_update(user_id, old_name, old_query, new_name, new_query) + return unless Danbooru.config.listbooru_auth_key + uri = URI.parse("#{Danbooru.config.listbooru_server}/searches") + Net::HTTP.start(uri.host, uri.port) do |http| + req = Net::HTTP::Put.new("/searches") + req.set_form_data( + "user_id" => user_id, + "old_name" => old_name.try(:downcase), + "old_query" => old_query, + "new_name" => new_name.try(:downcase), + "new_query" => new_query, + "key" => Danbooru.config.listbooru_auth_key + ) + http.request(req) + end + end end def update_listbooru_on_create @@ -41,6 +58,11 @@ class SavedSearch < ActiveRecord::Base return unless Danbooru.config.listbooru_auth_key SavedSearch.delay(:queue => "default").update_listbooru_on_destroy(user_id, category, tag_query) end + + def update_listbooru_on_update + return unless Danbooru.config.listbooru_auth_key + SavedSearch.delay(:queue => "default").update_listbooru_on_update(user_id, category_was, tag_query_was, category, tag_query) + end end include ListbooruMethods @@ -50,6 +72,7 @@ class SavedSearch < ActiveRecord::Base validate :validate_count attr_accessible :tag_query, :category before_create :update_user_on_create + before_update :update_listbooru_on_update after_destroy :update_user_on_destroy after_create :update_listbooru_on_create after_destroy :update_listbooru_on_destroy diff --git a/config/routes.rb b/config/routes.rb index aeede113c..d77ea381a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -222,7 +222,7 @@ Rails.application.routes.draw do get "reports/user_promotions" => "reports#user_promotions" get "reports/janitor_trials" => "reports#janitor_trials" get "reports/contributors" => "reports#contributors" - resources :saved_searches, :only => [:index, :create, :destroy] do + resources :saved_searches, :except => [:show] do collection do get :categories end