discount/internal/controller/controller_statuses.go

32 lines
1.1 KiB
Go
Raw Normal View History

2023-07-04 04:04:31 +00:00
package controller
import (
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"penahub.gitlab.yandexcloud.net/pena-services/accruals-service/internal/repository"
"penahub.gitlab.yandexcloud.net/pena-services/accruals-service/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)
}