Открыть главное меню

CarCareModule:API: различия между версиями

Строка 88: Строка 88:
 
* gps - string - GPS координаты автосервиса (Например: 55.739276,37.508265)
 
* gps - string - GPS координаты автосервиса (Например: 55.739276,37.508265)
  
 +
<span id="Department"></span>
  
<span id="Department"></span>
 
 
=== Объект Department ===
 
=== Объект Department ===
 
* departmentId - integer - глобальный идентификатор бокса  
 
* departmentId - integer - глобальный идентификатор бокса  

Версия 12:16, 15 января 2015

Модуль "Автосервис" имеет необходимый набор API-методов для интеграции с вашей собственной учетной системой, в частности, для синхронизации резервов.

Сервис представляет из себя обычный RESTfull сервис поверх HTTP. Вызовы на модификацию принимаются через POST, на получение - через GET. Все ответы приходят в формате JSON. Обмен осуществляется в кодировке UTF-8.

При использовании метода POST в HTTP-заголовке Content-Type необходимо передать медиа-тип данных запроса application/x-www-form-urlencoded и соответственно с данным типом сформировать тело HTTP-запроса.

Для отладки вы можете воспользоваться расширением Advanced REST Client для обозревателя Google Chrome.

Базовым URI для веб-службы является:

http://car-care.abcp.ru

Строки от веб-службы, содержащие русские символы, возвращаются в виде escape unicode.

В каждом запросе должен присутствовать набор обязательных параметров:

  • sitelogin - логин сайта с которого производится запрос
  • sitepsw - пароль сайта, закодированный алгоритмом md5

Результат, возвращаемый веб-сервисом, может иметь один из следующих статусов:

  • 200 - ОК
  • 500 - Internal Server Error

Если выставлен статус 500, значит в процессе работы веб-сервиса произошла ошибка. В этом случае ответ веб-сервиса должен содержать объект с двумя полями errorCode и errorMessage.

   {
      "errorCode":2,
      "errorMessage":"Недостаточно параметров"
   }

Сущности

Объект CarCare

  • carCareId - integer - глобальный идентификатор автосервиса
  • url - string - сайт сервиса
  • name - string - название сервиса
  • workingTime - object WorkingTime - данные о рабочем времени
  • address - объект Address
  • timeZone - string - временная зона нахождения автосервиса [Пример: Europe/Moscow] (полный список поддерживаемых временных зон)
  • phones - array of string - телефоны
  • reservationStepInMinutes - integer - шаг резервирования в минутах
  • status - integer - состояние модерации автосервиса (1 - в работе, 2 - на проверке модератора, 3 - подтверждён)
  • conditions - string - условия работы
  • departmentCount - integer - количество боксов
  • departments - array of Department - массив боксов
  • notificationsPhone - string - телефон для SMS-оповещений
  • inNetwork - bool - признак "входит в сеть"
  • informerSite - string - хост сайта, где расположен информер рейтинга автосервиса
  • logo - string - имя файла логотипа, загруженного в image.api
  • photos - array - массив фотографий
  • notificationEmails - array of string - список email для уведомлений

Объект WorkingTime

Содержит массив с ассоциативными ключами от "1" до "7", соответствующими дням недели от ПН до ВС, а также "holiday", соответствующего праздничным дням. В качестве значений объект со свойствами "start" и "stop", соответствующими началу и окончанию рабочего времени в текстовом формате "09:00". Пустой объект {} - означает выходной.

Пример:

 [
   {
      "1": {},
      "2": {"start":"09:00","stop":"18:00"},
      ...
      "7": {"start":"10:00","stop":"22:00"},
      "holiday": {"start":"10:00","stop":"22:00"}
   }
 ]

Объект Address

  • countryId - integer - код страны
  • regionCode - string - код региона
  • cityCode - string - код города
  • city - string - название города
  • street - string - улица
  • building - string - дом, строение
  • apartment - string - № офиса
  • subwayStation - string - название станции метро
  • subwayStationId - integer - идентификатор станции метро
  • subwayLine - string - название ветки метро
  • subwayLineId - integer - идентификатор ветки метро
  • gps - string - GPS координаты автосервиса (Например: 55.739276,37.508265)

Объект Department

  • departmentId - integer - глобальный идентификатор бокса
  • name - string - название бокса
  • workingTime - object WorkingTime - данные о рабочем времени
  • phones - array of string - телефоны
  • reservationStepInMinutes - integer - шаг резервирования в минутах
  • workplaceCount - integer - количество подъёмников (рабочих мест)
  • availableWorks - array of Work - данные о видах работ и их продолжительности
  • isHidden - boolean - видимость бокса

Объект Work

  • workId - integer - глобальный идентификатор работы
  • name - string - название (описание) вида работы
  • duration - integer - длительность работы (не используется)
  • manufacturers - array - массив марок автомобилей для которых выполняется эта работа конкретным боксом
  • isDelete - признак "Удалена"

Пример:

 [ 
   {
     "workId": 1,
     "name": "Мойка",
     "duration": 20,
     "isDelete": 0,
     "manufacturers": [
       {
         "code": "HYUND", 
         "name": "HYUNDAI"
       }
     ]
   },
   {
     "workId": 2,
     "name": "Вулканизация",
     "duration": 50,
     "isDelete": 0,
     "manufacturers": [ ]
   },
   ...
 ]

Объект ReservationWork

  • reservationWorkId - integer - глобальный идентификатор зарезервированной работы
  • carCareId - integer - глобальный идентификатор автосервиса
  • carCareName - string - название автосервиса
  • departmentId - integer - глобальный идентификатор бокса
  • departmentName - string - название бокса
  • works - array of Work - массив объектов Work
  • date - string - формат: ДД-ММ-ГГГГ - дата резервирования
  • timeStart - string - формат: ЧЧ:ММ - время начала резервирования
  • timeStop - string - формат: ЧЧ:ММ - время окончания резервирования
  • intervals - array of array - массив с забронированными интервалами работы в формате array(0 => array("start" => "ЧЧ:ММ", "stop" => "ЧЧ:ММ"), ...)
  • customerGid - integer - глобальный идентификатор клиента
  • customer - Customer - информация о забронировавшем пользователе
  • comment - string - комментарий клиента при резервировании
  • isCancel - bool - значение 1 или 0 - если isCancel=1 при isDelete=0 значит отправлен запрос на удаление резерва. Если isCancel=1 при isDelete=1 значит запрос на отмену резерва подтвержден сотрудником автосервиса. Если isDelete=1 при isCancel=0 значит резерв удален сотрудником без запроса со стороны клиента

Customer

  • fullName - string - ФИО клиента делающего резерв
  • phoneNumber - string - номер телефона
  • email - string - адрес электронной почты
  • modificationId - integer - идентификатор модификации выбранного автомобиля (не используется)
  • manufacture - string - марка автомобиля, например: BMW
  • model - string - модель автомобиля, например - 118i
  • registrationNumber - string - государственный регистрационный номер автомобиля

Операции