Управление всеми сессиями

Общее управление сеансами

Получить сессии пользователя

get

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

Структура ответа

При успешном выполнении (HTTP 200) ответ представляет собой JSON-объект, содержащий:

  "sessions": {
    "<session_id>": {
      "created_at": {
        "date": "ДД/ММ/ГГГГ",
        "time": "ЧЧ:ММ AM/PM"
      },
      "video_url": "...",
      "segments": <число>,
      "analyzed_video_url": "...",
      "activity": "...",
      "title": "...",
      "user_id": "...",
      "user_name": "...",
      "report_comments": {...},
      "metrics": {...}
      // другие поля сессии
    },
    "...": {...}
  }
} ```
### Обработка ошибок
- **400 Bad Request**: Некорректные параметры (например, отсутствующий или неверный токен).
- **401 Unauthorized**: Токен отсутствует или недействителен.
- **403 Forbidden**: У пользователя нет прав администратора.
- **404 Not Found**: Не удалось получить сессии (например, сессии не найдены).
- **500 Internal Server Error**: Непредвиденная ошибка на сервере.
### Безопасность
В заголовке `Authorization` должен быть указан действительный API-KEY токен.
Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Responses
200

Сессии пользователя успешно получены.

application/json
get
/session-management/sessions/

Получить сессии по ID

post

Получает детальные данные сессий по списку их ID. Этот эндпоинт используется, когда клиент уже имеет конкретные ID сессий (например, из сохраненных отчетов) и хочет получить их полные данные.

Тело запроса

  • session_ids (обязательно): Список ID документов сессий для получения.

Безопасность

Требуется Bearer Token в заголовке Authorization.

Ошибки

  • 400 Bad Request: Некорректные входные данные.

  • 401 Unauthorized: Отсутствует или недействителен токен.

  • 403 Forbidden: Пользователь не авторизован.

  • 500 Internal Server Error: Непредвиденная ошибка.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Body
session_idsstring[]Required

Список ID документов сессий для получения.

Responses
200

Сессии успешно получены.

application/json
post
/session-management/sessions/by-ids/

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

get

Получает сессии пользователя, отфильтрованные по необязательным параметрам, таким как диапазон дат, тип активности, заголовок или ID пользователя. Также поддерживает пагинацию через start_after_id или end_before_id, если фильтры не применены.

Параметры запроса

  • start_after_id (строка, опционально): ID сессии, после которой начинать пагинацию. Используется только если фильтры не заданы.

  • end_before_id (строка, опционально): ID сессии, перед которой заканчивать пагинацию. Используется только если фильтры не заданы.

  • limit (целое число, опционально): Максимальное количество сессий для получения (по умолчанию=10).

  • activity (строка, опционально): Фильтр по типу активности (например, 'Running', 'Vertical Jump').

  • start_date (строка, опционально, формат: дд/мм/гггг): Фильтр сессий, созданных в эту дату или позже.

  • end_date (строка, опционально, формат: дд/мм/гггг): Фильтр сессий, созданных в эту дату или раньше.

  • title (строка, опционально): Фильтр по сессиям, заголовок которых содержит эту подстроку (без учета регистра).

  • user_id (строка, опционально): Фильтр по ID пользователя, сохраненному в сессии. | uploaded_by | строка | НОВОЕ UID пользователя, загрузившего исходное видео. | | video_status | строка processed\|failed | НОВОЕ текущее состояние. |

Структура ответа (HTTP 200)

При успешном выполнении ответ представляет собой JSON-объект, содержащий:

  • query_count (целое число): Общее количество соответствующих сессий.

  • sessions (объект): Словарь документов сессий с ключами в виде их ID.

  • first_doc_id (строка или null): ID первого документа в возвращенном наборе.

  • last_doc_id (строка или null): ID последнего документа в возвращенном наборе. Каждый объект сессии может включать поля, такие как video_url, activity, created_at, title, и т.д., а также вложенные данные (например, report_comments, metrics). Обратите внимание, что created_at возвращается как вложенный объект с полями date и time.

Обработка ошибок

  • 400 Bad Request: Некорректные параметры (например, неверный формат даты) или отсутствующий токен пользователя.

  • 401 Unauthorized: Токен отсутствует или недействителен.

  • 403 Forbidden: У пользователя нет прав администратора.

  • 404 Not Found: Нет соответствующих сессий.

  • 500 Internal Server Error: Непредвиденная ошибка на сервере.

Безопасность

В заголовке Authorization должен быть указан действительный API-KEY токен.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Query parameters
start_after_idstringOptional

ID сессии, после которой начинать пагинацию (используется только если фильтры не заданы).

end_before_idstringOptional

ID сессии, перед которой заканчивать пагинацию (используется только если фильтры не заданы).

limitintegerOptional

Максимальное количество сессий для получения (по умолчанию=10).

activitystring · enumOptional

Фильтр по типу активности (например, 'Running', 'Weightlifting', 'Vertical Jump' или 'Mobility Assessment').

Possible values:
start_datestringOptional

Фильтр сессий, созданных в эту дату или позже (дд/мм/гггг).

end_datestringOptional

Фильтр сессий, созданных в эту дату или раньше (дд/мм/гггг).

titlestringOptional

Фильтр по сессиям, заголовок которых содержит эту подстроку (без учета регистра).

user_idstringOptional

Фильтр по ID пользователя, сохраненному в документе сессии.

uploaded_bystringOptional

ID пользователя (администратора / суб-администратора), загрузившего видео.

video_statusstring · enumOptional

Состояние обработки видео сессии.

Possible values:
Responses
200

Отфильтрованные сессии успешно получены.

application/json
query_countintegerOptional

Общее количество соответствующих сессий.

first_doc_idstringOptional

ID первой сессии в результате или null, если нет.

last_doc_idstringOptional

ID последней сессии в результате или null, если нет.

get
/session-management/sessions/filter/

Обновить данные сессии

put

Обновляет детали сессии (например, заголовок и временную метку created_at) для конкретной сессии. Требует прав администратора и действующего платежного плана.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии.

Тело запроса (JSON)

  • title (строка, опционально): Обновленный заголовок для сессии.

  • created_at (строка, опционально, формат: ГГГГ-ММ-ДД ЧЧ:ММ:СС): Обновленная временная метка сессии.

Структура ответа

При успешном выполнении ответ содержит:

  • success (строка): Подтверждение обновления сессии.

Ошибки

  • 400 Bad Request: Некорректные параметры запроса или отсутствующие обязательные данные.

  • 401 Unauthorized: Отсутствует или недействителен токен доступа.

  • 403 Forbidden: Недостаточно прав или недействительный платежный план.

  • 404 Not Found: Сессия не найдена.

  • 500 Internal Server Error: Непредвиденная ошибка.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Body
titlestringOptional

Новый заголовок для сессии.

created_atstring · date-timeOptional

Обновленная временная метка сессии в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС.

Responses
200

Сессия успешно обновлена.

application/json
successstringOptional

Сообщение подтверждения.

put
/session-management/sessions/{session_id}

Удалить сессию

delete

Удаляет указанную сессию и все связанные ресурсы, включая данные сессии, видеофайлы, подколлекции и отчеты.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии.

Структура ответа

При успешном выполнении ответ содержит:

  • success (строка): Подтверждение удаления сессии.

Ошибки

  • 400 Bad Request: Некорректные параметры запроса.

  • 401 Unauthorized: Токен недействителен или отсутствует.

  • 403 Forbidden: У пользователя нет прав администратора.

  • 404 Not Found: Сессия не найдена.

  • 500 Internal Server Error: Непредвиденная ошибка.

Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Responses
200

Сессия успешно удалена.

application/json
successstringOptional

Сообщение подтверждения.

delete
/session-management/sessions/{session_id}

Получить URL анализированного видео

get

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

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии.

Параметры запроса

Эти необязательные флаги определяют тип анализа, если видео не существует:

  • is_jump (логический, опционально): Указывает, является ли эта сессия для анализа прыжка.

  • is_weight (логический, опционально): Указывает, является ли эта сессия для анализа тяжелой атлетики.

  • download (логический, опционально): Если true, возвращает подписанный URL, который заставляет браузер скачать видео вместо его отображения.

Ответ (HTTP 200)

Возвращает JSON-объект с ключом analyzed_video_url при успехе:

  "analyzed_video_url": "https://storage.googleapis.com/.../analyzed_video.mp4"
} ```
### Обработка ошибок
- **400 Bad Request**: Некорректные параметры (например, отсутствующий или неверный UID администратора).
- **401 Unauthorized**: Токен отсутствует или недействителен.
- **403 Forbidden**: У пользователя нет необходимых прав или плана.
- **404 Not Found**: Данные сессии или ресурсы не найдены.
- **500 Internal Server Error**: Непредвиденная ошибка на сервере.
### Безопасность
В заголовке `Authorization` должен быть указан действительный API-KEY токен.
Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Query parameters
is_jumpbooleanOptional

Указывает, является ли эта сессия для анализа прыжка.

is_weightbooleanOptional

Указывает, является ли эта сессия для анализа тяжелой атлетики.

downloadbooleanOptional

Если true, возвращает подписанный URL, который заставляет скачать видео.

Responses
200

URL анализированного видео успешно получен.

application/json
analyzed_video_urlstring · uriOptional

URL анализированного видео.

get
/session-management/sessions/{session_id}/analyzed-video/

Загрузить/сгенерировать анализированное видео

post

Загружает или генерирует анализированное видео для конкретной сессии, возвращая его URL.

Параметр пути

  • session_id (строка, обязательно): Уникальный идентификатор сессии.

Тело запроса (JSON)

  "is_jump": true,
  "is_weight": false
} ```
- **is_jump** *(логический, опционально)*: Если true, обрабатывать как сессию прыжка.
- **is_weight** *(логический, опционально)*: Если true, обрабатывать как сессию тяжелой атлетики.
### Структура ответа (HTTP 200)
При успехе возвращает JSON-объект с `analyzed_video_url`:
```json {
  "analyzed_video_url": "https://storage.googleapis.com/.../analyzed_video.mp4"
} ```
### Обработка ошибок
- **400 Bad Request**: Некорректные параметры или сессия уже анализирована.
- **401 Unauthorized**: Токен отсутствует или недействителен.
- **403 Forbidden**: У пользователя нет действительного плана.
- **404 Not Found**: Данные сессии не найдены.
- **500 Internal Server Error**: Непредвиденная ошибка на сервере.
### Безопасность
В заголовке `Authorization` должен быть указан действительный API-KEY токен.
Authorizations
AuthorizationstringRequired

Укажите ваш Bearer-токен (Firebase auth) в формате: Bearer <токен>

Path parameters
session_idanyRequired
Body
is_jumpbooleanOptional

Является ли эта сессия связанной с прыжками.

is_weightbooleanOptional

Является ли эта сессия связанной с тяжелой атлетикой.

Responses
200

URL анализированного видео успешно сгенерирован или обновлен.

application/json
analyzed_video_urlstring · uriOptional

URL нового или обновленного анализированного видео.

post
/session-management/sessions/{session_id}/analyzed-video/

Last updated

Was this helpful?