Как выставить атрибуты декоратора в Grape Entity

Я работаю над предоставлением некоторых данных мобильному клиенту через API. Некоторые из этих данных определены в декораторе.

app/decorators/customer_opportunity_decorator.rb

        def potential_savings
    return 'N/A' if opportunity.nil?

    multiplier = Customer.get_multiplier(...)
 
    return 'N/A' if multiplier.blank?

    ...more logic
  end

Мы используем Grape Entities на нашем уровне API, и я не знаю, как передать эту логику через API. Не похоже, что он должен жить в декораторе, если он отображается как поле API.

      module Entities
    class Opportunity < BaseEntity
        expose :id
        expose :name
        expose :potential_savings # need this field on the API

...

А еще есть модель APIApiOpportunity

      class ApiOpportunity
  attr_reader :id, :name, :potential_savings

  def initialize(opportunity)
    @id = opportunity.id
    @name = opportunity.name
    @potential_savings = opportunity.potential_savings # this approach doesn't seem to work
  end
end

Это логика, что я должен двигаться в другом месте? Можно ли оставаться декоратором и как-то проходить в API?

0 ответов

Другие вопросы по тегам