Move OpenFoodNetwork::ProductsCacheIntegrityChecker.active_exchanges to Exchange model

This commit is contained in:
Rohan Mitchell
2016-03-09 12:28:09 +11:00
parent 780ec598d6
commit 27d7b3026b
4 changed files with 9 additions and 20 deletions

View File

@@ -3,8 +3,7 @@ require 'open_food_network/products_cache_integrity_checker'
class Admin::CacheSettingsController < Spree::Admin::BaseController
def show
active_exchanges = OpenFoodNetwork::ProductsCacheIntegrityChecker.active_exchanges
@results = active_exchanges.map do |exchange|
@results = Exchange.cachable.map do |exchange|
checker = OpenFoodNetwork::ProductsCacheIntegrityChecker.new(exchange.receiver, exchange.order_cycle)
{distributor: exchange.receiver, order_cycle: exchange.order_cycle, status: checker.ok?, diff: checker.diff}

View File

@@ -34,6 +34,12 @@ class Exchange < ActiveRecord::Base
joins('INNER JOIN enterprises AS receiver ON (receiver.id = exchanges.receiver_id)').
order("CASE WHEN exchanges.incoming='t' THEN sender.name ELSE receiver.name END")
# Exchanges on order cycles that are dated and are upcoming or open are cached
scope :cachable, outgoing.
joins(:order_cycle).
merge(OrderCycle.dated).
merge(OrderCycle.not_closed)
scope :managed_by, lambda { |user|
if user.has_spree_role?('admin')
scoped

View File

@@ -16,15 +16,6 @@ module OpenFoodNetwork
end
def self.active_exchanges
Exchange.
outgoing.
joins(:order_cycle).
merge(OrderCycle.dated).
merge(OrderCycle.not_closed)
end
private
def cached_json

View File

@@ -4,7 +4,7 @@ namespace :openfoodnetwork do
namespace :cache do
desc 'check the integrity of the products cache'
task :check_products_integrity => :environment do
active_exchanges.each do |exchange|
Exchange.cachable.each do |exchange|
Delayed::Job.enqueue ProductsCacheIntegrityCheckerJob.new(exchange.receiver_id, exchange.order_cycle_id), priority: 20
end
end
@@ -12,16 +12,9 @@ namespace :openfoodnetwork do
desc 'warm the products cache'
task :warm_products => :environment do
active_exchanges.each do |exchange|
Exchange.cachable.each do |exchange|
Delayed::Job.enqueue RefreshProductsCacheJob.new(exchange.receiver_id, exchange.order_cycle_id), priority: 10
end
end
private
def active_exchanges
OpenFoodNetwork::ProductsCacheIntegrityChecker.active_exchanges
end
end
end