From ed33d03fdac60be2174547303f37566e50d0c231 Mon Sep 17 00:00:00 2001 From: LandaMm Date: Fri, 6 Jun 2025 11:58:20 +0200 Subject: [PATCH] feat: find users related to specific admin repo --- internal/repository/users.sql.go | 37 ++++++++++++++++++++++++++++++++ queries/users.sql | 3 +++ 2 files changed, 40 insertions(+) diff --git a/internal/repository/users.sql.go b/internal/repository/users.sql.go index 2563ece..c08da5c 100644 --- a/internal/repository/users.sql.go +++ b/internal/repository/users.sql.go @@ -11,6 +11,43 @@ import ( "github.com/google/uuid" ) +const findAdminUsers = `-- name: FindAdminUsers :many +SELECT id, email, full_name, password_hash, is_admin, created_at, updated_at, last_login, phone_number, profile_picture, created_by, email_verified FROM users WHERE created_by = $1 +` + +func (q *Queries) FindAdminUsers(ctx context.Context, createdBy *uuid.UUID) ([]User, error) { + rows, err := q.db.Query(ctx, findAdminUsers, createdBy) + if err != nil { + return nil, err + } + defer rows.Close() + var items []User + for rows.Next() { + var i User + if err := rows.Scan( + &i.ID, + &i.Email, + &i.FullName, + &i.PasswordHash, + &i.IsAdmin, + &i.CreatedAt, + &i.UpdatedAt, + &i.LastLogin, + &i.PhoneNumber, + &i.ProfilePicture, + &i.CreatedBy, + &i.EmailVerified, + ); err != nil { + return nil, err + } + items = append(items, i) + } + if err := rows.Err(); err != nil { + return nil, err + } + return items, nil +} + const findAllUsers = `-- name: FindAllUsers :many SELECT id, email, full_name, password_hash, is_admin, created_at, updated_at, last_login, phone_number, profile_picture, created_by, email_verified FROM users ` diff --git a/queries/users.sql b/queries/users.sql index b2b78df..5a206d8 100644 --- a/queries/users.sql +++ b/queries/users.sql @@ -1,6 +1,9 @@ -- name: FindAllUsers :many SELECT * FROM users; +-- name: FindAdminUsers :many +SELECT * FROM users WHERE created_by = $1; + -- name: InsertUser :one INSERT INTO users ( email, full_name, password_hash, is_admin, created_by