Skip to content

サービスの呼び出し

サービスは.callまたは.call!メソッドで呼び出します。

メソッド.call!

.call!メソッドはサービス内で問題が発生した場合に例外をスローします。

ruby
UsersService::Accept.call!(user: User.first)
ruby
# => #<ApplicationService::Result @failure?=false, @success?=true, @user=..., @user?=true>
ruby
# => ApplicationService::Exceptions::Input: [UsersService::Accept] Required input `user` is missing

# => ApplicationService::Exceptions::Failure: There is some problem with the user

メソッド.call

.callメソッドはinput、internal、outputアトリビュートの問題に対して例外をスローします。その他のエラーはキャプチャされ、Resultクラスを通じて提供されます。

ruby
UsersService::Accept.call(user: User.first)
ruby
# => #<ApplicationService::Result @failure?=false, @success?=true, @user=..., @user?=true>
ruby
# => ApplicationService::Exceptions::Input: [UsersService::Accept] Required input `user` is missing

# => #<ApplicationService::Result @error=There is some problem with the user, @failure?=true, @success?=false>