ANALYSE-8/services/search.py
2022-10-09 21:31:25 +02:00

74 lines
2.4 KiB
Python

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""")
rows = cur.fetchall()
payload = []
for row in rows:
user = User(Database.connection)._set_row_values(row)
if str(user.id) == query:
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""")
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""")
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