в этом документе приведено описание работы модуля core, который сейчас располагается по пути: /api/app/api/v1/core
и доступен в репозитории
. описание актуально на май 2022.
в папке core
находятся fastapi-handlers, которые обрабатывают входящие запросы. они разбиты на две директории. в модуле core/admin/handlers.py
хэндлеры отвечают за администрирование приложения, например, получение логов. в модуле core/service/handlers.py
хэндлеры принимают запросы от других частей приложения или внешних систем, например, запуск и остановка урока, запуск урока из SmartLMS.
core
core/service/handlers.py
в этом файле реализованы функции управления приложением.
start_lesson
эта функция служит для запуска интерактивного урока по POST-запросу по адресу /start
. аргументы:
payload: RequestFromTelegram = {
email: str,
platform: str,
front: str = ("tg", "zulip"),
}
session: db_session
функция определяет, какой урок необходимо запустить, и вызывает соответствующую функцию из нужного environment (trello_environment.create_environment, taiga_environment.create_environment
)
stop_lesson
эта функция служит для остановки интерактивного урока по POST-запросу по адресу /stop
. аргументы аналогичны предыдущему пункту.
функция определяет, какой урок необходимо остановить, и вызывает соответствующую функцию из нужного environment (trello_environment.delete_environment, taiga_environment.delete_environment
)
invitelms
эта функция служит для запуска интерактивного урока по POST-запросу из SmartLMS (точнее smartlms bridge (project 588)) по адресу /invitelms?course=ps22&lesson=git
. в качестве аргументов принимается тело запроса (от bridge приходит jwt-токен с информацией об участнике), в параметрах запроса указывается курс и урок.
функция проверяет данные и отправляет отправляет запрос в zulip_notifier
по адресу /bot/startlms
, после чего запускается урок из SmartLMS. в конце пользователь перенаправляется на страницу zulip с ботом.