Skip to content

Commit

Permalink
fix: grpc status code "Unavailable" handling
Browse files Browse the repository at this point in the history
  • Loading branch information
akurilov committed Dec 28, 2023
1 parent 7deb1fb commit 77dff43
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 0 deletions.
4 changes: 4 additions & 0 deletions api/grpc/limits/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ var ErrInternal = errors.New("internal failure")

var ErrReached = errors.New("usage limit reached")

var ErrUnavailable = errors.New("unavailable")

func NewService(client ServiceClient) Service {
return service{
client: client,
Expand Down Expand Up @@ -59,6 +61,8 @@ func decodeError(src error) (dst error) {
case s.Code() == codes.OK:
case s.Code() == codes.Unauthenticated:
dst = fmt.Errorf("%w: %s", auth.ErrAuth, src)
case s.Code() == codes.Unavailable:
dst = fmt.Errorf("%w: %s", ErrUnavailable, src)
default:
dst = fmt.Errorf("%w: %s", ErrInternal, src)
}
Expand Down
4 changes: 4 additions & 0 deletions api/grpc/permits/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ type service struct {

var ErrInternal = errors.New("internal failure")

var ErrUnavailable = errors.New("unavailable")

func NewService(client ServiceClient) Service {
return service{
client: client,
Expand Down Expand Up @@ -58,6 +60,8 @@ func decodeError(src error) (dst error) {
case s.Code() == codes.OK:
case s.Code() == codes.Unauthenticated:
dst = fmt.Errorf("%w: %s", auth.ErrAuth, src)
case s.Code() == codes.Unavailable:
dst = fmt.Errorf("%w: %s", ErrUnavailable, src)
default:
dst = fmt.Errorf("%w: %s", ErrInternal, src)
}
Expand Down
4 changes: 4 additions & 0 deletions api/grpc/reader/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ var ErrInvalidRequest = errors.New("invalid request")

var ErrNotFound = errors.New("subscription not found")

var ErrUnavailable = errors.New("unavailable")

func NewService(client ServiceClient) Service {
return service{
client: client,
Expand Down Expand Up @@ -91,6 +93,8 @@ func decodeError(src error) (dst error) {
dst = fmt.Errorf("%w: %s", auth.ErrAuth, src)
case status.Code(src) == codes.NotFound:
dst = fmt.Errorf("%w: %s", ErrNotFound, src)
case status.Code(src) == codes.Unavailable:
dst = fmt.Errorf("%w: %s", ErrUnavailable, src)
default:
dst = fmt.Errorf("%w: %s", ErrInternal, src)
}
Expand Down
5 changes: 5 additions & 0 deletions api/grpc/resolver/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ type service struct {
client ServiceClient
}

var ErrUnavailable = errors.New("unavailable")
var ErrInternal = errors.New("internal failure")

func NewService(client ServiceClient) Service {
Expand Down Expand Up @@ -52,6 +53,10 @@ func decodeError(src error) (dst error) {
dst = fmt.Errorf("%w: %s", limits.ErrReached, src)
case s.Code() == codes.Unauthenticated:
dst = fmt.Errorf("%w: %s", auth.ErrAuth, src)
case s.Code() == codes.Unavailable:
dst = fmt.Errorf("%w: %s", ErrUnavailable, src)
case status.Code(src) == codes.DeadlineExceeded:
dst = context.DeadlineExceeded
default:
dst = fmt.Errorf("%w: %s", ErrInternal, src)
}
Expand Down
4 changes: 4 additions & 0 deletions api/grpc/subscriptions/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ var ErrInternal = errors.New("internal failure")
// ErrInvalid indicates the invalid subscription.
var ErrInvalid = errors.New("invalid subscription")

var ErrUnavailable = errors.New("unavailable")

func NewService(client ServiceClient) Service {
return service{
client: client,
Expand Down Expand Up @@ -264,6 +266,8 @@ func decodeError(src error) (dst error) {
dst = fmt.Errorf("%w: %s", ErrBusy, src)
case s.Code() == codes.Unauthenticated:
dst = fmt.Errorf("%w: %s", auth.ErrAuth, src)
case s.Code() == codes.Unavailable:
dst = fmt.Errorf("%w: %s", ErrUnavailable, src)
default:
dst = fmt.Errorf("%w: %s", ErrInternal, src)
}
Expand Down

0 comments on commit 77dff43

Please sign in to comment.