From 11102dd59173282164d3a3e3120bddfc4b7e2661 Mon Sep 17 00:00:00 2001 From: Timur Enikeev Date: Sat, 9 Nov 2024 16:38:48 -0500 Subject: [PATCH] Case insensitive search --- rating_api/models/db.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/rating_api/models/db.py b/rating_api/models/db.py index ed6cc9f..5fa2a9b 100644 --- a/rating_api/models/db.py +++ b/rating_api/models/db.py @@ -7,7 +7,7 @@ from sqlalchemy import UUID, DateTime from sqlalchemy import Enum as DbEnum -from sqlalchemy import ForeignKey, Integer, String, and_, or_, true +from sqlalchemy import ForeignKey, Integer, String, and_, func, or_, true from sqlalchemy.ext.hybrid import hybrid_method from sqlalchemy.orm import Mapped, mapped_column, relationship @@ -40,8 +40,14 @@ def search(self, query: str) -> bool: response = true query = query.split(' ') for q in query: + q = q.lower() response = and_( - response, or_(self.first_name.contains(q), self.middle_name.contains(q), self.last_name.contains(q)) + response, + or_( + func.lower(self.first_name).contains(q), + func.lower(self.middle_name).contains(q), + func.lower(self.last_name).contains(q), + ), ) return response