markpolyak / conference-management-new

0 stars 2 forks source link

Бэкенд. Генерация отчетов по конференции #10

Open markpolyak opened 1 month ago

markpolyak commented 1 month ago

Задание

Создать новую ветку в репозитории и подготовить пул-реквест, реализующий описанный ниже функционал.

На Python + FastAPI реализовать REST эндпоинты для генерации документов в формате MS Word (docx), приведенных в приложениях 1, 2 и 3 приказа ректора:

В качестве базы данных (хранилища) перечня конференций используется таблица Google.Sheets, с которой необходимо работать через Google Sheets API. Подробнее см. #2 и #9.

GET /conferences/{conference_id}/programme

Входные данные (URL)

Параметр {conference_id} (число) - идентификатор конференции.

Логика работы

В гугл-таблице осуществляется поиск конференции с указанным идентификатором. Если конференция не найдена, возвращается ошибка 404. Если конференция найдена, осуществляется проверка токена в заголовке "Authorization: Bearer {token}". Если указанный в нем токен не проходит проверку, возвращается ошибка 401. Если указанный в заголовке токен проверку прошел, бэкенд формирует запрошенный файл и возвращает его.

Выходные данные

При вызове эндпоинта из браузера должен скачиваться соответствующий файл. Для этого необходимо прописать правильные заголовки в ответе, отправляемом сервером на запрос. Тело ответа в этом случае - поток байт (содержимое бинарного файла).

GET /conferences/{conference_id}/report

Входные данные (URL)

Параметр {conference_id} (число) - идентификатор конференции.

Логика работы

В гугл-таблице осуществляется поиск конференции с указанным идентификатором. Если конференция не найдена, возвращается ошибка 404. Если конференция найдена, осуществляется проверка токена в заголовке "Authorization: Bearer {token}". Если указанный в нем токен не проходит проверку, возвращается ошибка 401. Если указанный в заголовке токен проверку прошел, бэкенд формирует запрошенный файл и возвращает его.

Выходные данные

При вызове эндпоинта из браузера должен скачиваться соответствующий файл. Для этого необходимо прописать правильные заголовки в ответе, отправляемом сервером на запрос. Тело ответа в этом случае - поток байт (содержимое бинарного файла).

GET /conferences/{conference_id}/publications

Входные данные (URL)

Параметр {conference_id} (число) - идентификатор конференции.

Логика работы

В гугл-таблице осуществляется поиск конференции с указанным идентификатором. Если конференция не найдена, возвращается ошибка 404. Если конференция найдена, осуществляется проверка токена в заголовке "Authorization: Bearer {token}". Если указанный в нем токен не проходит проверку, возвращается ошибка 401. Если указанный в заголовке токен проверку прошел, бэкенд формирует запрошенный файл и возвращает его.

Выходные данные

При вызове эндпоинта из браузера должен скачиваться соответствующий файл. Для этого необходимо прописать правильные заголовки в ответе, отправляемом сервером на запрос. Тело ответа в этом случае - поток байт (содержимое бинарного файла).

markpolyak commented 1 month ago

Задание обновлено