Files
openfoodnetwork/app/serializers/api/admin/payment_method_serializer.rb
2017-09-23 14:57:02 +10:00

32 lines
724 B
Ruby

class Api::Admin::PaymentMethodSerializer < ActiveModel::Serializer
def serializable_hash
method_serializer.serializable_hash
end
def method_serializer
if object.type == 'Spree::Gateway::StripeConnect'
Api::Admin::PaymentMethod::StripeSerializer.new(object)
else
Api::Admin::PaymentMethod::BaseSerializer.new(object)
end
end
end
module Api::Admin::PaymentMethod
class BaseSerializer < ActiveModel::Serializer
attributes :id, :name, :type, :tag_list, :tags
def tag_list
object.tag_list.join(",")
end
def tags
object.tag_list.map{ |t| { text: t } }
end
end
class StripeSerializer < BaseSerializer
attributes :preferred_enterprise_id
end
end