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) }