async def user_is_author(db, project_id, user_id): # Вернуть True если пользователь автор проекта user_is_author = await db.fetchrow(projects.select().where( projects.c.id == project_id).where(projects.c.author_id == user_id) ) if user_is_author: return True
async def get_all_projects(db): # Вернуть все проекты project = await db.fetch( projects.select().where( projects.c.deadline > datetime.utcnow()).where( projects.c.total == False).order_by(desc('member')) # "SELECT * FROM projects as p LEFT JOIN projects_summary as p_s ON p_s.project_id = p.id WHERE p.deadline > $1 AND p_s.total = False ORDER BY member", datetime.utcnow() ) return project
async def get_project_that_user_created(db, user_id): # Вернуть проект по его автору project = await db.fetch( projects.select().where(projects.c.author_id == user_id)) return project
async def get_top3_projects(db): # Вернуть 3 проекта по количеству участников project = await db.fetch(projects.select().order_by( desc('member')).limit(3)) return project
async def get_projects_by_id(db, project_id): # Вернуть проект по id, которые валидны по времени project = await db.fetchrow(projects.select().where( projects.c.deadline > datetime.utcnow()).where( projects.c.id == project_id)) return project
async def get_total_project(db): # Вернуть все законченные проекты project = await db.fetch(projects.select().where( projects.c.deadline < datetime.utcnow()).where( projects.c.total == True).order_by(desc('member'))) return project