Page tree

Citypoint - контроль и аналитика автопарка

Skip to end of metadata
Go to start of metadata

Метод изменения водителя.

Запрос:

URL:

PATCH https://api.url/v2.1/user/<user_id>/drivers/<driver_id>

Доп. Заголовки:

Accept - для указания формата ответа. Должен быть "application/vnd.api+json", для совместимости принимается также "application/json".

Content-Type - должен быть "application/vnd.api+json".

Authorization - для передачи токена. Передается в формате: Bearer <access_token>.

Данные запроса:

       Запрос отсылается в формате  JSON API.

ПолеОписание
data

Содержит объект с описанием водителя в формате JSON API.

Каждый объект водитель содержит

ПолеТипОписание
typestringтип ресурса (всегда "driver")
attributesobjectДанные водителя (описание атрибутов ниже)
relationshipsobjectСвязанные с водителем объекты (описание связанных объектов ниже)

Описание атрибутов водителей.

ПолеТипNullableОписание
FIOobjectнет

Объект ФИО водителя.

Licenceobjectда

Объект водительское удостоверение (ВУ).

SNILSstringданомер СНИЛС
INNstringданомер ИНН
IsResidentboolнетВодитель является резидентом страны, в которой работает
DismissalDatedateдаДата увольнения
DateOfCreationdatetimeнетДата создания (нельзя изменять, игнорируется сервером)
UpdateDatedatetimeнетДата обновления (игнорируется сервером, обновляется автоматически)
Объект ФИО водителя
ПолеТипNullableОписание
LastNamestringдаФамилия
FirstNamestringдаИмя

Patronymic

stringдаОтчество

В ФИО всегда должно быть хотя бы одно непустое (не null и не "") поле.


Объект водительское удостоверение (ВУ)
ПолеТипNullableОписание
DrivingLicencestringданомер удостоверения
DrivingLicenceCategorystringда

категория или несколько категорий.

В текущей версии это просто текстовое поле.

DrivingLicenceIssueDatedatetimeдакогда выдано
DrivingLicenceExpireDatedatetimeдакогда завершается

Если Licence не null, то в объекте должно быть хотя бы одно не пустое поле.


Описание связанных с водителем объектов:

ПолеТипNullable
Phonesarray<phone>нет

Список телефонов водителя.

Если в Phones передать массив ссылок на телефоны, то должны будут остаться только переданные телефоны.

Переданный массив может содержать только те телефоны которые уже привязаны к водителю (нельзя добавить новый телефон от другого водителя, можно только удалить 1 или несколько текущий телефонов данного водителя).

При передаче пустого массива должны удалиться все телефоны.

Addressesarray<address>нетАдреса водителя
Emailsarray<email>нетEmail водителя
Ownerobject<user>нет

Кому принадлежит водитель

Нельзя редактировать.

DriverKeyobject<driverKey>да

Ключ водителя

Counteragentobject<counteragent>даОрганизация водителя


Коды ответов:

200 OK - Сервер изменил водителя. В теле ответа содержится обновлённое описание водителя.

401 Unauthorized - не передан заголовок Authorization, либо токен не корректный, либо окончился период действия.

403 Forbidden - нет прав на редактирование.

400 Bad Request - Переданы неподдерживаемые параметры, либо сервер не понял запрос (описание ошибки в теле ответа).


Пример:

Изменение только лицензии.

PATCH https://api.url/user/1/drivers/1
Accept: application/vnd.api+json
Content-Type: application/vnd.api+json
Authorization: Bearer <auth token>

{
    "data": {
		"id": "1",
	    "type": "driver",
        "attributes": {
            "Licence":{
                "DrivingLicence": "ADSF123123",
                "DrivingLicenceCategory": "BCDE",
                "DrivingLicenceIssueDate": "2017-03-20",
                "DrivingLicenceExpireDate": "2027-03-20"
            }
        }
    }
}

HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
    "links":{
        "self": "https://api.url/v2.1/user/1/drivers/1"        
    },
    "data": {
		"id": "1",
	    "type": "driver",
        "attributes": {
            "FIO": {
                "LastName": "Бэггинс",
                "FirstName": "Фродо",
                "Patronymic": null
            },
            "Licence":{
                "DrivingLicence": "ADSF123123",
                "DrivingLicenceCategory": "BCDE",
                "DrivingLicenceIssueDate": "2017-03-20",
                "DrivingLicenceExpireDate": "2027-03-20"
            },
            "SNILS": null,
            "INN": null,
            "IsResident": true,
            "DismissalDate": "2022-01-01",
            "DateOfCreation": "2022-05-11T11:56:41Z",
            "UpdateDate": "2022-05-11T11:56:41Z"
        },
        "relationships":{
           "Counteragent": { 
                "data": { "type": "counteragent", "id": 1 } 
           },
           "Owner": {
                "data": { "type": "user": "id": 1},
           },
           "Phones": {
              "data": [
                  { "type": "phone", "id": "1" },
                  { "type": "phone", "id": "2" },
                  { "type": "phone", "id": "3" }
              ]
          },
          "Addresses": {
              "data": []
          },
          "Emails": {
              "data": []
          },
          "DriverKey": {  
              "data": { "type": "driverKey", "id": 123 }
          }
      }
   }

}

Удаление всех телефонов и изменение имени.

PATCH https://api.url/user/1/drivers/1
Accept: application/vnd.api+json
Content-Type: application/vnd.api+json
Authorization: Bearer <auth token>

{
    "data": {
		"id": "1",
	    "type": "driver",
        "attributes": {
            "FIO":{
                "FirstName": "Фёдор"
            }
        },
        "relationships":{
            "Phones": {
                "data": []
            }
        }
    }
}

HTTP/1.1 200 OK
Content-Type: application/vnd.api+json

{
    "links":{
        "self": "https://api.url/v2.1/user/1/drivers/1"        
    },
    "data": {
		"id": "1",
	    "type": "driver",
        "attributes": {
            "FIO": {
                "LastName": "Бэггинс",
                "FirstName": "Фёдор",
                "Patronymic": null
            },
            "Licence":{
                "DrivingLicence": "ADSF123123",
                "DrivingLicenceCategory": "BCDE",
                "DrivingLicenceIssueDate": "2009-03-20",
                "DrivingLicenceExpireDate": "2019-03-20"
            },
            "SNILS": null,
            "INN": null,
            "IsResident": true,
            "DismissalDate": "2022-01-01",
            "DateOfCreation": "2022-05-11T11:56:41Z",
            "UpdateDate": "2022-05-11T11:56:41Z"
        },
        "relationships":{
           "Owner": {
                "data": { "type": "user": "id": 1},
           },
           "Phones": {
              "data": []
          },
          "Addresses": {
              "data": []
          },
          "Emails": {
              "data": []
          },
          "DriverKey": {  
              "data": { "type": "driverKey", "id": 123 }
          }
       }
    }
}
  • No labels