Профили
Получить список профилей
Запрос profiles()
позволяет получить список созданных профилей.
profiles(filter: JSON = null
ids: [ID] = null
limit: Int = null
offset: Int = null
order: [String] = null): ProfilesCollection!
filter: JSON
: Вы можете отфильтровать список профилей, указав один или несколько параметров:
creation_date
: Точная дата создания профиля в формате ISO 8601id
: ID профиля из базы данныхinfo
: Объект со следующими параметрами:age
: Возраст профиля. Например, запрос с параметромinfo_age:28
вернет список профилей с возрастом 28 лет.gender
: Пол профиля. Например, запрос с параметромinfo_gender: “MALE”
вернет список профилей мужского пола.main_sample_id
: ID лучшего сэмпла профиля.avatar_id
: ID аватара.
last_modified
: Точная дата последнего изменения профиля в формате ISO 8601link_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 8601creationDate
: Дата создания профиля в формате ISO 8601info
: Информация профиля (примерный возраст, пол, ID аватара, ID лучшего сэмпла)samples
: Список сэмплов профиляprofileGroups
: Список групп профилейmainSample
: Лучший сэмпл профиляavatar
: Аватар профиляactivities
: Все активности профиляactivitiesCount
: Число активностей профиляfirstActivityDate
: Дата первой активности профиля, зафиксированной системой в формате ISO 8601lastActivityDate
: Дата последней активности профиля, зафиксированной системой в формате 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"
)
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"
)
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.
- name
Выходные параметры:
- 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.
- name
Выходные параметры:
- 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"
]
}
}
}