Hseapp
This commit is contained in:
@@ -5,7 +5,6 @@ import pymongo
|
||||
|
||||
import settings
|
||||
from helpers import now
|
||||
from helpers.models import UserSchema, User
|
||||
|
||||
|
||||
class Mongo:
|
||||
@@ -26,21 +25,19 @@ class Mongo:
|
||||
("discipline", 1),
|
||||
("auditorium", 1),
|
||||
("begin", 1),
|
||||
("hse_user_id", 1),
|
||||
("user_email", 1),
|
||||
("link", 1)
|
||||
])
|
||||
self.lessons_collection.create_index([
|
||||
("hse_user_id", 1),
|
||||
("user_email", 1),
|
||||
("begin", 1)
|
||||
])
|
||||
self.lessons_collection.create_index([
|
||||
("hse_user_id", 1),
|
||||
("user_email", 1),
|
||||
("begin", 1),
|
||||
("notified", 1)
|
||||
])
|
||||
|
||||
def get_user(self, user_id: int) -> User:
|
||||
return UserSchema().loads(self.users_collection.find_one({"id": user_id}))
|
||||
|
||||
def __getitem__(self, item):
|
||||
return self.database.get_collection(item)
|
||||
@@ -53,32 +50,32 @@ class Mongo:
|
||||
def lessons_collection(self):
|
||||
return self["lessons"]
|
||||
|
||||
def _get_lessons_on_date(self, user: User, date: datetime.datetime):
|
||||
def _get_lessons_on_date(self, user: dict, date: datetime.datetime):
|
||||
date = datetime.datetime(year=date.year, month=date.month, day=date.day)
|
||||
next_date = date + datetime.timedelta(days=1)
|
||||
lessons = []
|
||||
for lesson in self.lessons_collection.find({
|
||||
"hse_user_id": user.hse_id,
|
||||
"user_email": user['email'],
|
||||
"begin": {"$gte": date, "$lte": next_date}}
|
||||
):
|
||||
lessons.append(lesson)
|
||||
lessons.sort(key=lambda les: les["begin"])
|
||||
return lessons
|
||||
|
||||
def get_today_lessons(self, user: User):
|
||||
def get_today_lessons(self, user: dict):
|
||||
return self._get_lessons_on_date(user, now(user))
|
||||
|
||||
def get_tomorrow_lessons(self, user: User):
|
||||
def get_tomorrow_lessons(self, user: dict):
|
||||
return self._get_lessons_on_date(user, now(user) + datetime.timedelta(days=1))
|
||||
|
||||
def get_week_lessons(self, user: User):
|
||||
def get_week_lessons(self, user: dict):
|
||||
date = now(user)
|
||||
date = datetime.datetime(year=date.year, month=date.month, day=date.day)
|
||||
weekday = date.weekday()
|
||||
next_date = date + datetime.timedelta(days=(6 - weekday))
|
||||
lessons = []
|
||||
for lesson in self.lessons_collection.find({
|
||||
"hse_user_id": user.hse_id,
|
||||
"user_email": user['email'],
|
||||
"begin": {"$gte": date, "$lte": next_date}}
|
||||
):
|
||||
lessons.append(lesson)
|
||||
|
||||
Reference in New Issue
Block a user