From 81acce62b1e3a206a2bfd933178d17737f74851d Mon Sep 17 00:00:00 2001 From: Kharec Date: Fri, 21 Nov 2025 17:05:01 +0100 Subject: [PATCH] feat: add GetByUsernamePrefix method to interface and add implementation --- internal/repositories/user_repository.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/internal/repositories/user_repository.go b/internal/repositories/user_repository.go index 15f9739..1c1f985 100644 --- a/internal/repositories/user_repository.go +++ b/internal/repositories/user_repository.go @@ -28,6 +28,7 @@ type UserRepository interface { Unlock(id uint) error GetPosts(userID uint, limit, offset int) ([]database.Post, error) GetDeletedUsers() ([]database.User, error) + GetByUsernamePrefix(prefix string) (*database.User, error) HardDeleteAll() (int64, error) Count() (int64, error) WithTx(tx *gorm.DB) UserRepository @@ -240,6 +241,17 @@ func (r *userRepository) GetDeletedUsers() ([]database.User, error) { return users, err } +func (r *userRepository) GetByUsernamePrefix(prefix string) (*database.User, error) { + var user database.User + err := r.db. + Where("username LIKE ? AND email LIKE ?", prefix+"%", prefix+"%@goyco.local"). + First(&user).Error + if err != nil { + return nil, err + } + return &user, nil +} + func (r *userRepository) HardDeleteAll() (int64, error) { var totalDeleted int64 err := r.db.Transaction(func(tx *gorm.DB) error {