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