Использование действий
Действия в сервисе — это поочередный вызов методов. Вызов методов сервиса происходит при помощи метода make
.
Примеры
Минимальный
ruby
class PostsService::Create < ApplicationService::Base
def call
# something
end
end
Несколько методов
ruby
class PostsService::Create < ApplicationService::Base
# ...
make :assign_api_model
make :perform_api_request
make :process_result
def assign_api_model
internals.api_model = APIModel.new(...)
end
def perform_api_request
internals.response = APIClient.resource.create(internals.api_model)
end
def process_result
ARModel.create!(internals.response)
end
end
Опции
Подробнее про опции вы можете узнать в разделе опций.
Группа из нескольких действий
Подробнее про группу из нескольких действий (методов) вы можете узнать в разделе группирования.
Алиасы для make
Через конфигурацию action_aliases
можно добавить алиас для метода make
.
ruby
configuration do
action_aliases %i[execute]
end
execute :something
def something
# ...
end
Сокращения для make
Через конфигурацию action_shortcuts
можно добавить часто используемые слова, которые используются в виде префиксов в именах методов. Имена самих методов короче не станут, но это позволит сократить строки с применением метода make
и улучшить читаемость кода сервиса, сделав его выразительнее.
ruby
configuration do
action_shortcuts %i[assign perform]
end
assign :api_model
perform :api_request
make :process_result
def assign_api_model
internals.api_model = APIModel.new
end
def perform_api_request
internals.response = APIClient.resource.create(internals.api_model)
end
def process_result
ARModel.create!(internals.response)
end