Подключение активной модели записи с внешним API в приложении rails

В моем приложении rails у меня есть 2 разных типа активных пользователей записи, например, User1 имеет first_name, email и т.д., а User2 также имеет эти атрибуты, но для пользователя 2 мы получаем данные из внешнего API, поэтому при создании счетов я передаю модель пользователя в счет-фактуру, и я думаю сделать что-то подобное для User2

class User2
  def first_name
    if persisted?
      data['firstName']
    end
  end

  def email
    if persisted?
      data['email']
    end
  end

  private
  def data
    @__data ||= ExternalUserInfo.new(external_id).call
  end
end

Клиент ExternalUserInfo вызовет внешний API и вернет ответ как таковой.

{
  firstName: "John", email: "john@example.com"
}

Проблема с этим подходом заключается в том, что всякий раз, когда мне нужно будет написать спецификацию, которая должна создать этого пользователя, мне нужно будет обернуть этот тест вокруг кассеты видеомагнитофона или заглушить внешний запрос. Поэтому я хотел посмотреть, что могло бы быть потенциальным решением, чтобы избежать этого, и имеет ли этот дизайн вообще смысл.

0

Добавить комментарий

Ваш адрес email не будет опубликован.