fix(user): fix column aliases and replace SELECT * with explicit columns
Fix customer_relationship.go: use consistent 'cnt' alias instead of duplicate 'count' column. Fix profile.go: replace SELECT * with explicit column list to avoid new computed booking columns breaking the admin listing query. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -97,21 +97,21 @@ func GetCustomerRelationshipHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
rows, err := db.Conn.Query(r.Context(), `
|
rows, err := db.Conn.Query(r.Context(), `
|
||||||
SELECT name, cnt FROM (
|
SELECT name, cnt FROM (
|
||||||
SELECT s.name, COUNT(*) as count, COUNT(*) as cnt
|
SELECT s.name, COUNT(*) as cnt
|
||||||
FROM booking_services bsvc
|
FROM booking_services bsvc
|
||||||
JOIN bookings b ON bsvc.booking_id = b.id
|
JOIN bookings b ON bsvc.booking_id = b.id
|
||||||
JOIN services s ON bsvc.service_id = s.id
|
JOIN services s ON bsvc.service_id = s.id
|
||||||
WHERE b.user_id = $1 AND b.status = 'completed'
|
WHERE b.user_id = $1 AND b.status = 'completed'
|
||||||
GROUP BY s.name
|
GROUP BY s.name
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT cs.name, COUNT(*) as count, COUNT(*) as cnt
|
SELECT cs.name, COUNT(*) as cnt
|
||||||
FROM booking_custom_services bcs
|
FROM booking_custom_services bcs
|
||||||
JOIN bookings b ON bcs.booking_id = b.id
|
JOIN bookings b ON bcs.booking_id = b.id
|
||||||
JOIN custom_services cs ON bcs.custom_service_id = cs.id
|
JOIN custom_services cs ON bcs.custom_service_id = cs.id
|
||||||
WHERE b.user_id = $1 AND b.status = 'completed'
|
WHERE b.user_id = $1 AND b.status = 'completed'
|
||||||
GROUP BY cs.name
|
GROUP BY cs.name
|
||||||
) combined
|
) combined
|
||||||
ORDER BY count DESC
|
ORDER BY cnt DESC
|
||||||
LIMIT 5
|
LIMIT 5
|
||||||
`, userID)
|
`, userID)
|
||||||
if err != nil && !errors.Is(err, pgx.ErrNoRows) {
|
if err != nil && !errors.Is(err, pgx.ErrNoRows) {
|
||||||
|
|||||||
@@ -512,7 +512,7 @@ func ListAdminUsersHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
if searchTerm != "" {
|
if searchTerm != "" {
|
||||||
searchPattern := "%" + searchTerm + "%"
|
searchPattern := "%" + searchTerm + "%"
|
||||||
|
|
||||||
innerWithWhere := `SELECT * FROM (` + innerQuery + `
|
innerWithWhere := `SELECT id, fn, email, phone, account_role, created_at, previous_first_name, previous_last_name, completed_count FROM (` + innerQuery + `
|
||||||
WHERE (u.fn ILIKE $1 OR u.email ILIKE $1 OR u.phone ILIKE $1)
|
WHERE (u.fn ILIKE $1 OR u.email ILIKE $1 OR u.phone ILIKE $1)
|
||||||
) sub`
|
) sub`
|
||||||
|
|
||||||
@@ -532,7 +532,7 @@ func ListAdminUsersHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
listQuery += ` ORDER BY completed_count DESC, created_at DESC, id DESC LIMIT $` + strconv.Itoa(len(listArgs)+1)
|
listQuery += ` ORDER BY completed_count DESC, created_at DESC, id DESC LIMIT $` + strconv.Itoa(len(listArgs)+1)
|
||||||
listArgs = append(listArgs, perPage+1)
|
listArgs = append(listArgs, perPage+1)
|
||||||
} else {
|
} else {
|
||||||
innerNoWhere := `SELECT * FROM (` + innerQuery + `) sub`
|
innerNoWhere := `SELECT id, fn, email, phone, account_role, created_at, previous_first_name, previous_last_name, completed_count FROM (` + innerQuery + `) sub`
|
||||||
|
|
||||||
if cursorStr != "" {
|
if cursorStr != "" {
|
||||||
cursorCount, cursorCreatedAt, cursorID, err := validators.ParseCursor3(cursorStr)
|
cursorCount, cursorCreatedAt, cursorID, err := validators.ParseCursor3(cursorStr)
|
||||||
|
|||||||
Reference in New Issue
Block a user