CreateUserWithTasks

Это общедоступный API-метод, который вы можете подергать для ознакомления.

Все методы сделаны для моего курса «Тестирование REST API». Теорию я выкладываю на youtube и в блог, а за практикой заходите!

Метод с массивами!

Создание нового пользователя и задач для него. Пользователя можно связать с компаниями.

  • CreateUser — связывает с существующими задачами
  • CreateUserWithTasks — создает и юзера, и таски

REST — http://users.bugred.ru/tasks/rest/createuserwithtasks

Входные параметры

Имя параметраТипОбязательный?Описание
emailстрокадаemail пользователя
nameстрокадаимя пользователя
tasksмассивдаПеречень задач, за которые будет отвечать пользователь
companiesмассивнетПеречень компаний, к которым пользователь относится
hobbyстроканетХобби
adresстроканетАдрес
name1строканетИмя 1
surname1строканетФамилия 1
fathername1строканетОтчество 1
catстроканетКошечка
dogстроканетСобачка
parrotстроканетПопугайчик
cavyстроканетМорская свинка
hamsterстроканетХомячок
squirrelстроканетБелочка
phoneстроканетТелефон
innстроканетИНН
genderm / fнетПол
birthdayдатанетДата рождения в формате дд.мм.гггг
date_startдатанетНачал работать в компании (в формате дд.мм.гггг)

Результирующие данные

Имя параметраОписание
partyИнформация по сохраненному клиенту

Особенности использования

Фишка в том, что я могу создать юзера и сразу навязать ему задачу и указать где он работает.

Поля юзера — такие же, как в FullUpdateUser
+ блок <companies> (максимум 3 в одном запросе, необязательный блок. Отсылка на компанию по ее ИД)
+ блок <tasks> (максимум 5 в одном запросе, обязательный блок. Задача создается по паре "Название" + "Описание")

Обязательные поля — name, email и блоки задач

Остальные проверки такие же, как в интерфейсе:

  • Имя и емейл должны быть уникальными
  • ИНН — 12 цифр

Примеры вызова

Пример 1. План-максимум, все поля

Запрос:

{
 "email": "test_cu_3@mail.com",
 "name": "Рестовый 3",
 "tasks": [{
   "title": "Первая задача 2",
   "description": "Первая задача 111"
  },
  {
   "title": "Вторая задача 2",
   "description": "Вторая задача 111"
  }
 ],
 "companies": [19, 20],
 "hobby":"Стрельба из лука, Настолки",
  "adres":"адрес 1",
  "name1":"Тестовый, ясен пень",
  "surname1":"Иванов",
  "fathername1":"Петров",
  "cat":"Маруся",
  "dog":"Ушастый",
  "parrot":"Васька",
  "cavy":"Кто ты?",
  "hamster":"Хомяк",
  "squirrel":"Белая горячка к нам пришла",
  "phone":"333 33 33",
  "inn":"123456789012",
  "gender":"m",
  "birthday":"01.01.1900",
  "date_start":"11.11.2000"
}

Ответ:

{
    "name": "Рестовый 3",
    "name1": "Тестовый, ясен пень",
    "hobby": "Стрельба из лука, Настолки",
    "surname1": "Иванов",
    "fathername1": "Петров",
    "cat": "Маруся",
    "dog": "Ушастый",
    "parrot": "Васька",
    "cavy": "Кто ты?",
    "hamster": "Хомяк",
    "squirrel": "Белая горячка к нам пришла",
    "phone": "333 33 33",
    "adres": "адрес 1",
    "gender": "m",
    "date_start": {
        "sec": 973890000,
        "usec": 0
    },
    "date_updated": {
        "sec": 1538362106,
        "usec": 80000
    },
    "birthday": {
        "sec": -2208997817,
        "usec": 0
    },
    "role": [
        "user"
    ],
    "date_register": {
        "sec": 1538362106,
        "usec": 80000
    },
    "date": "2018-10-01",
    "email": "test_cu_3@mail.com",
    "by_user": "manager@mail.ru",
    "companies": [
        {
            "name": "Иванов 6",
            "id": 20
        },
        {
            "name": "Иванов 5",
            "id": 19
        }
    ],
    "tasks": [
        {
            "name": "Первая задача 2",
            "id": 47
        },
        {
            "name": "Вторая задача 2",
            "id": 48
        }
    ]
}

Пример 2. План-минимум, только name и email из полей клиента

Запрос

{
 "email": "test_cu_26@mail.com",
 "name": "Рестовый 6",
 "tasks": [{
   "title": "Первая задача",
   "description": "Первая задача 11"
  },
  {
   "title": "Вторая задача",
   "description": "Вторая задача 11"
  }
 ]
}

Ответ:

{
    "name": "Рестовый 6",
    "date_updated": {
        "sec": 1538326598,
        "usec": 100000
    },
    "role": [
        "user"
    ],
    "date_register": {
        "sec": 1538326598,
        "usec": 100000
    },
    "date": "2018-09-30",
    "email": "test_cu_26@mail.com",
    "by_user": "manager@mail.ru",
    "companies": null,
    "tasks": [
        {
            "name": "Первая задача",
            "id": 43
        },
        {
            "name": "Вторая задача",
            "id": 44
        }
    ]
}

Пример 3. SOAP с массивом данных

Запрос

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wrap="http://foo.bar/wrappersoapserver" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <wrap:CreateUserWithTasks>
         <email>newsupermail255@noibiz.com</email>
         <name>SOAP name 25</name>
         <tasks>
         <task>
          <task_title>Первая задача(soap 1)</task_title>
          <task_description>Описание</task_description>
         </task>
                  <task>
          <task_title>Вторая задача(soap 1)</task_title>
          <task_description>Описание</task_description>
         </task>          
         </tasks>
                  <companies soapenc:arrayType="xsd:array[]">
         		<item>513</item>
         		<item>20</item>
         	</companies>
      </wrap:CreateUserWithTasks>
   </soapenv:Body>
</soapenv:Envelope>

Ответ:

<SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://users.bugred.ru/tasks/soap/WrapperSoapServer.php" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
   <SOAP-ENV:Body>
      <ns1:CreateUserWithTasksResponse>
         <return xsi:type="SOAP-ENC:Struct">
            <email xsi:type="xsd:string">newsupermail255@noibiz.com</email>
            <name xsi:type="xsd:string">SOAP name 25</name>
            <avatar xsi:nil="true"/>
            <password xsi:nil="true"/>
            <birthday xsi:type="xsd:int">0</birthday>
            <gender xsi:nil="true"/>
            <date_start xsi:type="xsd:int">0</date_start>
            <hobby xsi:nil="true"/>
            <name1 xsi:type="xsd:string"/>
            <surname1 xsi:type="xsd:string"/>
            <fathername1 xsi:type="xsd:string"/>
            <cat xsi:type="xsd:string"/>
            <dog xsi:type="xsd:string"/>
            <parrot xsi:type="xsd:string"/>
            <cavy xsi:type="xsd:string"/>
            <hamster xsi:type="xsd:string"/>
            <squirrel xsi:type="xsd:string"/>
            <phone xsi:type="xsd:string"/>
            <adres xsi:type="xsd:string"/>
            <tasks SOAP-ENC:arrayType="xsd:int[2]" xsi:type="SOAP-ENC:Array">
               <item xsi:type="xsd:int">303</item>
               <item xsi:type="xsd:int">304</item>
            </tasks>
            <companies SOAP-ENC:arrayType="xsd:int[1]" xsi:type="SOAP-ENC:Array">
               <item xsi:type="xsd:int">20</item>
            </companies>
         </return>
      </ns1:CreateUserWithTasksResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>