from models.database import Database from models.user import User from models.city import City class Search: @staticmethod def search_members(query): cur = Database.connection.cursor() # cur.execute(""" # SELECT * FROM users WHERE # id LIKE ? OR # username LIKE ? OR # firstname LIKE ? OR # lastname LIKE ? OR # email LIKE ? OR # phone LIKE ? # """, (f"%{query}%", f"%{query}%", f"%{query}%", f"%{query}%", f"%{query}%", f"%{query}%")) cur.execute("""SELECT * FROM users""") rows = cur.fetchall() payload = [] for row in rows: user = User(Database.connection)._set_row_values(row) if str(user.id) == user.id: payload.append(user) continue if user.role == "MEMBER": if user.username in query or user.firstname in query or user.lastname in query or user.email in query or user.phone in query: payload.append(user) return payload @staticmethod def search_advisors(query): cur = Database.connection.cursor() cur.execute(""" SELECT * FROM users WHERE id LIKE ? OR username LIKE ? OR firstname LIKE ? OR lastname LIKE ? OR email LIKE ? OR phone LIKE ? """, (f"%{query}%", f"%{query}%", f"%{query}%", f"%{query}%", f"%{query}%", f"%{query}%")) rows = cur.fetchall() payload = [] for row in rows: user = User(Database.connection)._set_row_values(row) if str(user.id) == user.id: payload.append(user) continue if user.role == "ADVISOR": if user.username in query or user.firstname in query or user.lastname in query or user.email in query or user.phone in query: payload.append(user) return payload @staticmethod def search_admins(query): cur = Database.connection.cursor() cur.execute(""" SELECT * FROM users WHERE id LIKE ? OR username LIKE ? OR firstname LIKE ? OR lastname LIKE ? OR email LIKE ? OR phone LIKE ? """, (f"%{query}%", f"%{query}%", f"%{query}%", f"%{query}%", f"%{query}%", f"%{query}%")) rows = cur.fetchall() payload = [] for row in rows: user = User(Database.connection)._set_row_values(row) if str(user.id) == user.id: payload.append(user) continue if user.role == "SYSTEM_ADMIN": if user.username in query or user.firstname in query or user.lastname in query or user.email in query or user.phone in query: payload.append(user) return payload @staticmethod def get_all_cites(): cur = Database.connection.cursor() cur.execute("SELECT * FROM cities") rows = cur.fetchall() payload = [] for row in rows: city = City(Database.connection)._set_row_values(row) payload.append(city) return payload