예제 #1
0
def rooms():
    if request.method == 'POST':
        room_data = Room(**get_request_data(request))
        if not room_data.validate():
            return json_response({"message": "Room form is invalid"}, 400)

        return room_data.create(db.rooms)
    else:
        return list_all(db.rooms, arguments=request.args)
예제 #2
0
def list_meetings(collection, filters, args):
    if 'show_old' not in args:
        filters['start_time'] = {
            "$gt": rfc3339.rfc3339(datetime.datetime.now())
        }
    else:
        args.pop('show_old')
    filters['_temp'] = {"$exists": False}

    return list_all(collection, filters, args)
    def get(self):
        args = self.args()

        if 'email' in args and args["email"] == "*":
            users = [ u.todict() for u in db.list_all(db.User) ]
        elif 'email' in args:
            users = self._db.get_user(args["email"])
            if not users:
                return self._return({ "status": "error", "desc": "not found" }, 404)
            users = [ users.todict() ]
        elif 'user_id' in args and args["user_id"] == "*":
            users = [ u.todict() for u in db.list_all(db.User) ]
        elif 'user_id' in args:
            users = self._db.get_user_id(args["user_id"])
            if not users:
                return self._return({ "status": "error", "desc": "not found" }, 404)
            users = [ users.todict() ]
        else:
            users = [ u.todict() for u in db.list_all(db.User) ]

        return self._return({ "status":"ok", "users":users })
예제 #4
0
 def check_id(self, bot, update):
     answer = update.message.text
     if answer.isdigit():  # если ввели код
         user_id = int(answer)
         print(user_id)
         user = db.list_them([user_id])[0]  # получаем словарь пользователя
         print(user)
         if user:  # если вернулся не None
             self.users[user_id] = [update.message.chat_id, user['name']]
             self.chats[update.message.chat_id] = [user_id, user['name']]
             if db.get_status(user_id) == 'teacher':
                 self.teachers[update.message.chat_id] = user_id
             print('users\t', self.users)
             print('chats\t', self.chats)
             print('teachers\t', self.teachers)
             if update.message.chat_id in self.teachers:
                 menu = self.teacher_menu
             else:
                 menu = self.student_menu
             bot.sendMessage(
                 chat_id=update.message.chat_id,
                 text='Здравствуйте, {} ({})! Что бы Вы хотели сделать?'.
                 format(self.chats[update.message.chat_id][1],
                        self.chats[update.message.chat_id][0]),
                 reply_markup=menu)
             return ConversationHandler.END
         else:  # id не нашлось в базе
             bot.sendMessage(
                 chat_id=update.message.chat_id,
                 text=
                 'К сожалению, такого id в нашей базе нет. Попробуйте снова или отправьте любое текстовое сообщение, чтобы зарегистрироваться.'
             )
             return 'id'
     else:  # совсем новенький
         user_ids = [user['user_id']
                     for user in db.list_all()]  # кто есть в базе
         print('users in base\t', user_ids)
         user_id = random.randint(1000, 9999)  # четырёхзначное число
         while user_id in user_ids:
             user_id = random.randint(1000, 9999)
         self.chats[update.message.chat_id] = [user_id]
         self.users[user_id] = [update.message.chat_id]
         update.message.reply_text('{}'.format(user_id))
         bot.sendMessage(
             chat_id=update.message.chat_id,
             text=
             'Тогда представьтесь, пожалуйста.\n*Если Вы студент:* введите фамилию, имя и группу через запятую в формате "Фамилия, Имя, группа".\n_Пример: Иванов, Иван, 15ФПЛ_\n*Если Вы преподаватель:* введите фамилию, имя и ключ доступа через запятую в формате "Фамилия, Имя Отчество, ключ доступа".\n_Пример: Иванов, Иван Иванович, key_\n\n*Внимательно проверяйте все данные! В текущей версии пока нет возможности их исправить.*',
             parse_mode='Markdown')
         return 'name'
    def get(self):
        args = self.args()
        if not self.checkParameter(["user_id", "sighting_id"], args):
            return self._return({ "status": "error", "desc": "invalid parameters." }, 400)

        if args["sighting_id"] == "*" and args["user_id"] == "*":
            # list sightings
            sightings = [ s.todict() for s in db.list_all(db.Sighting) ]
        elif args["sighting_id"] == "*":
            sightings = [ s.todict() for s in self._db.get_sighting_user(args["user_id"]) ]
        else:
            sightings = self._db.get_sighting_id(args["sighting_id"])
            if not sightings:
                return self._return({ "status": "error", "desc": "not found" }, 404)
            sightings = sightings.todict()

        return self._return({ "status":"ok", "sightings":sightings })
예제 #6
0
    def start(self, bot, update):
        if update.message.chat_id in self.chats:  # чат не новый
            print('users\t', self.users)
            print('chats\t', self.chats)
            print('users in base\t', [user for user in db.list_all()])

            if update.message.chat_id in self.teachers:
                menu = self.teacher_menu
            else:
                menu = self.student_menu
            bot.sendMessage(
                chat_id=update.message.chat_id,
                text='Здравствуйте, {} ({})! Что бы Вы хотели сделать?'.format(
                    self.chats[update.message.chat_id][1],
                    self.chats[update.message.chat_id][0]),
                reply_markup=menu)
            return ConversationHandler.END
        else:
            update.message.reply_text(
                'Здравствуйте! Похоже, Вы у нас впервые. Я присвою Вам id — пожалуйста, запомните его, чтобы мой брат в ВК мог узнать Вас. Или он Вам уже присвоен? Введите свой id или отправьте любое сообщение, чтобы получить его.'
            )
            return 'id'
예제 #7
0
def room_meetings(room_id):
    if find_one(db.rooms, room_id) is None:
        return json_response({"message": "Room does not exist"}, 404)

    return list_all(db.meetings, {"room_id": room_id}, request.args)