Перейти к основному содержимому

Управление пользователями

API для работы с пользователями партнера.

Получение списка пользователей

Возвращает список всех пользователей, привязанных к партнеру.

Endpoint: GET /api/v1/users

Заголовки:

token: YOUR_PARTNER_API_KEY

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

{
"status": "success",
"data": {
"items": [
{
"user": {
"id": 123,
"external_id": "ext_123",
"username": "Иван Иванов",
"email": "ivan@kotzdorov.ru",
"phone": "79001234567",
"created_at": 1638360000,
"updated_at": 1638360000
},
"profile": {
"user_id": 123,
"first_name": "Иван",
"middle_name": "Иванович",
"last_name": "Иванов",
"birthday": "1990-01-15",
"phone": "79001234567",
"communication": "telegram",
"photo": "https://kotzdorov.ru/photo.jpg",
"city_id": 1,
"city": "Москва",
"address": "ул. Примерная, д. 1",
"created_at": 1638360000,
"updated_at": 1638360000
},
"pets": [
{
"id": 1,
"user_id": 123,
"type": 1,
"breed": 5,
"name": "Барсик",
"gender": "male",
"birthday": "2020-05-10",
"chip": 1,
"mark": 0,
"neuter": 1,
"vaccination": 1,
"comment": "Комментарий о питомце",
"created_at": 1638360000,
"updated_at": 1638360000,
"ectoparasites": "Фронтлайн",
"ectoparasites_date": "2023-10-01",
"helminths": "Мильбемакс",
"helminths_date": "2023-09-15",
"vaccination_date": "2023-08-20",
"chip_number": "123456789012345",
"mark_number": null
}
]
}
]
}
}

Просмотр пользователя

Получение детальной информации о конкретном пользователе.

Endpoint: GET /api/v1/users/view/{id}

Параметры URL:

  • id (integer, обязательный) - ID пользователя

Заголовки:

token: YOUR_PARTNER_API_KEY

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

{
"status": "success",
"data": {
"user": {
"id": 123,
"external_id": "ext_123",
"username": "Иван Иванов",
"comment": "VIP клиент",
"email": "ivan@kotzdorov.ru",
"phone": "79001234567",
"created_at": 1638360000,
"updated_at": 1638360000
},
"profile": {...},
"pets": [...]
}
}

Возможные ошибки:

  • 404 - Пользователь не найден или не принадлежит партнеру

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

Поиск пользователя по телефону или email.

Endpoint: GET /api/v1/users/find

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

  • phone (string, обязательный) - Номер телефона
  • email (string, опциональный) - Email адрес

Заголовки:

token: YOUR_PARTNER_API_KEY

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

GET /api/v1/users/find?phone=79001234567&email=ivan@kotzdorov.ru

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

{
"status": "success",
"data": {
"user": {...},
"profile": {...},
"pets": [...]
}
}

Возможные ошибки:

  • 400 - Неверный формат телефона или email
  • 404 - Пользователь не найден

Создание пользователя

Создание нового пользователя и привязка к партнеру.

Endpoint: POST /api/v1/users/create

Заголовки:

token: YOUR_PARTNER_API_KEY
Content-Type: application/json

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

  • phone (string, обязательный) - Номер телефона
  • email (string, опциональный) - Email адрес
  • password (string, опциональный) - Пароль (если не указан, используется телефон)

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

{
"phone": "79001234567",
"email": "ivan@kotzdorov.ru",
"password": "securepassword123"
}

Пример успешного ответа:

{
"status": "success",
"data": {
"id": 123,
"name": "79001234567",
"phone": "79001234567",
"email": "ivan@kotzdorov.ru",
"created_at": "2023-12-01T10:00:00.000000Z",
"updated_at": "2023-12-01T10:00:00.000000Z"
},
"id": 123
}

Пример ответа с ошибкой:

{
"status": "fail",
"errors": {
"phone": ["Значение «Phone» не является правильным номером телефона."],
"email": ["Значение «Email» не является правильным email адресом."]
},
"id": null
}
Примечание

Если пользователь с указанным телефоном уже существует, в ответе будет возвращен его ID в поле id, даже при статусе fail.


Обновление пользователя

Обновление данных существующего пользователя.

Endpoint: POST /api/v1/users/update/{id}

Параметры URL:

  • id (integer, обязательный) - ID пользователя

Заголовки:

token: YOUR_PARTNER_API_KEY
Content-Type: application/json

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

  • phone (string, опциональный) - Новый номер телефона
  • email (string, опциональный) - Новый email адрес

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

{
"phone": "79009876543",
"email": "newemail@kotzdorov.ru"
}

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

{
"status": "success",
"data": {
"items": {
"id": 123,
"phone": "79009876543",
"email": "newemail@kotzdorov.ru",
...
}
}
}

Возможные ошибки:

  • 404 - Пользователь не найден или не принадлежит партнеру

Структура данных

Объект User

ПолеТипОписание
idintegerУникальный идентификатор
external_idstring|nullВнешний идентификатор
usernamestring|nullИмя пользователя
commentstring|nullКомментарий
emailstringEmail адрес
phonestringНомер телефона (нормализованный)
created_atintegerUnix timestamp создания
updated_atintegerUnix timestamp обновления

Объект Profile

ПолеТипОписание
user_idintegerID пользователя
first_namestring|nullИмя
middle_namestring|nullОтчество
last_namestring|nullФамилия
birthdaystring|nullДата рождения (YYYY-MM-DD)
phonestringТелефон
communicationstring|nullПредпочитаемый способ связи
photostring|nullURL фотографии
city_idinteger|nullID города
citystring|nullНазвание города
addressstring|nullАдрес
created_atintegerUnix timestamp создания
updated_atintegerUnix timestamp обновления

Объект Pet

ПолеТипОписание
idintegerID питомца
user_idintegerID владельца
typeinteger|nullТип животного
breedinteger|nullПорода
namestring|nullКличка
genderstring|nullПол (male/female)
birthdaystring|nullДата рождения
chipinteger|nullНаличие чипа (0/1)
markinteger|nullНаличие клейма (0/1)
neuterinteger|nullСтерилизация (0/1)
vaccinationinteger|nullВакцинация (0/1)
commentstring|nullКомментарий
ectoparasitesstring|nullПрепарат от эктопаразитов
ectoparasites_datestring|nullДата обработки
helminthsstring|nullПрепарат от гельминтов
helminths_datestring|nullДата дегельминтизации
vaccination_datestring|nullДата вакцинации
chip_numberstring|nullНомер чипа
mark_numberstring|nullНомер клейма
created_atintegerUnix timestamp создания
updated_atintegerUnix timestamp обновления