Add doc for ServiceResponse

This commit is contained in:
Lin Jen-Shin 2019-06-24 17:24:25 +00:00 committed by Achilleas Pipinellis
parent 7f6de7fe29
commit b32f7d4891
1 changed files with 36 additions and 0 deletions

View File

@ -127,6 +127,42 @@ Everything in `lib/api`.
Everything that resides in `app/services`.
#### ServiceResponse
Service classes usually have an `execute` method, which can return a
`ServiceResponse`. You can use `ServiceResponse.success` and
`ServiceResponse.error` to return a response in `execute` method.
In a successful case:
``` ruby
response = ServiceResponse.success(message: 'Branch was deleted')
response.success? # => true
response.error? # => false
response.status # => :success
response.message # => 'Branch was deleted'
```
In a failed case:
``` ruby
response = ServiceResponse.error(message: 'Unsupported operation')
response.success? # => false
response.error? # => true
response.status # => :error
response.message # => 'Unsupported operation'
```
An additional payload can also be attached:
``` ruby
response = ServiceResponse.success(payload: { issue: issue })
response.payload[:issue] # => issue
```
### Finders
Everything in `app/finders`, typically used for retrieving data from a database.