discount/internal/controller/controller_statuses.go
2024-12-11 15:14:39 +03:00

32 lines
1.1 KiB
Go

package controller
import (
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"gitea.pena/PenaSide/discount/internal/repository"
"gitea.pena/PenaSide/discount/internal/service"
)
var GRPCStatuses = map[error]codes.Code{
repository.ErrEmptyArgs: codes.InvalidArgument,
repository.ErrFindRecord: codes.Internal,
repository.ErrInsertRecord: codes.Internal,
repository.ErrInvalidID: codes.InvalidArgument,
repository.ErrMethodNotImplemented: codes.Unimplemented,
repository.ErrNoRecord: codes.NotFound,
repository.ErrTransaction: codes.Internal,
repository.ErrTransactionSessionStart: codes.Internal,
repository.ErrUpdateRecord: codes.Internal,
service.ErrInvalidInputValue: codes.InvalidArgument,
service.ErrInvalidReturnValue: codes.Internal,
}
func determineError(message string, err error) error {
currentStatus, ok := GRPCStatuses[err]
if !ok {
return status.Errorf(codes.Internal, message, err)
}
return status.Errorf(currentStatus, message, err)
}