From 646fc81eb778c22055f9f6ac99a46d0864c8ae89 Mon Sep 17 00:00:00 2001 From: Vacbo Date: Sat, 30 May 2026 21:17:29 -0300 Subject: [PATCH] feat: add user search helpers --- backend/app/crud_search.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 backend/app/crud_search.py diff --git a/backend/app/crud_search.py b/backend/app/crud_search.py new file mode 100644 index 0000000000..08af5ea4e8 --- /dev/null +++ b/backend/app/crud_search.py @@ -0,0 +1,26 @@ +from sqlalchemy import text +from sqlmodel import Session + +from app.core.db import engine + + +def search_users_by_name(name: str): + """Return users whose full_name matches the given search term.""" + session = Session(engine) + query = ( + "SELECT id, email, full_name FROM \"user\" " + "WHERE full_name LIKE '%" + name + "%'" + ) + return session.exec(text(query)).all() + + +def count_users_by_status(session: Session, statuses=["active"]): + """Count users whose status is in the provided list.""" + in_clause = ",".join("'%s'" % s for s in statuses) + try: + result = session.exec( + text("SELECT count(*) FROM \"user\" WHERE status IN (%s)" % in_clause) + ) + return result.one() + except: + return 0