chore: update admin apis

This commit is contained in:
Krispire Admin
2026-06-16 15:45:33 +05:30
parent a49bf7591e
commit 4c42d9a7f9
6 changed files with 70 additions and 67 deletions
+11 -8
View File
@@ -33,12 +33,15 @@ func clampLimit(limit int) int {
func (r *AdminRepo) ListUsers(ctx context.Context, q string, limit, offset int) ([]model.AdminUser, int, error) {
limit = clampLimit(limit)
rows, err := r.pg.Pool.Query(ctx, `
SELECT id, email, handle, name, avatar_url, role, plan, email_verified_at, banned_at, created_at,
SELECT u.id, u.email, u.handle, u.name, u.avatar_url, u.role, u.plan,
u.email_verified_at, u.banned_at,
(SELECT COUNT(*) FROM posts p WHERE p.user_id = u.id AND p.deleted_at IS NULL) AS post_count,
u.created_at,
COUNT(*) OVER() AS total
FROM users
WHERE ($1 = '' OR name ILIKE '%'||$1||'%' OR handle ILIKE '%'||$1||'%'
OR COALESCE(email, '') ILIKE '%'||$1||'%')
ORDER BY created_at DESC
FROM users u
WHERE ($1 = '' OR u.name ILIKE '%'||$1||'%' OR u.handle ILIKE '%'||$1||'%'
OR COALESCE(u.email, '') ILIKE '%'||$1||'%')
ORDER BY u.created_at DESC
LIMIT $2 OFFSET $3`, q, limit, offset)
if err != nil {
return nil, 0, fmt.Errorf("admin list users: %w", err)
@@ -50,7 +53,7 @@ func (r *AdminRepo) ListUsers(ctx context.Context, q string, limit, offset int)
for rows.Next() {
var u model.AdminUser
if err := rows.Scan(&u.ID, &u.Email, &u.Handle, &u.Name, &u.AvatarURL,
&u.Role, &u.Plan, &u.EmailVerifiedAt, &u.BannedAt, &u.CreatedAt, &total); err != nil {
&u.Role, &u.Plan, &u.EmailVerifiedAt, &u.BannedAt, &u.PostCount, &u.CreatedAt, &total); err != nil {
return nil, 0, fmt.Errorf("scan admin user: %w", err)
}
out = append(out, u)
@@ -146,7 +149,7 @@ func (r *AdminRepo) ListFeedback(ctx context.Context, status string, limit, offs
}
rows, err := r.pg.Pool.Query(ctx, `
SELECT f.id, f.category, f.message, f.contact_email, f.created_at,
f.resolved_at, f.replied_at, f.reply_message,
f.acknowledged_at, f.resolved_at, f.replied_at, f.reply_message,
u.handle, u.name, u.email,
COUNT(*) OVER() AS total
FROM feedback f
@@ -166,7 +169,7 @@ func (r *AdminRepo) ListFeedback(ctx context.Context, status string, limit, offs
for rows.Next() {
var f model.AdminFeedback
if err := rows.Scan(&f.ID, &f.Category, &f.Message, &f.ContactEmail, &f.CreatedAt,
&f.ResolvedAt, &f.RepliedAt, &f.ReplyMessage,
&f.AcknowledgedAt, &f.ResolvedAt, &f.RepliedAt, &f.ReplyMessage,
&f.AuthorHandle, &f.AuthorName, &f.AuthorEmail, &total); err != nil {
return nil, 0, fmt.Errorf("scan admin feedback: %w", err)
}