From c9c89100f9a468816ec8e5a52308aff41c51faae Mon Sep 17 00:00:00 2001 From: Noah Petherbridge Date: Sun, 8 Oct 2023 10:57:08 -0700 Subject: [PATCH] Search: don't filter by age for people who hide their age --- pkg/models/user.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/pkg/models/user.go b/pkg/models/user.go index 511c1f2..f14fa41 100644 --- a/pkg/models/user.go +++ b/pkg/models/user.go @@ -320,13 +320,29 @@ func SearchUsers(user *User, search *UserSearch, pager *Pagination) ([]*User, er if search.AgeMin > 0 { date := time.Now().AddDate(-search.AgeMin, 0, 0) - wheres = append(wheres, "birthdate <= ?") + wheres = append(wheres, ` + birthdate <= ? AND NOT EXISTS ( + SELECT 1 + FROM profile_fields + WHERE user_id = users.id + AND name = 'hide_age' + AND value = 'true' + ) + `) placeholders = append(placeholders, date) } if search.AgeMax > 0 { date := time.Now().AddDate(-search.AgeMax-1, 0, 0) - wheres = append(wheres, "birthdate >= ?") + wheres = append(wheres, ` + birthdate >= ? AND NOT EXISTS ( + SELECT 1 + FROM profile_fields + WHERE user_id = users.id + AND name = 'hide_age' + AND value = 'true' + ) + `) placeholders = append(placeholders, date) }