Перейти к основному содержимому
Версия: 1.18.1

Профили

Получить список профилей

Запрос profiles() позволяет получить список созданных профилей.

profiles(filter: JSON = null
ids: [ID] = null
limit: Int = null
offset: Int = null
order: [String] = null): ProfilesCollection!

Входные параметры:

filter: JSON: Вы можете отфильтровать список профилей, указав один или несколько параметров:

  • creation_date: Точная дата создания профиля в формате ISO 8601
  • id: ID профиля из базы данных
  • info: Объект со следующими параметрами:
    • age: Возраст профиля. Например, запрос с параметром info_age:28 вернет список профилей с возрастом 28 лет.
    • gender: Пол профиля. Например, запрос с параметром info_gender: “MALE” вернет список профилей мужского пола.
    • main_sample_id: ID лучшего сэмпла профиля.
    • avatar_id: ID аватара.
  • last_modified: Точная дата последнего изменения профиля в формате ISO 8601
  • link_to_label:
  • person:
  • person_id: ID профиля из базы
  • profile_groups: Список ID групп
  • samples: ID сэмпла
  • workspace: ID воркспейса
  • workspace_id: ID воркспейса

ids: [ID]: Для получения списка конкретных профилей укажите их ID в списке.

limit: Int: Параметр позволяет получить первые n профилей из списка.

offset: Int: Параметр позволяет исключить первые n профилей из списка.

order: [String]: Вы можете отсортировать список по следующим параметрам: creation_date, id, info, last_modified, link_to_label, person, person_id, profile_groups, samples, workspace,workspace_id.

Выходные параметры:

ProfilesCollection!: Результат запроса - список профилей со следующими параметрами:

  • totalCount: Число возвращенных профилей
  • collectionItems: [ProfileOutput!]
    • id: ID профиля
    • lastModified: Дата последнего изменения профиля в формате ISO 8601
    • creationDate: Дата создания профиля в формате ISO 8601
    • info: Информация профиля (примерный возраст, пол, ID аватара, ID лучшего сэмпла)
    • samples: Список сэмплов профиля
    • profileGroups: Список групп профилей
    • mainSample: Лучший сэмпл профиля
    • avatar: Аватар профиля
    • activities: Все активности профиля
    • activitiesCount: Число активностей профиля
    • firstActivityDate: Дата первой активности профиля, зафиксированной системой в формате ISO 8601
    • lastActivityDate: Дата последней активности профиля, зафиксированной системой в формате ISO 8601

Пример запроса:

{
profiles(ids: ["1cf13933-00be-4a6d-8dc3-3ff17f94aef8"]) {
totalCount
collectionItems {
id
avatar
creationDate
firstActivityDate
info
lastActivityDate
lastModified
mainSample {
id
}
profileGroups {
id
}
samples {
id
}
activitiesCount
activities {
id
}
}
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"profiles": {
"totalCount": 1,
"collectionItems": [
{
"id": "1cf13933-00be-4a6d-8dc3-3ff17f94aef8",
"avatar": "dc3e1949-b4e8-4feb-a51c-67740e323e8b",
"creationDate": "2022-07-07T08:59:56.227343+00:00",
"firstActivityDate": "2022-07-07T12:36:51.644000+05:00",
"info": {
"age": 36,
"gender": "MALE",
"avatar_id": "dc3e1949-b4e8-4feb-a51c-67740e323e8b",
"main_sample_id": "3071e862-7116-4ed3-94f1-309b0b5b912f"
},
"lastActivityDate": "2022-07-07T12:37:07.425000+05:00",
"lastModified": "2022-07-07T09:00:15.028365+00:00",
"mainSample": {
"id": "3071e862-7116-4ed3-94f1-309b0b5b912f"
},
"profileGroups": [
{
"id": "97c1a9fa-bfde-460a-9bda-f610060423ca"
}
],
"samples": [
{
"id": "3071e862-7116-4ed3-94f1-309b0b5b912f"
}
],
"activitiesCount": 5,
"activities": [
{
"id": "78f7c795-0f28-42ce-a9d2-818095dd5f84"
},
{
"id": "a4ddc400-8fb8-41ef-aacb-9fc195868368"
},
{
"id": "ea4ba238-4c64-4e07-bed6-d8f29f426e7e"
},
{
"id": "29c8b4f5-11d0-4523-a17f-748ba25d4b97"
},
{
"id": "4a1cad4a-ed81-409e-8a16-38abe9145a77"
}
]
}
]
}
}
}

Создать профиль

Мутация createProfile() используется для создания нового профиля. Созданный профиль автоматически сохраняется на OMNI-сервере.

createProfile(image: CustomBinaryType = null
profileData: ProfileInput = null): ProfileCreateOutput!

Входные параметры:

image: CustomBinaryType: Для добавления аватара в новый профиль передайте изображение в формате base64 размером до 8Мбайт.

к сведению

Также создать профиль можно из сэмпла, передав его идентификатор в поле main_sample_id, однако в этом случае профиль не попадет в поисковый индекс.

profileData: ProfileInput: Для сохранения дополнительной информации в новом профиле передайте следующие параметры:

  • profileGroupIds: [ID]: Список ID групп, к которым привязан новый профиль
  • info: JSON: Дополнительная информация о профиле (age: Int, gender: "MALE" | "FEMALE")
  • fields:
    • name: String: Название поля профиля
    • value: String: Имя в поле профиля

Выходные параметры:

ProfileCreateOutput!: Результат мутации - JSON-файл со следующими параметрами:

  • ok: Boolean: Флаг об успешном завершении мутации
  • profile: ProfileOutput!: Объект нового профиля
  • isCreated: Boolean!: Параметр определяет, были ли создан новый профиль, или фотография прикрепилась к существующему профилю.

Ошибки входных данных:

  • Низкое качество передаваемого изображения:
    {
    "message": "Low quality photo",
    "code": "0x86bd49dh"
    }
  • Группы профилей не найдены по переданным ID:
    {
    "message": "One or several profiles_groups does not exist",
    "code": "0x573bkd35"
    }

Пример запроса:

mutation{
createProfile {
isCreated
ok
profile {
id
}
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"createProfile": {
"isCreated": true,
"ok": true,
"profile": {
"id": "d5ca09fb-199a-471f-99ca-b9b4954fb45f"
}
}
}
}

Создать профиль из активности

Мутация createProfileByActivity используется для создания профиля из активности.

createProfileByActivity(activityId: ID!
profileData: ProfileInput = null): ProfileCreateOutput!

Входные параметры:

activityId: ID!: ID активности, из которой должен быть создан профиль.

profileData: ProfileInput: Вы можете указать дополнительную информацию для сохранения в профиле:

  • profileGroupIds: [ID]: Список ID групп, к которым привязан новый профиль.
  • info: JSON: Дополнительная информация о профиле (age: Int, gender: "MALE" | "FEMALE")
  • fields:
    • name: String: Название поля профиля
    • value: String: Имя в поле профиля

Выходные параметры:

ProfileCreateOutput: Результат мутации - JSON-файл со следующими параметрами:

  • ok: Boolean!: Атрибут успешного завершения мутации.
  • profile: ProfileOutput!: Объект нового профиля.
  • isCreated: Boolean!: Определяет, был ли создан новый профиль, или фотография привязана к уже существующему профилю.

Ошибки входных данных:

  • Ошибка при попытке создать профиль из анонимной активности:
    {
    "message": "Activity is anonymous",
    "code": "0x358vri3s"
    }
  • Активность не найдена по переданному ID:
    {
    "message": "Activity matching query does not exist."
    }
  • Группы не найдены по переданным ID:
    {
    "message": "One or several profiles_groups does not exist",
    "code": "0x573bkd35"
    }

Пример запроса:

mutation{
createProfileByActivity(activityId: "78f7c795-0f28-42ce-a9d2-818095dd5f84") {
ok
isCreated
profile{
id
}
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"createProfileByActivity": {
"ok": true,
"isCreated": false,
"profile": {
"id": "1cf13933-00be-4a6d-8dc3-3ff17f94aef8"
}
}
}
}

Создать профиль по поиску

Мутация createProfileWithSearch используется для создания профилей по поиску. Поддержка этого API прекращена (deprecated).

Обновить профиль

Мутация updateProfile() используется для обновления информации профиля.

updateProfile(profileData: ProfileInput!
profileId: ID): ProfileUpdateOutput!

Входные параметры:

profileData: ProfileInput!: Информация профиля для обновления (profileGroupIds: [ID], info: JSON)

profileId: ID: ID профиля

Выходные параметры:

ProfileUpdateOutput!: Результат мутации - JSON-файл со следующими параметрами:

  • ok: Boolean: Флаг об успешном завершении мутации
  • profile: ProfileOutput!: Updated profile object

Ошибки входных данных:

  • Профиль не найден по переданному ID

    {
    "message": "Profile matching query does not exist."
    }
  • Группы профилей не найдены по переданным ID

    {
    "message": "One or several profiles_groups does not exist",
    "code": "0x573bkd35"
    }

Пример запроса:

mutation{
updateProfile(profileData: {info: {age: 20}}, profileId: "d5ca09fb-199a-471f-99ca-b9b4954fb45f") {
ok
profile {
id
}
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"updateProfile": {
"ok": true,
"profile": {
"id": "d5ca09fb-199a-471f-99ca-b9b4954fb45f"
}
}
}
}

Удалить профиль

Мутация deleteProfiles() используется для удаления профилей.

deleteProfiles(profileIds: [ID!]!): MutationResult!

Входные параметры:

profileIds: [ID!]: Список ID профилей, которые необходимо удалить

Выходные параметры:

MutationResult!: Результат мутации - JSON-файл со следующими параметрами:

  • ok: Boolean: Флаг об успешном завершении мутации

Ошибки входных данных:

  • Пустой список ID профилей, переданных для удаления:
    {
    "message": "Empty profiles ids list",
    "code": "0xd2ae0ef8"
    }

Пример запроса:

mutation{
deleteProfiles(profileIds: "d5ca09fb-199a-471f-99ca-b9b4954fb45f") {
ok
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"deleteProfiles": {
"ok": true
}
}
}

Добавить пользовательское поле профиля

Мутация addProfilesField используется для создания пользовательских полей профиля.

mutation {
addProfilesField()
{
}
}

Входные параметры:

  • fieldInput:
    • name
      • Название нового поля профиля.
      • Тип данных: String.

Выходные параметры:

  • ok
    • Статус завершения мутации
    • Тип данных: Boolean.
  • fields
    • Список текущих полей профилей
    • Тип данных: String.

Пример запроса:

mutation {
addProfilesField(fieldInput: {name: "City"})
{
ok
fields
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"addProfilesField": {
"ok": true,
"fields": [
"name",
"age",
"gender",
"birthday",
"avatar_id",
"main_sample_id",
"description",
"city"
]
}
}
}

Удалить пользовательское поле профиля

Мутация removeProfilesField позволяет удалить пользовательское поле для профиля.

mutation {
removeProfilesField() {
}
}

Входные параметры:

  • fieldInput:
    • name
      • Название поля профиля, которое нужно удалить
      • Тип данных: String.

Выходные параметры:

  • ok
    • Статус завершения мутации
    • Тип данных: Boolean.
  • fields
    • Список текущих полей профиля
    • Тип данных: String.

Пример запроса:

mutation {
removeProfilesField(fieldInput: {name: "City"})
{
ok
fields
}
}

Пример ответа:

API возвращает следующий результат:
{
"data": {
"removeProfilesField": {
"ok": true,
"fields": [
"name",
"age",
"gender",
"birthday",
"avatar_id",
"main_sample_id",
"description"
]
}
}
}