Модель Client — представляет клиента
* @property integer $id // ИД * @property string $address // Адрес * @property string $home_phone // Домашний телефон * @property string $work_phone // Рабочий телефон * @property string $note // Текст * @property integer $type_id // Тип клиента * @property integer $how_find // Как нашли * @property double $balance //Текущий баланс * @property string $email // email * @property integer $city_id // ИД города из модели city * @property string $date_register // Дата регистрации * @property string $cell_phone // Мобильный телефон * @property string $zip // Почтовый индекс * @property string $last_name // Фамилия * @property string $first_name //Имя * @property string $middle_name // Отчество * @property string $status // 'ACTIVE' - активный,'DISABLED' - неактивный,'DELETED' - удален,'TEMPORARY' - временный * @property integer $discount //Скидка * @property string $passport_series //Паспортные данные * @property string $lab_number //Лабораторный номер * @property string $street_id // ИД улицы * @property string $apartment // Номер дома и квартиры * @property string $unsubscribe // Отписан от уведомлений * @property integer $in_blacklist //Клиент в черном списке - 1, не в черном списке - 0 * @property string $last_visit_date // Дата последнего посещения * @property string $number_of_journal // Номер журнала * @property integer $phone_prefix //Код страны * @property object $city_data // Полная информация о городе * @property object $street_data // Полная информация об улице * @property object $client_type_data //Полная информация о типе клиента (временный, постоянный)
Пример запроса создание клиента
По умолчанию клиент создается со статусом ACTIVE
Для создания временного клиента нужно указать status — «TEMPORARY».
curl --location --request POST 'https://{DOMAIN NAME}/rest/api/client' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--data-raw '{
"last_name":"LastName",
"first_name":"FirtsName",
"status":"TEMPORARY"
}'Ответ сервера
{
"success": true,
"message": "Record(s) Created",
"data": {
"totalCount": 1,
"client": [
{
"id": "10",
"address": "",
"home_phone": "",
"work_phone": "",
"note": "",
"type_id": null,
"how_find": null,
"balance": "0.0000000000",
"email": "",
"city": "",
"city_id": null,
"date_register": "2021-09-20 09:08:48",
"cell_phone": "",
"zip": "",
"registration_index": null,
"vip": "0",
"last_name": "LastName",
"first_name": "FirtsName",
"middle_name": "",
"status": "TEMPORARY",
"discount": "0",
"passport_series": "",
"lab_number": "",
"street_id": "0",
"apartment": "",
"unsubscribe": "0",
"in_blacklist": "0",
last_visit_date": "0000-00-00 00:00:00",
"number_of_journal": "",
"phone_prefix": ""
}
]
}
}Поиск клиента
curl --location --request GET 'https://{DOMAIN NAME}/rest/api/client/clientsSearchData?search_query=0957778899' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'Поиск выполняется по полям — Фамилия, Имя, Отчество клиента, номер телефона, e-mail, кличка питомца, название породы. Можно указывать только Фамилию, Имя или Отчество, а если хотите всё вместе, порядок должен быть такой: Имя(first_name) Отчество(middle_name) Фамилия(last_name).
Параметры
*search_query - ФИО start - с какой записи выгружать, по умолчанию 0 limit - ограничение, сколько записей выгружать. По умолчанию 10 * - обязательные параметры
Ответ сервера
{
"data": {
"client": [
{
"client_id": 60,
"last_name": "Иванов",
"first_name": "Иван",
"middle_name": "Иванович",
"email": "",
"address": "",
"in_blacklist": 0,
"description": "",
"balance": "0.0000000000",
"type": null,
"cell_phone": "1234567890",
"status": "ACTIVE",
"apartment": "",
"phone_prefix": "",
"city_id": 252,
"city_title": "Город",
"city_type_id": 1,
"street_id": null,
"street_title": null,
"street_type": null,
"clinic_phone_prefix": "7",
"pets": [
{
"pet_id": 18817,
"alias": "Павлик Морозов",
"sex": "unknown",
"birthday": null,
"owner_id": 60,
"pet_type": "dog",
"breed": "Питбультерьер",
"pet_type_title": "Собаки",
"pet_type_id": 2
}
]
}
]
},
"success": true
}Модель Street — улицы
* @property integer $id * @property string $title * @property integer $city_id * @property string $type // Тип улицы enum(street,bulvar,prospeсt,pereulok)
Модель City — города
* @property integer $id // id * @property string $title // название * @property $type_id // тип населенного пункта
Модель clientPhone — поиск клиентов по номеру телефона нужно осуществлять через эту модель
* @property integer $client_id // содержит id клиента * @property string $type // может принимать 'home','work' или 'cell' * @property string $original_phone // содержит оригинальное значение * @property string $clean_phone // содержит чистый телефон, только цифры.
Модель Pet — питомца
* @property integer $id // ИД питомца * @property integer $owner_id // Ид владельца * @property integer $type_id // Вид * @property string $alias // Кличка * @property string $sex // Пол enum(MALE, FEMALE, CASTRATED, STERIALIZED) * @property string $date_register //Дата регистрации * @property string $birthday // Дата рождения * @property string $note // Примечание * @property integer $breed_id // Порода * @property integer $color_id // цвет * @property string $deathnote // Примечание при отметке о смерти * @property string $deathdate // Дата смерти * @property string $chip_number // Номер чипа * @property string $lab_number //Номер для лаборатории * @property string $status //Статус * @property string $picture //Картинка
Модель PetType — вид питомца
* @property integer $id // ИД * @property string $title // Название
Модель Breed — породы
* @property integer $id * @property string $title * @property integer $pet_type_id
Общие сведения о запросах к API
Создание временного клиента
curl -l -H "Accept: application/json" -H "X-REST-API-KEY: {REST API KEY}" -X \
POST -d '{"first_name": "Alex", "last_name":"Solt", "status":"TEMPORARY"}' \ https://{DOMAIN NAME}/rest/api/client{
"success": true,
"message": "Record(s) Created",
"data": {
"totalCount": 1,
"client": [{
"id": "2",
"address": "",
"home_phone": "",
"work_phone": "",
"fax": "",
"note": "",
"type_id": "3",
"how_find": "8",
"balance": "0",
"email": "",
"city": "",
"city_id": "50",
"date_register": "2012-06-15 16:38:28",
"cell_phone": "",
"zip": "",
"registration_index": null,
"vip": "0",
"last_name": "Петров",
"first_name": "Петр",
"middle_name": "",
"status": "ACTIVE",
"discount": "0",
"passport_series": "",
"lab_number": "",
"street_id": "0",
"apartment": "",
"unsubscribe": "0",
"number_of_journal": "",
"phone_prefix": "0"
}]
}
}Создание питомца с минимальными данными
curl --location -g --request POST 'https://{DOMAIN NAME}/rest/api/pet' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--data-raw '{
{
"alias": "Little Devil",
"owner_id": "5",
"pet_type": "8",
"breed_id": "600"
}
}'{
"success": true,
"message": "Record(s) Created",
"data": {
"totalCount": 1,
"pet": [
{
"id": 5,
"owner_id": 5,
"type_id": 8,
"alias": "Little Devil",
"sex": "unknown",
"date_register": "2024-09-04 13:00:56",
"birthday": null,
"note": "",
"breed_id": null,
"old_id": null,
"color_id": null,
"deathnote": null,
"deathdate": null
"chip_number": "",
"lab_number": "",
"status": "alive",
"picture": null,
"weight": "0.0000000000",
"edit_date": "2024-09-04 13:00:56",
"owner": {
"id": 5,
"address": "",
"home_phone": "",
"work_phone": "",
"note": "",
"type_id": null,
"how_find": null,
"balance": "0.0000000000",
"email": "",
"city": "",
"city_id": 145,
"date_register": "2021-06-22 16:19:44",
"cell_phone": "",
"zip": "",
"registration_index": null,
"vip": 0,
"last_name": "Иванов",
"first_name": "Иван",
"middle_name": "Иванович",
"status": "ACTIVE",
"discount": 0,
"passport_series": "",
"lab_number": "",
"street_id": 0,
"apartment": "",
"unsubscribe": 0,
"in_blacklist": 0,
"last_visit_date": "2021-06-22 16:24:27",
"number_of_journal": "",
"phone_prefix": ""
},
"type": {
"id": 8,
"title": "Собачий",
"picture": "dog",
"type": "dog"
},
"breed": {
"id": 600,
"title": "Австралийская келпи",
"pet_type_id": 8
}
}
]
}
}Список обязательных полей
Создание клиента:
Обязательных полей для запроса нет. При передаче пустого запроса создаст клиента с пустыми полями.
Обновление клиента:
Обязательных полей для запроса нет, передадут поле из сущности, его и обновит.
В системе Ветменеджер добавлен новый API-метод, который позволяет получить анонимные данные клиентов. Этот метод может быть полезен для интеграции с другими системами или для анализа данных без раскрытия персональной информации клиентов.
Описание метода
Метод GET /rest/api/anonymousClient возвращает список анонимных данных клиентов, включая их баланс, дату регистрации, статус, скидку и информацию о городе.
Запрос
Для выполнения запроса необходимо отправить HTTP GET-запрос на следующий URL:
http://one.localhost:8080/rest/api/anonymousClient
Заголовки запроса
X-REST-API-KEY: Ваш API-ключ для авторизации. Пример: 1067d7d77260ed69641b23852d583209.
Пример запроса
curl --location --request GET 'http://one.localhost:8080/rest/api/anonymousClient' \ --header 'X-REST-API-KEY: 1067d7d77260ed69641b23852d583209'
Ответ
В случае успешного выполнения запроса, сервер вернет JSON-объект со следующими данными:
• success: Указывает на успешность выполнения запроса (true или false). • message: Сообщение о результате выполнения запроса. • data: Объект, содержащий данные о клиентах. • totalCount: Общее количество записей. • anonymousClient: Массив объектов с данными клиентов. • id: Уникальный идентификатор клиента. • balance: Баланс клиента. • date_register: Дата регистрации клиента. • city_id: Идентификатор города. • status: Статус клиента (например, ACTIVE или DISABLED). • discount: Размер скидки клиента. • city_data: Объект с данными о городе. • id: Идентификатор города. • name: Название города.
Пример ответа
{
"success": true,
"message": "Records Retrieved Successfully",
"data": {
"totalCount": 5,
"anonymousClient": [
{
"id": 1,
"balance": "0.0000000000",
"date_register": "2012-10-26 14:47:57",
"city_id": 145,
"status": "DISABLED",
"discount": 0,
"city_data": {
"id": 145,
"name": "Нижний х."
}
},
{
"id": 2,
"balance": "0.0000000000",
"date_register": "2013-01-17 08:55:55",
"city_id": 145,
"status": "DISABLED",
"discount": 0,
"city_data": {
"id": 145,
"name": "Нижний х."
}
},
{
"id": 3,
"balance": "0.0000000000",
"date_register": "0000-00-00 00:00:00",
"city_id": 145,
"status": "DISABLED",
"discount": 0,
"city_data": {
"id": 145,
"name": "Нижний х."
}
},
{
"id": 4,
"balance": "0.0000000000",
"date_register": "0000-00-00 00:00:00",
"city_id": 145,
"status": "DISABLED",
"discount": 0,
"city_data": {
"id": 145,
"name": "Нижний х."
}
},
{
"id": 5,
"balance": "0.0000000000",
"date_register": "2021-06-22 16:19:44",
"city_id": 145,
"status": "ACTIVE",
"discount": 0,
"city_data": {
"id": 145,
"name": "Нижний х."
}
}
]
}
}Возможные ошибки
• 401 Unauthorized: Возникает, если API-ключ неверен или отсутствует.
• 500 Internal Server Error: Возникает при внутренних ошибках сервера.
Заключение
Новый API-метод позволяет легко получать анонимные данные клиентов, что может быть полезно для анализа и интеграции с другими системами. Убедитесь, что ваш API-ключ действителен, и используйте этот метод для получения необходимой информации.
Для более подробной информации о других API-методах, обратитесь к документации Ветменеджер.