mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-18 04:39:14 +00:00
Move OpenFoodNetwork::ProductsCacheIntegrityChecker.active_exchanges to Exchange model
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user