Service call
Services are called via .call or .call! methods.
Method .call!
The .call! method throws an exception if any problem occurs within the service.
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 userMethod .call
The .call method throws an exception for input, internal, and output attribute problems. Other errors are captured and provided via the Result class.
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>