From df4b61b09a01beae2543fc621dc2d4200e2e2375 Mon Sep 17 00:00:00 2001 From: Administrator Date: Mon, 2 Oct 2023 23:00:12 +0300 Subject: [PATCH] stats json --- daemons/api.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/daemons/api.py b/daemons/api.py index 50e5c33..3a540ea 100644 --- a/daemons/api.py +++ b/daemons/api.py @@ -8,6 +8,33 @@ from helpers.mongo import mongo def api(): app = Flask(__name__) + @app.route('/stats/json', methods=['GET']) + def stats_json(): + all_users = mongo.users_collection.count_documents({}) + teachers = mongo.users_collection.count_documents({"is_teacher": True}) + return { + "Всего пользователей": all_users, + "Пользователей прошедших регистрацию": mongo.users_collection.count_documents({'email': {'$ne': None}}), + "Преподавателей": teachers, + "Отписались от уведомлений": mongo.users_collection.count_documents({'notify_minutes': None}), + "Отправлено уведомлений за сегодня": mongo.lessons_collection.count_documents({'notified': True}), + "Проиндексировано занятий из РУЗа": mongo.lessons_collection.count_documents({}), + "Пользователей из Москвы": mongo.users_collection.count_documents( + {'campus': 'Москва'}) + mongo.users_collection.count_documents({'campus': {'$exists': False}}), + "Пользователей из Москвы (регистрация)": mongo.users_collection.count_documents( + {'campus': 'Москва', 'email': {'$ne': None}}) + mongo.users_collection.count_documents( + {'campus': {'$exists': False}, 'email': {'$ne': None}}), + "Пользователей из Перми": mongo.users_collection.count_documents({'campus': 'Пермь'}), + "Пользователей из Перми (регистрация)": mongo.users_collection.count_documents( + {'campus': 'Пермь', 'email': {'$ne': None}}), + "Пользователей из Нижнего Новгорода": mongo.users_collection.count_documents({'campus': 'Нижний Новгород'}), + "Пользователей из Нижнего Новгорода (регистрация)": mongo.users_collection.count_documents( + {'campus': 'Нижний Новгород', 'email': {'$ne': None}}), + "Пользователей из Санкт-Петербурга": mongo.users_collection.count_documents({'campus': 'Санкт-Петербург'}), + "Пользователей из Санкт-Петербурга (регистрация)": mongo.users_collection.count_documents( + {'campus': 'Санкт-Петербург', 'email': {'$ne': None}}) + } + @app.route('/stats', methods=['GET']) def stats(): all_users = mongo.users_collection.count_documents({})