Files
openfoodnetwork/app/serializers/api/product_serializer.rb
Matt-Yorkley b3e7f9a07e Fix deprecated arguments used in #sanitize
Failure/Error: d = sanitize(object.description, tags: "p, b, strong, em, i, a, u", attributes: "href, target")

     ArgumentError:
       You should pass :tags as an Enumerable
     # ./app/serializers/api/product_serializer.rb:26:in `description_html'
     # (eval):10:in `_fast_attributes'
     # ./app/services/products_renderer.rb:24:in `products_json'
     # ./app/controllers/api/order_cycles_controller.rb:14:in `products'
     # ./lib/open_food_network/rack_request_blocker.rb:36:in `call'
2020-02-22 11:06:51 +00:00

51 lines
1.4 KiB
Ruby

require "open_food_network/scope_variant_to_hub"
class Api::ProductSerializer < ActiveModel::Serializer
include ActionView::Helpers::SanitizeHelper
attributes :id, :name, :permalink, :meta_keywords
attributes :group_buy, :notes, :description, :description_html
attributes :properties_with_values, :price
has_many :variants, serializer: Api::VariantSerializer
has_one :master, serializer: Api::VariantSerializer
has_one :primary_taxon, serializer: Api::TaxonSerializer
has_many :taxons, serializer: Api::IdSerializer
has_many :images, serializer: Api::ImageSerializer
has_one :supplier, serializer: Api::IdSerializer
# return an unformatted descripton
def description
strip_tags object.description
end
# return a sanitized html description
def description_html
d = sanitize(object.description, tags: ["p", "b", "strong", "em", "i", "a", "u"],
attributes: ["href", "target"])
d.to_s.html_safe
end
def properties_with_values
object.properties_including_inherited
end
def variants
options[:variants][object.id] || []
end
def master
options[:master_variants][object.id].andand.first
end
def price
if options[:enterprise_fee_calculator]
object.master.price + options[:enterprise_fee_calculator].indexed_fees_for(object.master)
else
object.master.price_with_fees(options[:current_distributor], options[:current_order_cycle])
end
end
end