github.com/profzone/eden-framework@v1.0.10/pkg/courier/transport_grpc/errors.go (about) 1 package transport_grpc 2 3 import ( 4 "net/http" 5 6 "google.golang.org/grpc/codes" 7 ) 8 9 var ( 10 httpCodes = map[codes.Code]int{ 11 codes.OK: http.StatusOK, 12 codes.Canceled: http.StatusRequestTimeout, 13 codes.Unknown: http.StatusInternalServerError, 14 codes.InvalidArgument: http.StatusBadRequest, 15 codes.DeadlineExceeded: http.StatusRequestTimeout, 16 codes.NotFound: http.StatusNotFound, 17 codes.AlreadyExists: http.StatusConflict, 18 codes.PermissionDenied: http.StatusForbidden, 19 codes.Unauthenticated: http.StatusUnauthorized, 20 codes.ResourceExhausted: http.StatusForbidden, 21 codes.FailedPrecondition: http.StatusPreconditionFailed, 22 codes.Aborted: http.StatusConflict, 23 codes.OutOfRange: http.StatusBadRequest, 24 codes.Unimplemented: http.StatusNotImplemented, 25 codes.Internal: http.StatusInternalServerError, 26 codes.Unavailable: http.StatusServiceUnavailable, 27 codes.DataLoss: http.StatusInternalServerError, 28 } 29 statusCodes = map[int]codes.Code{ 30 http.StatusOK: codes.OK, 31 http.StatusRequestTimeout: codes.DeadlineExceeded, 32 http.StatusInternalServerError: codes.Internal, 33 http.StatusBadRequest: codes.InvalidArgument, 34 http.StatusNotFound: codes.NotFound, 35 http.StatusConflict: codes.AlreadyExists, 36 http.StatusForbidden: codes.PermissionDenied, 37 http.StatusUnauthorized: codes.Unauthenticated, 38 http.StatusPreconditionFailed: codes.FailedPrecondition, 39 http.StatusNotImplemented: codes.Unimplemented, 40 http.StatusServiceUnavailable: codes.Unavailable, 41 } 42 ) 43 44 func HTTPStatusFromCode(code codes.Code) int { 45 if status, ok := httpCodes[code]; ok { 46 return status 47 } 48 return http.StatusInternalServerError 49 } 50 51 func CodeFromHTTPStatus(status int) codes.Code { 52 if code, ok := statusCodes[status]; ok { 53 return code 54 } 55 return codes.Unknown 56 }