Career Service API

Спецификация REST API сервиса карьерного сопровождения студентов. Документация описывает основные пользовательские сценарии, связанные с авторизацией, работой с резюме, консультациями и обратной связью.
Operations
Регистрация студента
POST /auth/reg

Создает учетную запись студента и сохраняет базовые персональные данные для дальнейшего заполнения профиля.

Request body

Responses

200 200

Пользователь зарегистрирован.

400 400

Некорректные данные регистрации.

Body
500 500

Внутренняя ошибка сервера.

Body
Вход в систему
POST /auth/login

Проверяет email и пароль, после успешной авторизации сохраняет JWT в cookie-сессии.

Request body

Responses

200 200

Пользователь авторизован.

400 400

Некорректные данные входа.

Body
500 500

Внутренняя ошибка сервера.

Body
Выход из системы
POST /auth/logout

Authentication

cookieAuth

Очищает cookie авторизации и завершает текущую сессию пользователя.

Responses

200 200

Пользователь вышел из аккаунта.

401 401

Пользователь не авторизован.

Body
500 500

Внутренняя ошибка сервера.

Body
Запрос восстановления пароля
POST /auth/reset

Запускает сценарий восстановления пароля: формирует одноразовую ссылку и отправляет ее на почту пользователя.

Request body

Object
email
string email required

Responses

200 200

Инструкция отправлена, если аккаунт существует.

400 400

Некорректный email.

Body
500 500

Внутренняя ошибка сервера.

Body
Подтверждение восстановления пароля
POST /auth/reset/confirm

Проверяет токен восстановления и сохраняет новый пароль пользователя.

Request body

Object
token
string required
password
string required

Responses

200 200

Пароль обновлен.

400 400

Некорректный или истекший токен восстановления.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить профиль студента
GET /profile/me

Authentication

cookieAuth

Используется студентом для загрузки данных профиля, контактов и учебной информации.

Responses

200 200

Профиль студента.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав для выполнения действия.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить профиль студента
PUT /profile/me

Authentication

cookieAuth

Сохраняет основные данные профиля студента из общего редактора профиля.

Request body

Object

Responses

200 200

Профиль обновлен.

400 400

Некорректные данные профиля.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав для выполнения действия.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить настройки студента
PUT /profile/settings

Authentication

cookieAuth

Обновляет настройки студента: ФИО, факультет, программу, личную почту, телефон, годы обучения и флаг удаления фото.

Request body

Responses

200 200

Настройки сохранены.

400 400

Некорректные данные профиля.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав для выполнения действия.

Body
500 500

Внутренняя ошибка сервера.

Body
Загрузить фото студента
POST /profile/upload-photo

Authentication

cookieAuth

Загружает файл в поле photo. Принимаются JPG, JPEG или PNG до 2 МБ.

Request body

multipart/form-data
string binary

Responses

200 200

Фото загружено.

400 400

Некорректные данные профиля.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав для выполнения действия.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить профиль консультанта
GET /profile/consultant/me

Authentication

cookieAuth

Используется консультантом для загрузки данных своей публичной страницы и профессионального описания.

Responses

200 200

Профиль консультанта.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав для выполнения действия.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить профиль консультанта
PUT /profile/consultant/settings

Authentication

cookieAuth

Сохраняет данные консультанта: ФИО, должность, место работы, описание, специализацию, пользу для студентов и флаг удаления фото.

Responses

200 200

Настройки сохранены.

400 400

Некорректные данные профиля.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав для выполнения действия.

Body
500 500

Внутренняя ошибка сервера.

Body
Загрузить фото консультанта
POST /profile/consultant/upload-photo

Authentication

cookieAuth

Загружает файл в поле photo. Принимаются JPG, JPEG или PNG до 2 МБ.

Request body

multipart/form-data
string binary

Responses

200 200

Фото загружено.

400 400

Некорректные данные профиля.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав для выполнения действия.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить список резюме студента
GET /resumes

Authentication

cookieAuth

Возвращает все резюме текущего студента для страницы “Мои резюме” и выбора резюме при записи на консультацию.

Responses

200 200

Список резюме.

Body
Array of Resume
401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к резюме.

Body
500 500

Внутренняя ошибка сервера.

Body
Создать резюме
POST /resumes

Authentication

cookieAuth

Создает новую карточку резюме студента с заголовком, шаблоном и структурированными данными конструктора.

Request body

Responses

200 200

Резюме создано.

Body
400 400

Некорректные данные резюме.

Body
401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к резюме.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить резюме
GET /resumes/{id}

Authentication

cookieAuth

Загружает конкретное резюме студента для просмотра или открытия в редакторе.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Резюме.

Body
401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к резюме.

Body
404 404

Резюме не найдено.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить резюме
PUT /resumes/{id}

Authentication

cookieAuth

Перезаписывает данные выбранного резюме после редактирования в конструкторе.

Path variables

id
integer required

Идентификатор ресурса.

Request body

Responses

200 200

Резюме обновлено.

400 400

Некорректные данные резюме.

Body
401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к резюме.

Body
404 404

Резюме не найдено.

Body
500 500

Внутренняя ошибка сервера.

Body
Удалить резюме
DELETE /resumes/{id}

Authentication

cookieAuth

Удаляет резюме студента; если оно прикреплено к будущей консультации, консультант увидит, что исходное резюме было удалено.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Резюме удалено.

401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к резюме.

Body
404 404

Резюме не найдено.

Body
500 500

Внутренняя ошибка сервера.

Body
Скачать PDF резюме
GET /resumes/{id}/pdf

Authentication

cookieAuth

Генерирует PDF выбранного резюме по сохраненным данным и выбранному шаблону.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

PDF-файл.

Body
application/pdf
string binary
401 401

Пользователь не авторизован.

Body
application/pdf
403 403

Нет доступа к документу.

Body
application/pdf
404 404

Документ не найден.

Body
application/pdf
500 500

Внутренняя ошибка сервера.

Body
application/pdf
Создать копию резюме
POST /resumes/{id}/copy

Authentication

cookieAuth

Создает самостоятельную копию существующего резюме, чтобы студент мог развивать несколько версий.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Копия создана.

401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к резюме.

Body
404 404

Резюме не найдено.

Body
500 500

Внутренняя ошибка сервера.

Body
Сформировать PDF по данным резюме
POST /resumes/pdf

Authentication

cookieAuth

Генерирует PDF по переданным данным конструктора без обязательного сохранения резюме в базе.

Request body

Responses

200 200

PDF-файл.

Body
application/pdf
string binary
400 400

Не удалось сформировать PDF.

Body
application/pdf
401 401

Пользователь не авторизован.

Body
application/pdf
403 403

Нет доступа к документу.

Body
application/pdf
500 500

Внутренняя ошибка сервера.

Body
application/pdf
Получить версию резюме с правками консультанта
GET /resumes/consultation-versions/{id}

Authentication

cookieAuth

Открывает версию резюме, которую консультант сохранил после консультации.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Версия резюме.

Body
401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к версии резюме или консультации.

Body
404 404

Версия резюме или консультация не найдена.

Body
500 500

Внутренняя ошибка сервера.

Body
Скачать PDF версии резюме с правками консультанта
GET /resumes/consultation-versions/{id}/pdf

Authentication

cookieAuth

Генерирует PDF версии резюме с правками консультанта.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

PDF-файл.

Body
application/pdf
string binary
401 401

Пользователь не авторизован.

Body
application/pdf
403 403

Нет доступа к документу.

Body
application/pdf
404 404

Документ не найден.

Body
application/pdf
500 500

Внутренняя ошибка сервера.

Body
application/pdf
Сохранить версию консультанта как свое резюме
POST /resumes/consultation-versions/{id}/copy

Authentication

cookieAuth

Позволяет студенту сохранить редакцию консультанта как свое новое резюме.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Копия создана.

401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к версии резюме или консультации.

Body
404 404

Версия резюме или консультация не найдена.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить резюме студента для консультации
GET /resumes/consultant/slot/{slotId}

Authentication

cookieAuth

Открывает консультанту резюме, прикрепленное студентом к конкретной записи.

Path variables

slotId
integer required

Идентификатор слота консультации.

Responses

200 200

Резюме студента.

401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к версии резюме или консультации.

Body
404 404

Версия резюме или консультация не найдена.

Body
500 500

Внутренняя ошибка сервера.

Body
Сохранить правки консультанта в резюме
PUT /resumes/consultant/slot/{slotId}

Authentication

cookieAuth

Сохраняет отдельную редакцию резюме консультанта, не перезаписывая исходное резюме студента.

Path variables

slotId
integer required

Идентификатор слота консультации.

Request body

Responses

200 200

Правки сохранены.

400 400

Некорректный запрос.

Body
401 401

Пользователь не авторизован.

Body
403 403

Нет доступа к версии резюме или консультации.

Body
404 404

Версия резюме или консультация не найдена.

Body
500 500

Внутренняя ошибка сервера.

Body
Скачать PDF резюме студента для консультации
GET /resumes/consultant/slot/{slotId}/pdf

Authentication

cookieAuth

Формирует PDF резюме студента в контексте конкретной консультации.

Path variables

slotId
integer required

Идентификатор слота консультации.

Responses

200 200

PDF-файл.

Body
application/pdf
string binary
401 401

Пользователь не авторизован.

Body
application/pdf
403 403

Нет доступа к документу.

Body
application/pdf
404 404

Документ не найден.

Body
application/pdf
500 500

Внутренняя ошибка сервера.

Body
application/pdf
Получить список активных консультантов
GET /consultants

Authentication

cookieAuth

Возвращает активных консультантов выбранного типа для студенческого каталога.

Request parameters

type
string optional
Enumeration:
manager
alumni
partner

Responses

200 200

Список консультантов.

Body
401 401

Пользователь не авторизован.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить страницу консультанта
GET /consultants/{id}

Authentication

cookieAuth

Загружает публичную карточку консультанта, его описание и данные для записи.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Данные консультанта.

401 401

Пользователь не авторизован.

Body
404 404

Консультант не найден.

Body
500 500

Внутренняя ошибка сервера.

Body
Slots
POST /slots/book/{slotId}
PUT /slots/consultant/bookings/{slotId}
DELETE /slots/consultant/bookings/{slotId}/resume
Получить доступные слоты консультанта для студента
GET /slots/{consultantId}

Authentication

cookieAuth

Показывает студенту будущие свободные слоты выбранного консультанта.

Path variables

consultantId
integer required

Responses

200 200

Список слотов.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Записаться на слот
POST /slots/book/{slotId}

Authentication

cookieAuth

Multipart-запрос. Можно передать resumeId для резюме из сервиса или файл resume в формате PDF, DOC или DOCX до 5 МБ. Дополнительно передаются selectedLocation и комментарий студента comment.

Path variables

slotId
integer required

Идентификатор слота консультации.

Request body

multipart/form-data
string binary

Responses

200 200

Запись создана.

400 400

Некорректный запрос.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Слот или запись не найдены.

Body
500 500

Внутренняя ошибка сервера.

Body
Отменить запись студентом
POST /slots/cancel/{slotId}

Authentication

cookieAuth

Отменяет запись студента и освобождает слот для повторной записи.

Path variables

slotId
integer required

Идентификатор слота консультации.

Responses

200 200

Запись отменена.

400 400

Некорректный запрос.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить записи студента
GET /slots/my

Authentication

cookieAuth

Возвращает будущие и прошедшие консультации текущего студента для страницы “Мои записи”.

Responses

200 200

Список записей.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить детали записи студента
GET /slots/my/{bookingId}

Authentication

cookieAuth

Загружает детальную страницу записи студента с данными слота, резюме, комментариями, файлами и обратной связью.

Path variables

bookingId
integer required

Responses

200 200

Детали записи.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Слот или запись не найдены.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить настройки расписания консультанта
GET /slots/consultant/settings

Authentication

cookieAuth

Возвращает сохраненные правила расписания консультанта: рабочие дни, интервалы времени, длительность и форматы.

Responses

200 200

Настройки расписания.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Сохранить настройки расписания консультанта
PUT /slots/consultant/settings

Authentication

cookieAuth

Сохраняет правила расписания перед переходом к выбору конкретных слотов.

Request body

Responses

200 200

Настройки сохранены.

400 400

Некорректные настройки или параметры запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить предпросмотр расписания
GET /slots/consultant/preview

Authentication

cookieAuth

Строит предпросмотр сетки слотов на основе уже сохраненных правил расписания.

Responses

200 200

Сетка слотов.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Рассчитать предпросмотр расписания
POST /slots/consultant/preview

Authentication

cookieAuth

Рассчитывает сетку слотов по правилам, которые консультант редактирует до финального сохранения.

Request body

Responses

200 200

Сетка слотов.

400 400

Некорректные настройки или параметры запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Рассчитать влияние новых правил расписания
POST /slots/consultant/settings-impact

Authentication

cookieAuth

Показывает предупреждение о свободных слотах, которые исчезнут после изменения рабочих дней или времени.

Request body

Responses

200 200

Информация о свободных слотах, которые исчезнут.

400 400

Некорректные настройки или параметры запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Применить выбранные слоты расписания
POST /slots/consultant/apply

Authentication

cookieAuth

Финально сохраняет выбранные слоты и обновляет расписание консультанта.

Request body

Object

Responses

200 200

Расписание сохранено.

400 400

Некорректные настройки или параметры запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить расписание консультанта
GET /slots/consultant/schedule

Authentication

cookieAuth

Загружает рабочее расписание консультанта с доступными, прошедшими и забронированными слотами.

Responses

200 200

Расписание консультанта.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить детали консультации для консультанта
GET /slots/consultant/bookings/{slotId}

Authentication

cookieAuth

Открывает консультанту детальную страницу записи студента на конкретный слот.

Path variables

slotId
integer required

Идентификатор слота консультации.

Responses

200 200

Детали консультации.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Консультация или слот не найдены.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить детали консультации
PUT /slots/consultant/bookings/{slotId}

Authentication

cookieAuth

Сохраняет комментарий консультанта, детали формата, файл для студента и связанные материалы консультации.

Path variables

slotId
integer required

Идентификатор слота консультации.

Request body

Object

Responses

200 200

Детали консультации обновлены.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Консультация или слот не найдены.

Body
500 500

Внутренняя ошибка сервера.

Body
Отменить консультацию консультантом
DELETE /slots/consultant/bookings/{slotId}

Authentication

cookieAuth

Отменяет консультацию со стороны консультанта и освобождает слот.

Path variables

slotId
integer required

Идентификатор слота консультации.

Responses

200 200

Консультация отменена.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Консультация или слот не найдены.

Body
500 500

Внутренняя ошибка сервера.

Body
Загрузить файл консультанта для студента
POST /slots/consultant/bookings/{slotId}/resume

Authentication

cookieAuth

Загружает файл в поле consultantResume. Принимаются PDF, DOC или DOCX до 5 МБ.

Path variables

slotId
integer required

Идентификатор слота консультации.

Request body

multipart/form-data
string binary

Responses

200 200

Файл загружен.

400 400

Файл не выбран или запрос некорректен.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Консультация не найдена.

Body
500 500

Внутренняя ошибка сервера.

Body
Удалить файл консультанта
DELETE /slots/consultant/bookings/{slotId}/resume

Authentication

cookieAuth

Удаляет файл, который консультант прикрепил для студента по итогам консультации.

Path variables

slotId
integer required

Идентификатор слота консультации.

Responses

200 200

Файл удален.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Консультация не найдена.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить форму обратной связи по записи
GET /feedback/my/{bookingId}

Authentication

cookieAuth

Возвращает студенту форму обратной связи после завершения консультации.

Path variables

bookingId
integer required

Responses

200 200

Форма обратной связи.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Форма, запись или отзыв не найдены.

Body
500 500

Внутренняя ошибка сервера.

Body
Отправить обратную связь
POST /feedback/my/{bookingId}

Authentication

cookieAuth

Сохраняет ответы студента, проверяет обязательные вопросы и не допускает повторную отправку формы.

Path variables

bookingId
integer required

Request body

Responses

200 200

Ответы сохранены.

400 400

Некорректные данные обратной связи.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Форма, запись или отзыв не найдены.

Body
409 409

Обратная связь уже отправлена.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить отзывы по консультациям консультанта
GET /feedback/consultant

Authentication

cookieAuth

Возвращает консультанту список отзывов, агрегированную статистику, сортировку и постраничную подгрузку.

Request parameters

sort
string optional
Enumeration:
date_desc
date_asc
rating_desc
rating_asc
Default:
date_desc
limit
integer optional
Min: 1
Max: 50
Default:
10
offset
integer optional
Default:
0

Responses

200 200

Список отзывов.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить обратную связь по конкретному слоту
GET /feedback/consultant/slots/{slotId}

Authentication

cookieAuth

Открывает консультанту ответы студента по конкретной консультации.

Path variables

slotId
integer required

Идентификатор слота консультации.

Responses

200 200

Ответы студента.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
404 404

Форма, запись или отзыв не найдены.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить список статей
GET /article

Возвращает опубликованные статьи для студентов; администратор может получить также черновики и использовать поиск с пагинацией.

Request parameters

search
string optional
limit
integer optional
Min: 1
Max: 50
Default:
5
offset
integer optional
Default:
0

Responses

200 200

Список статей.

500 500

Внутренняя ошибка сервера.

Body
Создать статью
POST /article

Authentication

cookieAuth

Создает статью в разделе теории с заголовком, подзаголовком, HTML-содержимым и статусом публикации.

Request body

Responses

200 200

Статья создана.

400 400

Некорректные данные статьи.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить статью
GET /article/{id}

Возвращает статью по идентификатору с учетом прав доступа к черновикам.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Статья.

404 404

Статья не найдена.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить статью
PUT /article/{id}

Authentication

cookieAuth

Обновляет статью, ее содержимое и статус публикации или черновика.

Path variables

id
integer required

Идентификатор ресурса.

Request body

Responses

200 200

Статья обновлена.

400 400

Некорректные данные статьи.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Удалить статью
DELETE /article/{id}

Authentication

cookieAuth

Удаляет статью из раздела теории.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Статья удалена.

400 400

Некорректные данные статьи.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Загрузить изображение для статьи
POST /upload

Authentication

cookieAuth

Загружает изображение в поле image. Принимаются JPG, JPEG или PNG до 2 МБ.

Request body

multipart/form-data
string binary

Responses

200 200

Изображение загружено.

400 400

Файл не выбран.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав.

Body
500 500

Внутренняя ошибка сервера.

Body
Создать факультет
POST /admin/faculties

Authentication

cookieAuth

Добавляет новый факультет в справочник для профилей студентов и образовательных программ.

Request body

Responses

200 200

Факультет создан.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить факультет
PUT /admin/faculties/{id}

Authentication

cookieAuth

Переименовывает факультет в справочнике.

Path variables

id
integer required

Идентификатор ресурса.

Request body

Responses

200 200

Факультет обновлен.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Удалить факультет
DELETE /admin/faculties/{id}

Authentication

cookieAuth

Удаляет факультет только если он не связан с программами или профилями студентов.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Факультет удален.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
409 409

Конфликт данных.

Body
500 500

Внутренняя ошибка сервера.

Body
Создать образовательную программу
POST /admin/programs

Authentication

cookieAuth

Добавляет образовательную программу и связывает ее с выбранным факультетом.

Request body

Responses

200 200

Программа создана.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить образовательную программу
PUT /admin/programs/{id}

Authentication

cookieAuth

Обновляет название программы или ее принадлежность к факультету.

Path variables

id
integer required

Идентификатор ресурса.

Request body

Object

Responses

200 200

Программа обновлена.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Удалить образовательную программу
DELETE /admin/programs/{id}

Authentication

cookieAuth

Удаляет программу только если она не используется в профилях студентов.

Path variables

id
integer required

Идентификатор ресурса.

Responses

200 200

Программа удалена.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
409 409

Конфликт данных.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить список аккаунтов консультантов
GET /admin/consultants

Authentication

cookieAuth

Возвращает административный список аккаунтов консультантов с поиском и пагинацией.

Request parameters

search
string optional
limit
integer optional
Default:
10
offset
integer optional
Default:
0

Responses

200 200

Список консультантов.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Создать аккаунт консультанта
POST /admin/consultants

Authentication

cookieAuth

Создает аккаунт консультанта, временный пароль и пытается отправить пароль на почту.

Responses

200 200

Консультант создан.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить консультанта
PUT /admin/consultants/{id}

Authentication

cookieAuth

Обновляет роль пользователя, тип консультанта и активность его публичной страницы.

Path variables

id
integer required

Идентификатор ресурса.

Request body

Object

Responses

200 200

Консультант обновлен.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить настройки страниц консультантов
GET /admin/consultant-pages

Authentication

cookieAuth

Возвращает настройки видимости страниц консультантов для студентов.

Responses

200 200

Настройки страниц.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить страницу типа консультантов
PUT /admin/consultant-pages/{type}

Authentication

cookieAuth

Сохраняет настройки страницы консультантов выбранного типа, включая набор консультантов и фильтры.

Path variables

type
string required
Enumeration:
manager
alumni
partner

Request body

Object

Responses

200 200

Страница обновлена.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Найти фильтры
GET /admin/filters

Authentication

cookieAuth

Ищет фильтры консультантов для административного интерфейса.

Request parameters

q
string optional

Responses

200 200

Список фильтров.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить справочники для форм обратной связи
GET /admin/feedback-meta

Authentication

cookieAuth

Возвращает типы консультантов и формы, необходимые для настройки обратной связи.

Responses

200 200

Метаданные обратной связи.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить формы обратной связи
GET /admin/feedback-forms

Authentication

cookieAuth

Возвращает формы обратной связи вместе с вопросами и порядком отображения.

Responses

200 200

Список форм.

401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
500 500

Внутренняя ошибка сервера.

Body
Обновить форму обратной связи
PUT /admin/feedback-forms/{formId}

Authentication

cookieAuth

Сохраняет название формы, активность вопросов, их типы, обязательность и порядок.

Path variables

formId
integer required

Request body

Object

Responses

200 200

Форма обновлена.

400 400

Некорректные данные запроса.

Body
401 401

Пользователь не авторизован.

Body
403 403

Недостаточно прав администратора.

Body
404 404

Ресурс не найден.

Body
500 500

Внутренняя ошибка сервера.

Body
Получить факультеты
GET /dict/faculties

Возвращает список факультетов для форм профиля и административных страниц.

Responses

200 200

Список факультетов.

500 500

Внутренняя ошибка сервера.

Body
Получить все образовательные программы
GET /dict/programs

Возвращает полный список образовательных программ.

Responses

200 200

Список программ.

500 500

Внутренняя ошибка сервера.

Body
Получить программы факультета
GET /dict/programs/{facultyId}

Возвращает программы, относящиеся к выбранному факультету.

Path variables

facultyId
integer required

Responses

200 200

Список программ.

500 500

Внутренняя ошибка сервера.

Body
Type Definitions
Error
Object
error
string
Example:
Описание ошибки.
RegisterRequest
Object
email
string email required
password
string required
name
string required
surname
string required
patronymic_name
string
LoginRequest
Object
email
string email required
password
string required
AuthResponse
Object
user
User
Object
id
integer
email
string email
role
string
Enumeration:
student
consultant
admin
name
string
surname
string
patronymic_name
string
StudentProfile
Object
user_id
integer
faculty_id
integer
program_id
integer
personal_email
string email
phone
string
start_year
integer
end_year
integer
photo
string
about
string
StudentSettingsPayload
Object
name
string
surname
string
patronymic_name
string
faculty_id
integer
program_id
integer
personal_email
string email
phone
string
Example:
+7 (999) 999-99-99
start_year
integer
end_year
integer
remove_photo
boolean

Удалить текущее фото профиля.

ConsultantProfile
Object
user_id
integer
type
string
Enumeration:
manager
alumni
partner
slug
string
position
string
work_place
string
photo
string
short_description
string
specialization
string
benefits
string
is_active
boolean
ConsultantSettingsPayload
Object
name
string
surname
string
patronymic_name
string
position
string
work_place
string
short_description
string
specialization
string
benefits
string
remove_photo
boolean

Удалить текущее фото профиля.

Resume
Object
id
integer
user_id
integer
title
string
template
string
data
Object
created_at
string date-time
updated_at
string date-time
ResumePayload
Object
title
string
template
string
data
Object
ScheduleSettings
Object
weekdays
Array of integer
weekdayRanges
Array
Object
slotDuration
integer
locations
Array of string
customLocation
string
FeedbackAnswers
Object
answers
Array
Object
questionId
integer
answerText
string
answerRating
integer
Min: 1
Max: 5
ConsultantFeedbackPage
Object
feedback
Array
Object
feedback_id
integer
feedback_created_at
string date-time
booking_id
integer
slot_id
integer
start_time
string date-time
duration
integer
student_name
string
student_surname
string
student_patronymic_name
string
form_title
string
rating
integer
summary
Object
average_rating
number
feedback_count
integer
completed_consultations_count
integer
below_four_count
integer
hasMore
boolean
ArticlePayload
Object
title
string required
subtitle
string
content
string required
is_published
boolean
NamePayload
Object
name
string required
ProgramPayload
Object
name
string required
faculty_id
integer required
ConsultantCreatePayload
Object
email
string email required
name
string required
surname
string required
patronymic_name
string
type
string required
Enumeration:
manager
alumni
partner
UploadResponse
Object
url
string
photo
string