From 7c70af6a8cad7de15d6bf5a0f4f0b0dc4c523255 Mon Sep 17 00:00:00 2001 From: Jose Date: Mon, 16 Feb 2026 01:13:10 +0100 Subject: [PATCH] Fix: search by email on register --- .../backend/core/repository/CredentialRepository.java | 3 ++- .../java/net/miarma/backend/core/service/AuthService.java | 8 +++++--- .../miarma/backend/core/service/CredentialService.java | 3 +-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/net/miarma/backend/core/repository/CredentialRepository.java b/core/src/main/java/net/miarma/backend/core/repository/CredentialRepository.java index 1858076..87349cb 100644 --- a/core/src/main/java/net/miarma/backend/core/repository/CredentialRepository.java +++ b/core/src/main/java/net/miarma/backend/core/repository/CredentialRepository.java @@ -38,7 +38,8 @@ public interface CredentialRepository extends JpaRepository @Query("SELECT c FROM Credential c WHERE c.userIdBin = :userIdBin") List findByUserId(@Param("userIdBin") byte[] userIdBin); - List findByEmail(String email); + @Query("SELECT c FROM Credential c WHERE c.email = :email") + List findByEmail(@Param("email") String email); boolean existsByUsernameAndServiceId(String username, Byte serviceId); diff --git a/core/src/main/java/net/miarma/backend/core/service/AuthService.java b/core/src/main/java/net/miarma/backend/core/service/AuthService.java index 4721330..be16ba1 100644 --- a/core/src/main/java/net/miarma/backend/core/service/AuthService.java +++ b/core/src/main/java/net/miarma/backend/core/service/AuthService.java @@ -1,5 +1,6 @@ package net.miarma.backend.core.service; +import java.util.List; import java.util.Optional; import java.util.UUID; @@ -57,9 +58,10 @@ public class AuthService { userIdByUsername = credByUsername.get().getUserId(); } - try { - userIdByEmail = credentialService.getByEmail(request.email()).get(0).getUserId(); - } catch (NotFoundException e) { } + List accountsByEmail = credentialService.getByEmail(request.email()); + if (!accountsByEmail.isEmpty()) { + userIdByEmail = accountsByEmail.getFirst().getUserId(); + } User user; if (userIdByUsername != null && userIdByEmail != null) { diff --git a/core/src/main/java/net/miarma/backend/core/service/CredentialService.java b/core/src/main/java/net/miarma/backend/core/service/CredentialService.java index 43bc37b..7ab63b6 100644 --- a/core/src/main/java/net/miarma/backend/core/service/CredentialService.java +++ b/core/src/main/java/net/miarma/backend/core/service/CredentialService.java @@ -88,8 +88,7 @@ public class CredentialService { } public List getByEmail(String email) { - return credentialRepository.findByEmail(email).stream() - .toList(); + return credentialRepository.findByEmail(email); } public Credential getByUserIdAndService(UUID userId, Byte serviceId) {