Skip to content

Раннее успешное завершение Начиная с 2.2.0

Работа сервиса может быть завершена преждевременно и успешно при помощи вызова метода success!.

Для Servactory это тоже является исключением, но успешным.

Использование

В качестве примера рассмотрим сервис нотификации, который должен работать в зависимости от среды, где он вызывается.

ruby
class NotificatorService::Slack::Error::Send < ApplicationService::Base
  # ...
  
  make :check_environment!

  make :send_message!
  
  private
  
  def check_environment!
    return if Rails.env.production?
    
    success!
  end
  
  def send_message!
    # Here is the API request in Slack
  end
end

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