Каталог содержит файл taiga_tokens.py
. В файле находятся переменные token
, headers
и callback_url
. headers
выглядит следующим образом: {'Content-Type': 'application/json', 'Authorization': 'Bearer %s' % token}
и используется при вызове функции requests.request()
.
Функция | Аргументы | Описание |
---|---|---|
create_project(project_name, project_description) | название и описание проекта | Создает проект с переданным названием и описанием |
delete_project(project_id) | id проекта | Удаляет проект по указанному id |
invite_member_to_project(project_id, member_email) | id проекта, email пользователя | Добавляет пользователя member_email в проект с project_id |
create_webhook(callback_url, project_id) | адрес получателя вебхуков и id проекта | Создает вебхук для указанного url, в указанном проекте |
delete_webhook(webhook_id) | id вебхука | Удаляет вебхук по указанному id |
calculate_score(marks_list) | json объект с оценками и весами заданий | Рассчитывает итоговую оценку пользователя и возвращает её |
send_mark_after_stop(email) | email пользователя | Завершает выполнение программы при вызове команды stop из чат-бота |
create_environment(email, course) | email пользователя, урок course | Данная функция инициализирует урок `course` для `email` пользователя |
delete_environment(project_id) | id проекта | Данная функция завершает выполнение урока |
Данная функция инициализирует урок course
для email
пользователя.
callback_url
и google_sheet
. callback_url
содержит адрес для вебхука. google_sheet
содержит сценарий для урока.create_project
с названием Training project for <email>
.email
с помощью invite_member_to_project
. Проверяет зарегистрирован ли пользователь в Taiga. Если нет, уведомляет об этом в Zulip.create_webhook
, для того чтобы получать уведомления о действиях пользователя.Данная функция завершает выполнение урока.
delete_webhook
, с помощью информации, полученной из бд.delete_project
.В этом файле находится блюпринт для фласка,содержащий сценарий, который зависит от этапа прохождения урока, на котором находится пользователь.
При регистрации вебхука, его содержимое записывается в json_content
, сценарий урока хранится в переменной google_sheet
,
# catching json object from webhook
json_content = request.get_json(force=True)
# get google sheet for taiga
google_sheet = get_values(RANGE_NAME='taiga')
На данном этапе, получаем информацию о стадии выполнения урока, листе оценок и email пользователя.
# get current stage
taiga_person = session.query(TaigaPerson).filter(TaigaPerson.user_id == json_content["by"]["id"]).first()
stage = taiga_person.stage
marks_list = taiga_person.marks_list
useremail = taiga_person.email
Затем происходит проверка выполнения пользователем необходимого действия в зависимости от стадии, на которой он находится.Далее приведен пример для проверки выполнения первого пункта.
if stage == 1:
# проверка действия
if json_content["action"] == "create" and json_content["type"] == "epic":
mark = 1
if mark == 0:
return send_message(useremail, google_sheet[stage+2][2])
Далее происходит обновление переменной с оценками, подсчет итоговой оценки с помощью функции calculate_score
. После этого пользователю отправляется сообщение с оценкой и подробно расписанными баллами по пунктам, а также выставляется оценка в классрум с помощью функции send_score
. Завершается выполнение скрипта запуском функции delete_environment
, которая удаляет индивидуальноге окружение и запись из бд.
https://docs.taiga.io/webhooks.html
Формат получения информации из гугл-таблицы аналогичен, описанному в файле "Trello"
https://301.miem.vmnet.top/invite?state=taiga@pm21project