Files
evening_detective_server/internal/app/user_errors.go
T
2026-10-09 15:33:18 +07:00

28 lines
1.1 KiB
Go

package app
import (
"errors"
"evening_detective_server/internal/services/users_service"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
func userErrorStatus(err error, internalMessage string) error {
switch {
case errors.Is(err, users_service.ErrEmailUnavailable):
return status.Error(codes.FailedPrecondition, users_service.ErrEmailUnavailable.Error())
case errors.Is(err, users_service.ErrUserNotFound):
return status.Error(codes.NotFound, err.Error())
case errors.Is(err, users_service.ErrTermsNotAccepted), errors.Is(err, users_service.ErrInvalidEmail), errors.Is(err, users_service.ErrInvalidRole), errors.Is(err, users_service.ErrInvalidPasswordChange):
return status.Error(codes.InvalidArgument, err.Error())
case errors.Is(err, users_service.ErrInvalidCredentials):
return status.Error(codes.Unauthenticated, users_service.ErrInvalidCredentials.Error())
case errors.Is(err, users_service.ErrInvalidAccountPassword):
return status.Error(codes.PermissionDenied, err.Error())
default:
return status.Error(codes.Internal, internalMessage)
}
}