micro/server/grpc/error.go

34 lines
909 B
Go
Raw Normal View History

2019-06-03 18:44:43 +01:00
package grpc
import (
"net/http"
"github.com/micro/go-micro/v3/errors"
2019-06-03 18:44:43 +01:00
"google.golang.org/grpc/codes"
)
var errMapping = map[int32]codes.Code{
http.StatusOK: codes.OK,
http.StatusBadRequest: codes.InvalidArgument,
http.StatusRequestTimeout: codes.DeadlineExceeded,
http.StatusNotFound: codes.NotFound,
http.StatusConflict: codes.AlreadyExists,
http.StatusForbidden: codes.PermissionDenied,
http.StatusUnauthorized: codes.Unauthenticated,
http.StatusPreconditionFailed: codes.FailedPrecondition,
http.StatusNotImplemented: codes.Unimplemented,
http.StatusInternalServerError: codes.Internal,
http.StatusServiceUnavailable: codes.Unavailable,
}
2019-06-03 18:44:43 +01:00
func microError(err *errors.Error) codes.Code {
if err == nil {
2019-06-03 18:44:43 +01:00
return codes.OK
}
if code, ok := errMapping[err.Code]; ok {
return code
2019-06-03 18:44:43 +01:00
}
return codes.Unknown
}