Профили
Получить список профилей
Запрос 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() используется для создания нового профиля. Созданный профиль автоматически сохраняется на
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"
]
}
}
}