Площадки платформы Талант (0.4.0)

Download OpenAPI specification:

REST API для сериса площадок платформы Талант

Changelog

История изменений в API начиная с релиза 0.2.

0.4.0

Добавлены эндпоинты для просмотра и управления тегами (статусами) для площадок и для их назначения на площадки.

Добавлены фильтры по выводу площадки на карту и по тэгам.

0.3.1

Список площадок получил фильтры по городу и региону.

Опциональное имя для несубъектных площадок.

Теперь, при создании несубъектной площадки, можно не передавать name.

0.3.0

В список площадок добавлен фильтр filter_actual_events. Этот же список площадок, без указания роли, возвращает теперь вообще все площадки, а не только субъектные.

WebhookPayload

При обновлении и удалении площадок, рассылаются вебхуки содержащие в объекте в теле запроса поле object_id содержащее ID площадки.

Является ли пользователь администратором сервиса

Запрос необходимо выполнять с заголовком X-Role: service-admin.

Authorizations:
OAuth2
header Parameters
X-Role
required
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Responses

Загрузка файла

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

Authorizations:
OAuth2
Request Body schema: multipart/form-data
file
string <binary>

Responses

Response samples

Content type
application/json
"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Список тегов

Список тегов (статусов) для площадок. Список публичен для всех. По умолчанию в выборку попадают только публичные теги, при необходимости с помощью фильтра is_public можно выбрать все теги или только приватные.

Authorizations:
OAuth2
query Parameters
name
string

Поиск по подстроке в названии тега.

is_public
string
Default: "true"
Enum: "true" "false" "all"

Фильтр по признаку публичности тега.

Responses

Response samples

Content type
application/json
{
  • "results": [
    ]
}

Создание тега

Создание тега (статуса), который может быть назначен на площадки. Доступно только для роли service-admin.

Authorizations:
OAuth2
header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Request Body schema: application/json
required
slug
required
string (Slug) <= 100 characters ^[a-z0-9]+(-[a-z0-9]+)*$

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

name
required
string

Человекопонятное название тега (статуса).

is_public
boolean
Default: false

Является ли тег публичным.

Responses

Request samples

Content type
application/json
{
  • "slug": "string",
  • "name": "string",
  • "is_public": false
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "slug": "string",
  • "name": "string",
  • "is_public": true
}

Чтение тега

Чтение тега (статуса) для площадок по его идентификатору.

Authorizations:
OAuth2
path Parameters
tag_id
required
integer

ID тега.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "slug": "string",
  • "name": "string",
  • "is_public": true
}

Обновление тега

Изменение параметров тега (статуса) для площадок. Доступно только для роли service-admin.

Authorizations:
OAuth2
path Parameters
tag_id
required
integer

ID тега.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Request Body schema: application/json
required
slug
string (Slug) <= 100 characters ^[a-z0-9]+(-[a-z0-9]+)*$

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

name
string

Человекопонятное название тега (статуса).

is_public
boolean

Является ли тег публичным.

Responses

Request samples

Content type
application/json
{
  • "slug": "string",
  • "name": "string",
  • "is_public": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "slug": "string",
  • "name": "string",
  • "is_public": true
}

Удаление тега

Удаление тега (статуса) для площадок. Доступно только для роли service-admin.

Authorizations:
OAuth2
path Parameters
tag_id
required
integer

ID тега.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Responses

Список тегов, назначенных на площадки

Authorizations:
OAuth2
query Parameters
tag_id
integer

Фильтр по ID тега.

tag_slug
string (Slug) <= 100 characters ^[a-z0-9]+(-[a-z0-9]+)*$

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

venue_ids
Array of integers

Фильтр по ID площадок. Пример использования ?venue_ids=1,2,3

Responses

Response samples

Content type
application/json
{
  • "results": [
    ]
}

Проверка наличия тега у площадки

Запрос возвращает 200, если тег tag_slug уже назначен площадке venue_id, и 404, если не назначен.

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

tag_slug
required
string (Slug) <= 100 characters ^[a-z0-9]+(-[a-z0-9]+)*$

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

Responses

Добавление тега площадке

Добавление тега tag_slug площадке venue_id. Пользователь с ролью organization-admin может назначать только публичные теги только площадкам своей организации. Для роли service-admin доступны все теги и площадки.

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

tag_slug
required
string (Slug) <= 100 characters ^[a-z0-9]+(-[a-z0-9]+)*$

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

query Parameters
X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Responses

Удаление тега с площадки

Удаление связи тега tag_slug с площадкой venue_id. Пользователь с ролью organization-admin может удалять только публичные теги только с площадок своей организации. Для роли service-admin доступны все теги и площадки.

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

tag_slug
required
string (Slug) <= 100 characters ^[a-z0-9]+(-[a-z0-9]+)*$

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

query Parameters
X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Responses

Список площадок

Список площадок для поиска, просмотра и редактирования.

Доступная выборка определяется ролью, от которой выполняется запрос. При запросе списка от service-admin, в выборку попадают все имеющиеся площадки. Для organization-admin доступны только те, которые были созданы организацией, от которой выполняется запрос, а также публичные площадки других организаций. Если нужно получить площадки для управления организацией, нужно также указать параметр фильтрации organization_id. Если от организации нужно выбрать площадку для назначения мероприятий, то нужно использовать фильтр unavailable=false.

Аутентификация опциональна и проверяется только при наличии указанной роли.

Параметры deleted и status нельзя использовать совместно.

Authorizations:
OAuth2
query Parameters
name
string

Поиск по подстроке в названии площадки.

subject
boolean

Фильтр по статусу субъектности площадки.

deleted
boolean

Фильтр по статусу «удаления» площадки.

status
string
Enum Description
draft

Площадка не опубликована, т.к. находится в статусе черновика.

public

Площадка опубликована.

deleted

Площадка не опубликована, т.к. находится в статусе удаленной.

Фильтр по статусу публичности площадки.

unavailable
boolean

Фильтр по статусу временной недоступности площадки.

access_for_all
boolean

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

show_on_map
boolean

Фильтр по статусу отображения площадки на карте.

user_id
integer

Фильтр по пользователю-автору площадки.

coordinates
string

Фильтр по координатам площадки. Формат 55.8782557,37.65372

organization_id
integer

Фильтр по организации управляющей площадкой.

filter_actual_events
boolean

Фильтрация площадок по наличию актуальных событий.

city
string

Фильтрация по городу

region
string

Фильтрация по региону

city_with_region_fallback
boolean

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

tag_id
integer

Фильтр по ID тега.

tag_slug
string (Slug) <= 100 characters ^[a-z0-9]+(-[a-z0-9]+)*$

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

X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "results": [
    ]
}

Создание площадки

Создание субъектной или несубъектной площадки.

Доступно только при использовании ролей service-admin и organization-admin.

Authorizations:
OAuth2
query Parameters
X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Request Body schema: application/json
required
subject
boolean

Является ли создаваемая площадка субъектной. По умолчанию создается несубъектная.

organization_id
integer

ID организации. Доступно только с ролью service-admin.

name
string

Название площадки. Максимум 200 символов.

latitude
required
string

Широта местоположения площадки.

longitude
required
string

Долгота местоположения площадки.

address
string

Адрес, полная строка в формате Dadata.

navigation_text
string

Дополнительное описание как добраться до места.

navigation_link
string <url>

Ссылка на схему проезда.

navigation_image
string <uuid>

ID загруженного файла со схемой проезда.

Responses

Request samples

Content type
application/json
Example
{
  • "subject": "VenueNonSubjectCreate",
  • "organization_id": 0,
  • "name": "string",
  • "latitude": "string",
  • "longitude": "string",
  • "address": "string",
  • "navigation_text": "string",
  • "navigation_link": "string",
  • "navigation_image": "0b4fdfb2-f924-48cf-8191-e416446e5b4d"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": 0,
  • "organization_id": 0,
  • "subject": true,
  • "deleted": true,
  • "unavailable": true,
  • "access_for_all": true,
  • "show_on_map": true,
  • "name": "string",
  • "cover": "f096bc6c-6528-4083-a4a3-3f7a96a61f4f",
  • "description": "string",
  • "schedule": "string",
  • "coordinates": "string",
  • "navigation_text": "string",
  • "navigation_link": "string",
  • "navigation_image": "0b4fdfb2-f924-48cf-8191-e416446e5b4d"
}

Чтение площадки

Чтение любой площадки по ее идентификатору.

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": 0,
  • "organization_id": 0,
  • "subject": true,
  • "deleted": true,
  • "unavailable": true,
  • "access_for_all": true,
  • "show_on_map": true,
  • "name": "string",
  • "cover": "f096bc6c-6528-4083-a4a3-3f7a96a61f4f",
  • "description": "string",
  • "schedule": "string",
  • "coordinates": "string",
  • "navigation_text": "string",
  • "navigation_link": "string",
  • "navigation_image": "0b4fdfb2-f924-48cf-8191-e416446e5b4d",
  • "contacts": [
    ],
  • "cover_url": "string",
  • "navigation_image_url": "string",
  • "cover_ext": "string",
  • "navigation_image_ext": "string",
  • "geodata": {
    }
}

Обновление площадки

Обновление площадки доступно только при указании либо роли service-admin, либо organization-admin.

Набор доступных для обновления полей зависит то того является ли обновляемая площадка субъектной или нет.

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

query Parameters
X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Request Body schema: application/json
required
One of
show_on_map
boolean

Должна ли площадка отображаться на карте.

organization_id
integer

ID организации. Доступно только с ролью service-admin.

name
string

Название площадки. Максимум 200 символов.

latitude
string

Широта местоположения площадки.

longitude
string

Долгота местоположения площадки.

address
string

Адрес, полная строка в формате Dadata.

navigation_text
string

Дополнительное описание как добраться до места.

navigation_link
string <url>

Ссылка на схему проезда.

navigation_image
string <uuid>

ID загруженного файла со схемой проезда.

Responses

Request samples

Content type
application/json
Example
{
  • "show_on_map": true,
  • "organization_id": 0,
  • "name": "string",
  • "latitude": "string",
  • "longitude": "string",
  • "address": "string",
  • "navigation_text": "string",
  • "navigation_link": "string",
  • "navigation_image": "0b4fdfb2-f924-48cf-8191-e416446e5b4d"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "user_id": 0,
  • "organization_id": 0,
  • "subject": true,
  • "deleted": true,
  • "unavailable": true,
  • "access_for_all": true,
  • "show_on_map": true,
  • "name": "string",
  • "cover": "f096bc6c-6528-4083-a4a3-3f7a96a61f4f",
  • "description": "string",
  • "schedule": "string",
  • "coordinates": "string",
  • "navigation_text": "string",
  • "navigation_link": "string",
  • "navigation_image": "0b4fdfb2-f924-48cf-8191-e416446e5b4d"
}

Удаление площадки

Удаление площадки доступно только при указании либо роли service-admin, либо organization-admin.

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

query Parameters
X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Responses

Перевод площадки в статус субъектной

Доступно только при использовании с ролью service-admin.

Authorizations:
OAuth2
header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Request Body schema: application/json
required
name
string <= 200 characters

Название площадки. Максимум 200 символов. Обязательно, если для площадки оно еще не задано.

description
required
string <= 1000 characters

Описание площадки.

required
Array of objects (ContactBody) [ 1 .. 10 ] items

Контакты площадки.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "contacts": [
    ]
}

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Перевод площадки в статус несубъектной

Доступно только при использовании с ролью service-admin.

Authorizations:
OAuth2
header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Responses

Response samples

Content type
application/json
{
  • "errors": [
    ]
}

Добавление контакта площадки

Треуется роль service-admin или organization-admin.

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

query Parameters
X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Request Body schema: application/json
required
ordering
required
number <float>

Порядковый номер

type
required
string (ContactType)
Enum: "email" "phone" "vk" "link"

Тип контакта.

value
required
string
is_preferred
boolean

Является ли этот контакт предпочтительным для связи.

Responses

Request samples

Content type
application/json
{
  • "ordering": 0.1,
  • "type": "email",
  • "value": "string",
  • "is_preferred": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "venue_id": 0,
  • "ordering": 0.1,
  • "type": "email",
  • "value": "string",
  • "is_preferred": true
}

Чтение контакта площадки

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

contact_id
required
integer

ID контакта.

query Parameters
X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "venue_id": 0,
  • "ordering": 0.1,
  • "type": "email",
  • "value": "string",
  • "is_preferred": true
}

Обновление контакта площадки

Треуется роль service-admin или organization-admin.

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

contact_id
required
integer

ID контакта.

query Parameters
X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Request Body schema: application/json
required
ordering
number <float>

Порядковый номер

type
string (ContactType)
Enum: "email" "phone" "vk" "link"

Тип контакта.

value
string
is_preferred
boolean

Является ли этот контакт предпочтительным для связи.

Responses

Request samples

Content type
application/json
{
  • "ordering": 0.1,
  • "type": "email",
  • "value": "string",
  • "is_preferred": true
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "venue_id": 0,
  • "ordering": 0.1,
  • "type": "email",
  • "value": "string",
  • "is_preferred": true
}

Удаление контакта площадки

Треуется роль service-admin или organization-admin.

Authorizations:
OAuth2
path Parameters
venue_id
required
integer

ID площадки.

contact_id
required
integer

ID контакта.

query Parameters
X-Organization-ID
integer

ID организации, от администратора которой выполняется запрос.

Параметр обязателен для роли organization-admin.

header Parameters
X-Role
string
Enum: "service-admin" "organization-admin"

Роль, в качестве которой выполняется запрос.

При указании роли organization-admin требуется передавать заголовок X-Organization-ID.

Responses