From 3433a19e796dd26dcbadee757e03a88016f374ec Mon Sep 17 00:00:00 2001 From: Marthyn Date: Wed, 11 Nov 2015 15:16:58 +0100 Subject: [PATCH 1/5] Add unpublish method --- app/models/concerns/wp_cache.rb | 7 +++++++ app/workers/wp_api_worker.rb | 1 - 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/models/concerns/wp_cache.rb b/app/models/concerns/wp_cache.rb index 4b789c6..adc38dd 100644 --- a/app/models/concerns/wp_cache.rb +++ b/app/models/concerns/wp_cache.rb @@ -109,6 +109,13 @@ def purge(wp_id) logger.warn "Could not purge #{self} with id #{wp_id}, no record with that id was found." end + def unpublish(wp_id) + where(wp_id: wp_id).first!.update_attribute(:status, "draft") + rescue + logger.warn "Could not unpublish #{self} with id #{wp_id}, no record with that id was found." + end + + private # diff --git a/app/workers/wp_api_worker.rb b/app/workers/wp_api_worker.rb index ee0e17f..d4bd10f 100644 --- a/app/workers/wp_api_worker.rb +++ b/app/workers/wp_api_worker.rb @@ -1,5 +1,4 @@ require 'sidekiq' - # # This worker is used to schedule a `create_or_update` class method call # on the provided model for ASAP. From d175795be3349e39f90b1b161e27166d4452c155 Mon Sep 17 00:00:00 2001 From: Marthyn Date: Wed, 6 Jan 2016 14:09:21 +0100 Subject: [PATCH 2/5] Revert to old config --- app/controllers/concerns/wp_preview_tools.rb | 2 +- app/controllers/concerns/wp_webhook_endpoint.rb | 2 +- app/models/concerns/wp_cache.rb | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/concerns/wp_preview_tools.rb b/app/controllers/concerns/wp_preview_tools.rb index 1a7f610..98b44e7 100644 --- a/app/controllers/concerns/wp_preview_tools.rb +++ b/app/controllers/concerns/wp_preview_tools.rb @@ -26,7 +26,7 @@ def validate_preview_token(wp_post_model, &block) # Creates a token to verify previews requests # def token(wp_post_model) - hash_inputs = WpConnector.configuration.wp_connector_secret + wp_post_model.slug + hash_inputs = Rails.configuration.x.wp_connector_secret + wp_post_model.slug Digest::SHA2.new(256).hexdigest hash_inputs end diff --git a/app/controllers/concerns/wp_webhook_endpoint.rb b/app/controllers/concerns/wp_webhook_endpoint.rb index 67c4131..25e3c3d 100644 --- a/app/controllers/concerns/wp_webhook_endpoint.rb +++ b/app/controllers/concerns/wp_webhook_endpoint.rb @@ -40,7 +40,7 @@ def render_json_200_or_404(success) end def require_valid_api_key - head :unauthorized unless params[:api_key] == WpConnector.configuration.wp_connector_api_key + head :unauthorized unless params[:api_key] == Rails.configuration.x.wp_connector_api_key end # diff --git a/app/models/concerns/wp_cache.rb b/app/models/concerns/wp_cache.rb index adc38dd..9a8393f 100644 --- a/app/models/concerns/wp_cache.rb +++ b/app/models/concerns/wp_cache.rb @@ -125,7 +125,7 @@ def unpublish(wp_id) def get_from_wp_api(route, page = -1) # TODO (dunyakirkali) pass filter through args to get_from_wp_api posts_per_page = (ENV['PER_PAGE'].to_i == -1 ? -1 : ENV['PER_PAGE'].to_i) - base = WpConnector.configuration.wordpress_url + base = Rails.configuration.x.wordpress_url unless paginated_models.include?(wp_type) url = "#{base}?json_route=/#{route}&filter[posts_per_page]=-1" else @@ -144,9 +144,9 @@ def get_from_wp_api(route, page = -1) # List of paginated models # def paginated_models - models = WpConnector.configuration.wp_api_paginated_models + models = Rails.configuration.x.wp_api_paginated_models if models.empty? - Rails.logger.warn "Please specifiy WpConnector.configuration.wp_api_paginated_models, as the default is DEPRICATED" + Rails.logger.warn "Please specifiy Rails.configuration.x.wp_api_paginated_models, as the default is DEPRICATED" models = %w( articles news_articles pages media) end models From 544d16fc91a2d552650c45e724dd02bef763fbf9 Mon Sep 17 00:00:00 2001 From: Marthyn Date: Wed, 6 Jan 2016 14:18:41 +0100 Subject: [PATCH 3/5] Set status to publish --- app/models/concerns/wp_cache.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/models/concerns/wp_cache.rb b/app/models/concerns/wp_cache.rb index 9a8393f..c1ed54c 100644 --- a/app/models/concerns/wp_cache.rb +++ b/app/models/concerns/wp_cache.rb @@ -46,6 +46,7 @@ def create_or_update(wp_type, wp_id, preview = false) # the specified entry is none existant. If so return early. return if wp_json[0] and invalid_api_responses.include? wp_json[0]["code"] where(wp_id: wp_id).first_or_initialize.update_wp_cache(wp_json) + where(wp_id: wp_id).first!.update_attribute(:status, "publish") end def update_options @@ -82,6 +83,7 @@ def create_or_update_all_paginated ids << wp_json.map do |json| wp_id = json['ID'] where(wp_id: wp_id).first_or_initialize.update_wp_cache(json) + where(wp_id: wp_id).first!.update_attribute(:status, "publish") wp_id end page = page + 1 @@ -95,6 +97,7 @@ def create_or_update_all_non_paginated ids = wp_json.map do |json| wp_id = json['ID'] where(wp_id: wp_id).first_or_initialize.update_wp_cache(json) + where(wp_id: wp_id).first!.update_attribute(:status, "publish") wp_id end where('wp_id NOT IN (?)', ids).destroy_all unless ids.empty? From 91475bceef3ff46a867f023dfaa4ec426d7ed7c0 Mon Sep 17 00:00:00 2001 From: Marthyn Date: Wed, 6 Jan 2016 14:42:22 +0100 Subject: [PATCH 4/5] Use unscoped where --- app/models/concerns/wp_cache.rb | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/app/models/concerns/wp_cache.rb b/app/models/concerns/wp_cache.rb index c1ed54c..9126353 100644 --- a/app/models/concerns/wp_cache.rb +++ b/app/models/concerns/wp_cache.rb @@ -45,8 +45,7 @@ def create_or_update(wp_type, wp_id, preview = false) # WP API will return a code if the route is incorrect or # the specified entry is none existant. If so return early. return if wp_json[0] and invalid_api_responses.include? wp_json[0]["code"] - where(wp_id: wp_id).first_or_initialize.update_wp_cache(wp_json) - where(wp_id: wp_id).first!.update_attribute(:status, "publish") + unscoped.where(wp_id: wp_id).first_or_initialize.update_wp_cache(wp_json) end def update_options @@ -82,13 +81,12 @@ def create_or_update_all_paginated break if wp_json.empty? ids << wp_json.map do |json| wp_id = json['ID'] - where(wp_id: wp_id).first_or_initialize.update_wp_cache(json) - where(wp_id: wp_id).first!.update_attribute(:status, "publish") + unscoped.where(wp_id: wp_id).first_or_initialize.update_wp_cache(json) wp_id end page = page + 1 end - where('wp_id NOT IN (?)', ids.flatten).destroy_all unless ids.empty? + unscoped.where('wp_id NOT IN (?)', ids.flatten).destroy_all unless ids.empty? end # TODO (dunyakirkali) doc @@ -96,18 +94,17 @@ def create_or_update_all_non_paginated wp_json = get_from_wp_api(wp_type) ids = wp_json.map do |json| wp_id = json['ID'] - where(wp_id: wp_id).first_or_initialize.update_wp_cache(json) - where(wp_id: wp_id).first!.update_attribute(:status, "publish") + unscoped.where(wp_id: wp_id).first_or_initialize.update_wp_cache(json) wp_id end - where('wp_id NOT IN (?)', ids).destroy_all unless ids.empty? + unscoped.where('wp_id NOT IN (?)', ids).destroy_all unless ids.empty? end # # Purge a cached piece of content, while logging any exceptions. # def purge(wp_id) - where(wp_id: wp_id).first!.destroy + unscoped.where(wp_id: wp_id).first!.destroy rescue logger.warn "Could not purge #{self} with id #{wp_id}, no record with that id was found." end From f5e4040d648b6d4fa329f5fa2ee6007fae640394 Mon Sep 17 00:00:00 2001 From: Marthyn Date: Wed, 2 Mar 2016 16:45:54 +0100 Subject: [PATCH 5/5] Use new way of getting config --- app/controllers/concerns/wp_preview_tools.rb | 2 +- app/controllers/concerns/wp_webhook_endpoint.rb | 2 +- app/models/concerns/wp_cache.rb | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/concerns/wp_preview_tools.rb b/app/controllers/concerns/wp_preview_tools.rb index 98b44e7..1a7f610 100644 --- a/app/controllers/concerns/wp_preview_tools.rb +++ b/app/controllers/concerns/wp_preview_tools.rb @@ -26,7 +26,7 @@ def validate_preview_token(wp_post_model, &block) # Creates a token to verify previews requests # def token(wp_post_model) - hash_inputs = Rails.configuration.x.wp_connector_secret + wp_post_model.slug + hash_inputs = WpConnector.configuration.wp_connector_secret + wp_post_model.slug Digest::SHA2.new(256).hexdigest hash_inputs end diff --git a/app/controllers/concerns/wp_webhook_endpoint.rb b/app/controllers/concerns/wp_webhook_endpoint.rb index 25e3c3d..67c4131 100644 --- a/app/controllers/concerns/wp_webhook_endpoint.rb +++ b/app/controllers/concerns/wp_webhook_endpoint.rb @@ -40,7 +40,7 @@ def render_json_200_or_404(success) end def require_valid_api_key - head :unauthorized unless params[:api_key] == Rails.configuration.x.wp_connector_api_key + head :unauthorized unless params[:api_key] == WpConnector.configuration.wp_connector_api_key end # diff --git a/app/models/concerns/wp_cache.rb b/app/models/concerns/wp_cache.rb index 9126353..b290742 100644 --- a/app/models/concerns/wp_cache.rb +++ b/app/models/concerns/wp_cache.rb @@ -125,7 +125,7 @@ def unpublish(wp_id) def get_from_wp_api(route, page = -1) # TODO (dunyakirkali) pass filter through args to get_from_wp_api posts_per_page = (ENV['PER_PAGE'].to_i == -1 ? -1 : ENV['PER_PAGE'].to_i) - base = Rails.configuration.x.wordpress_url + base = WpConnector.configuration.wordpress_url unless paginated_models.include?(wp_type) url = "#{base}?json_route=/#{route}&filter[posts_per_page]=-1" else @@ -144,9 +144,9 @@ def get_from_wp_api(route, page = -1) # List of paginated models # def paginated_models - models = Rails.configuration.x.wp_api_paginated_models + models = WpConnector.configuration.wp_api_paginated_models if models.empty? - Rails.logger.warn "Please specifiy Rails.configuration.x.wp_api_paginated_models, as the default is DEPRICATED" + Rails.logger.warn "Please specifiy WpConnector.configuration.wp_api_paginated_models, as the default is DEPRICATED" models = %w( articles news_articles pages media) end models