Доступ к клиентам

Доступ к клиентам по АПИ

Структура моделей, назначение полей

Модель Client — представляет клиента

* @property integer $id // ИД
* @property string $address // Адрес
* @property string $home_phone // Домашний телефон
* @property string $work_phone // Рабочий телефон
* @property string $fax // Факс
* @property string $note // Текст
* @property integer $type_id // Тип клиента
* @property integer $how_find // Как нашли
* @property double $balance // Текущий баланс - менять только через интерфейс программы
* @property string $email // email
* @property string $city // Устарело, будет удалено
* @property integer $city_id // ИД города из модели city
* @property string $date_register // Дата регистрации
* @property string $cell_phone // Мобильный телефон
* @property string $zip // Почтовый индекс
* @property string $registration_index // не используется
* @property integer $vip // не используется
* @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 string $number_of_journal // Номер журнала
* @property integer $phone_prefix //Код страны

Пример запроса создание клиента

По умолчанию клиент создается со статусом ACTIVE
Для создания временного клиента нужно указать status — «TEMPORARY».

curl --location --request POST 'http://{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 'http://{DOMAIN NAME}/rest/api/client/clientsSearchData?search_query=0957778899' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Поиск выполняется по полям — Фамилия, Имя, Отчество клиента, номер телефона, e-mail, кличка питомца, название породы. Можно указывать только Фамилию или Фамилию + Имя, или все вместе.
Для поиска, например, только по имени, можно указать такое значение — ‘% Иван’

Параметры

*search_query - ФИО
start - с какой записи выгружать, по умолчанию 0
limit - ограничение, сколько записей выгружать. По умолчанию 10
* - обязательные параметры

Ответ сервера

{
     "data": {
     "client": [
          {
               "client_id": "13009",
               "last_name": "Иванов",
               "first_name": "Иван",
               "middle_name": "Иванович",
               "email": "",
               "address": "",
               "in_blacklist": "0",
               "description": "",
               "type": null,
               "cell_phone": "",
               "status": "ACTIVE",
               "pets": [
                    {
                         "pet_id": "18817",
                         "alias": "Павлик Морозов",
                         "sex": null,
                         "birthday": null,
                         "owner_id": "13009",
                         "pet_type": "dog",
                         "breed": "Питбультерьер"
                    }
               ]
          },
          *******
      ]
   },
   "success": true
}

Модель Street — улицы

* @property integer $id
* @property string $title
* @property integer $city_id
* @property string $type // Тип улицы enum(street,bulvar,prospeсt,pereulok)

Модель 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 $old_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: ee9528f3b9c3ad9cdecfbd9723043334" -X \

POST -d '{"first_name": "Alex", "last_name":"Solt", "status":"TEMPORARY"}' \ http://example/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 -l -H «Accept: application/json» -H «X-REST-API-KEY: ee9528f3b9c3ad9cdecfbd9723043334» -X \
POST -d ‘{«alias»: «Little Devil», «owner_id»:»23″}’ \ http://example/rest/api/pet
{
     "success": true,
     "message": "Record(s) Created",
     "data": {
          "totalCount": 1,
          "pet": [{
               "chip_number": "",
               "lab_number": "",
               "status": "alive",
               "alias": "Little Devil",
               "owner_id": "23",
               "id": "24",
               "type_id": null,
               "sex": null,
               "date_register": null,
               "birthday": null,
               "note": null,
               "breed_id": null,
               "old_id": null,
               "color_id": null,
               "deathnote": null,
               "deathdate": null
          }]
     }
}


Список обязательных полей

Создание клиента:
обязательных полей для запроса нет. При передаче пустого запроса создаст клиента с пустыми полями,
но при редактировании через интерфейс потребует заполнение полей:
last_name
city_id

Обновление клиента:
обязательных полей для запроса нет, передадут поле из сущности, его и обновит

👆 На этом пока всё