From 13554c1b0297dc9488ae6c6d2370513174b37528 Mon Sep 17 00:00:00 2001 From: John Mizerek Date: Sun, 18 Jan 2026 13:29:25 -0800 Subject: [PATCH] Fix user search to support name, email, and phone --- api/portal/searchUser.cfm | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/api/portal/searchUser.cfm b/api/portal/searchUser.cfm index 2a6d9ed..8ae6c45 100644 --- a/api/portal/searchUser.cfm +++ b/api/portal/searchUser.cfm @@ -35,6 +35,7 @@ if (len(query) < 3) { try { // Detect if it's a phone number or email isPhone = reFind("^[\d\s\-\(\)\+]+$", query) && len(normalizePhone(query)) >= 7; + isEmail = find("@", query) > 0; if (isPhone) { // Search by phone - normalize both sides @@ -47,15 +48,26 @@ try { ", { phone: { value: "%" & phoneDigits & "%", cfsqltype: "cf_sql_varchar" } }, { datasource: "payfrit" }); - } else { - // Search by email + } else if (isEmail) { + // Search by email (partial match) qUser = queryExecute(" SELECT UserID, UserFirstName, UserLastName, UserContactNumber, UserEmailAddress FROM Users - WHERE UserEmailAddress = :email + WHERE UserEmailAddress LIKE :email LIMIT 1 ", { - email: { value: query, cfsqltype: "cf_sql_varchar" } + email: { value: "%" & query & "%", cfsqltype: "cf_sql_varchar" } + }, { datasource: "payfrit" }); + } else { + // Search by name + qUser = queryExecute(" + SELECT UserID, UserFirstName, UserLastName, UserContactNumber, UserEmailAddress + FROM Users + WHERE UserFirstName LIKE :name OR UserLastName LIKE :name + OR CONCAT(UserFirstName, ' ', UserLastName) LIKE :name + LIMIT 1 + ", { + name: { value: "%" & query & "%", cfsqltype: "cf_sql_varchar" } }, { datasource: "payfrit" }); }