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



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

Модель 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

<code> {

   "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

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