gitee.com/liuxuezhan/go-micro-v1.18.0@v1.0.0/server/grpc/error.go (about)

     1  package grpc
     2  
     3  import (
     4  	"net/http"
     5  
     6  	"gitee.com/liuxuezhan/go-micro-v1.18.0/errors"
     7  	"google.golang.org/grpc/codes"
     8  )
     9  
    10  func microError(err *errors.Error) codes.Code {
    11  	switch err {
    12  	case nil:
    13  		return codes.OK
    14  	}
    15  
    16  	switch err.Code {
    17  	case http.StatusOK:
    18  		return codes.OK
    19  	case http.StatusBadRequest:
    20  		return codes.InvalidArgument
    21  	case http.StatusRequestTimeout:
    22  		return codes.DeadlineExceeded
    23  	case http.StatusNotFound:
    24  		return codes.NotFound
    25  	case http.StatusConflict:
    26  		return codes.AlreadyExists
    27  	case http.StatusForbidden:
    28  		return codes.PermissionDenied
    29  	case http.StatusUnauthorized:
    30  		return codes.Unauthenticated
    31  	case http.StatusPreconditionFailed:
    32  		return codes.FailedPrecondition
    33  	case http.StatusNotImplemented:
    34  		return codes.Unimplemented
    35  	case http.StatusInternalServerError:
    36  		return codes.Internal
    37  	case http.StatusServiceUnavailable:
    38  		return codes.Unavailable
    39  	}
    40  
    41  	return codes.Unknown
    42  }