Uncache enterprise producer properties - we have no cache invalidation for this

This commit is contained in:
Rohan Mitchell
2016-07-29 15:39:08 +10:00
parent 4db29ce322
commit 1586cd3992

View File

@@ -21,6 +21,7 @@ end
class Api::UncachedEnterpriseSerializer < ActiveModel::Serializer
attributes :orders_close_at, :active
has_many :properties, serializer: Api::PropertySerializer
def orders_close_at
options[:data].earliest_closing_times[object.id]
@@ -29,6 +30,14 @@ class Api::UncachedEnterpriseSerializer < ActiveModel::Serializer
def active
options[:data].active_distributors.andand.include? object
end
def properties
# This results in 3 queries per enterprise
product_properties = Spree::Property.applied_by(object)
producer_properties = object.properties
OpenFoodNetwork::PropertyMerge.merge product_properties, producer_properties
end
end
class Api::CachedEnterpriseSerializer < ActiveModel::Serializer
@@ -49,8 +58,6 @@ class Api::CachedEnterpriseSerializer < ActiveModel::Serializer
attributes :taxons, :supplied_taxons
has_one :address, serializer: Api::AddressSerializer
has_many :properties, serializer: Api::PropertySerializer
def taxons
ids_to_objs options[:data].distributed_taxons[object.id]
end
@@ -59,14 +66,6 @@ class Api::CachedEnterpriseSerializer < ActiveModel::Serializer
ids_to_objs options[:data].supplied_taxons[object.id]
end
def properties
# This results in 3 queries per enterprise
product_properties = Spree::Property.applied_by(object)
producer_properties = object.properties
OpenFoodNetwork::PropertyMerge.merge product_properties, producer_properties
end
def pickup
services = options[:data].shipping_method_services[object.id]
services ? services[:pickup] : false