API

Описание методов

Для получения доступа к открытому API системы Квант достаточно использовать ключ API. Ключ API генерируется в личном профиле сотрудника в разделе "настройки". Ключ соответствует организации и пользователю в системе.

В документации указана нижеприведенная информация в формате google документа.
Ссылка: Документация


Ключ API необходимо передавать с каждым запросом в заголовках, название заголовка api-key

Если ключ API указан неверно, в ответ на любой запрос вернется следующий ответ JSON:


{
"message":"Bad key",
"status_code":401
}



Запросы необходимо отправлять на основной адрес системы https://rsuquant.ru.

Также с этой инструкцией можно ознакомиться по ссылке: https://docs.google.com/document/d/1VykFkR8gh2TOaaMCI-Mr95OdciBA_x2ZjiIREEa7DJE/edit#


Список коммуникаций


Запрос:


POST /openapi/tasks/index



Параметры:


{
"states":[1, 2, 3, 4],
"type":"my",
"offset":10,
"limit":10,
"creator_user_ids":null,
"deadline_period_start":"2022-01-20",
"deadline_period_end":"2022-05-01"
"to_user_ids":null,
"user_labels":[],
"with_communication_errors":false
}



В качестве параметров выступают следующие значение:

         states - этап коммуникации (int | array [int]) 

         type - тип отображения (string) - my, control, track

         offset - смещение (int) - default 0

         limit - лимит (int) - default 50, max 100     

         creator_user_ids - отправитель (int | array [int]) - учитывается при type my, track

         to_user_ids - исполнитель (int | array [int]) - учитывается при type control, track

         user_labels - метки (array [int] | null)

         deadline_period_start (string|null) - крайний срок начало периода (string) - формат yyyy-mm-dd

         deadline_period_end (string|null) - крайний срок конец периода (string) - формат yyyy-mm-dd

         with_communication_errors - с ошибками коммуникаций (boolean)


Результатом данного запроса будет следующий ответ JSON:


[
{
"id":462,
"organization_id":1,
"state_id":1,
"creator_id":3,
"to_user_id":6,
"required_deadline":1,
"closed_overdue":0,
"position":65556,
"title":null,
"body":null,
"due_at":"2022-04-08 16:47:00+03",
"created_at":"2022-04-08 15:47:00+0300",
"updated_at":"2022-04-08 15:47:00+0300",
"deleted_at":null,
"due_changes":0,
"is_canceled":0,
"key":"-N-8CNI-YD4Sj_wSuYc-",
"product":null,
"section_position_id":null,
"is_done":0,
"position_control":65541,
"prev_state_id":null,
"prev_to_user_id":6,
"prev_section_position_id":null,
"type_id":1,
"took_to_work_at":null,
"repeat_task_id":62,
"function_user_id":51,
"prev_function_user_id":51,
"mass_task_id":null,
"program_id":null,
"not_need_approve":null,
"task_start_date":"2022-04-08 15:47:00+03",
"last_done_at":null,
"policy_for_study_count":null,
"business_process_action_queue_id":null,
"first_creator_id":3,
"is_active":1,
"first_created_at":"2022-04-08 12:45:44",
"inputs_values":[
{
"id":492,
"organization_id":1,
"task_id":462,
"task_input_id":1,
"value":"6189 3",
"created_at":"2022-04-08 15:45:44+0300",
"updated_at":"2022-04-08 15:45:44+0300",
"input":{
"id":1,
"task_type_id":1,
"name":"Название",
"type":2,
"required":1,
"description":"Название задачи",
"position":0,
"preview":1,
"created_at":"2021-06-10 04:49:46+0300",
"updated_at":"2021-06-10 07:49:50+0300",
"deleted_at":null,
"send_to_telegram":1,
"is_product":0,
"translate_slug":"communication_name"
}
}
],
"task_actions":[],
"programs":[],
"attentions":[],
"required_comments":[],
"task_labels":[]
}
]



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


Запрос:


GET /openapi/tasks/todo/{date}?offset=0&limit=40& 

withCommunicationErrors=1



Параметры: не требуются


В качестве параметров в строке запроса выступают следующие значение:

         date - дата (int) required - формат dd.mm.yyyy 

         offset - смещение (int) - default 0

         limit - лимит (int) - default 50, max 100

         with_communication_errors - с ошибками коммуникаций (int) - 0 без ошибок, 1 с ошибками


Результатом данного запроса будет следующий ответ JSON:


[
{
"id":4,
"organization_id":1,
"state_id":1,
"creator_id":2,
"to_user_id":6,
"required_deadline":1,
"closed_overdue":0,
"position":65539,
"title":null,
"body":null,
"due_at":"2021-06-15 15:00:00+03",
"created_at":"2021-06-10 09:46:24+0300",
"updated_at":"2021-06-10 09:46:24+0300",
"deleted_at":null,
"due_changes":0,
"is_canceled":0,
"key":"-Mbof-7-P5LpwiSS2k5E",
"product":null,
"section_position_id":null,
"is_done":0,
"position_control":65539,
"prev_state_id":null,
"prev_to_user_id":6,
"prev_section_position_id":null,
"type_id":1,
"took_to_work_at":null,
"repeat_task_id":1,
"function_user_id":3,
"prev_function_user_id":3,
"mass_task_id":null,
"program_id":null,
"not_need_approve":null,
"task_start_date":"2021-06-10 09:46:25+03",
"last_done_at":null,
"policy_for_study_count":null,
"business_process_action_queue_id":null,
"first_creator_id":null,
"is_active":1,
"first_created_at":"2021-06-10 06:46:24+00",
"message_creator_id":null,
"trc_created_at":null,
"ta_date":null,
"reason_for_show":[
"overdue",
"not_accepted"
],
"inputs_values":[
{
"id":4,
"organization_id":1,
"task_id":4,
"task_input_id":1,
"value":"Тестовая ПЗ",
"created_at":"2021-06-10 09:46:24+0300",
"updated_at":"2021-06-10 09:46:24+0300",
"input":{
"id":1,
"task_type_id":1,
"name":"Название",
"type":2,
"required":1,
"description":"Название задачи",
"position":0,
"preview":1,
"created_at":"2021-06-10 04:49:46+0300",
"updated_at":"2021-06-10 07:49:50+0300",
"deleted_at":null,
"send_to_telegram":1,
"is_product":0,
"translate_slug":"communication_name"
}
}
      ],

   }
]



Создание коммуникации


Запрос:


POST /openapi/tasks/store



Параметры:


{
"to_user_id":1,
"due_at":null,
"required_deadline":0,
"type_id":1,
"inputs_values":[
{
"value":"456",
"task_input_id":1
}
],
"function_user_id":null,
"task_labels":[],
"relation_track_users":[]
}



В качестве параметров выступают следующие значение:

         to_user_id - исполнитель (int) required 

         type - тип коммуникации (int) required - 1 задача, 2 обращение, 6 принятое решение

                   1 - обязательное поле в inputs_values  - task_input_id": 1

                   2 - обязательное поле в inputs_values  - task_input_id": 4

                   6 - обязательное поле в inputs_values  - task_input_id": 13, task_input_id": 14,        

                        task_input_id": 15


     due_at - крайний срок (string | null) - формат yyyy-mm-dd hh:ii:ss


     required_deadline - обязательно к сроку (int) required - 0 необязательно, 1 обязательно

     function_user_id - соответствие функции и сотрудника  (int | null) required

     task_labels - метки (array[int] | null)

     relation_track_users - участники (array[int] | null)


Результатом данного запроса будет следующий ответ JSON:


{
"id":838,
   "organization_id":1,

   …taskData…
"watch_track_users":[],
"inputs_values":[
{
"id":891,
"organization_id":1,
"task_id":838,
"task_input_id":1,
"value":"345354",
"created_at":"2022-04-21 11:49:09+0300",
"updated_at":"2022-04-21 11:49:09+0300",
"input":{
"id":1,
"task_type_id":1,
"name":"Название",
"type":2,
"required":1,
"description":"Название задачи",
"position":0,
"preview":1,
"created_at":"2021-06-10 04:49:46+0300",
"updated_at":"2021-06-10 07:49:50+0300",
"deleted_at":null,
"send_to_telegram":1,
"is_product":0,
"translate_slug":"communication_name"
}
}
],
"relation_track_users":[
{
"id":6,
"type":1,
"organization_id":1,
"task_id":838,
"user_id":6,
"created_at":"2022-04-21 11:49:09+0300",
"updated_at":"2022-04-21 11:49:09+0300"
}
],
"proof":null,
}




Обновление коммуникации


Запрос:


PUT /openapi/tasks/{task_id}



Параметры:


{
"organization_id":1,
"creator_id":1,
"to_user_id":9,
"required_deadline":0,
"due_at":"2022-04-22 10:00:00",
"function_user_id":null,
"relation_track_users":[],
"program_id":null
}



В качестве параметров выступают следующие значение:

         task_id - id задачи (int)

         organization_id - id организации (int)

         creator_id - отправитель (int) required 

         to_user_id - получатель (int) required 

         required_deadline - обязательно к сроку (int) required 

         due_at - крайний срок (string | null) required - формат yyyy-mm-dd hh:ii:ss

         function_user_id - соответствие функ ции и сотрудника  (int | null) required 

    relation_track_users - участники (array | null) required 

         program_id - id проекта (int | null) required


Результатом данного запроса будет следующий ответ JSON:


{
"id":230,
"organization_id":1,
   "state_id":1,

   …taskData…
}




Получение задачи по ключу


Запрос:


GET /openapi/tasks/{task_key}



Параметры: не требуются


В качестве параметров в строке запроса выступают следующие значение:

         task_key - ключ задачи (string)


Результатом данного запроса будет следующий ответ JSON:


{
"id":4,
"organization_id":1,
   "state_id":1,

   …taskData…
"programs":[],
"inputs_values":[
{
"id":4,
"organization_id":1,
"task_id":4,
"task_input_id":1,
"value":"Тестовая ПЗ",
"created_at":"2021-06-10 09:46:24+0300",
"updated_at":"2021-06-10 09:46:24+0300",
"input":{
"id":1,
"task_type_id":1,
"name":"Название",
"type":2,
"required":1,
"description":"Название задачи",
"position":0,
"preview":1,
"created_at":"2021-06-10 04:49:46+0300",
"updated_at":"2021-06-10 07:49:50+0300",
"deleted_at":null,
"send_to_telegram":1,
"is_product":0,
"translate_slug":"communication_name"
}
}
],
"proof":null,
"repeat_task":{
"id":1,
"key":"-MboePWkMIR7118bV1uZ",
"program_id":null
},
"task_labels":[],
"program":null,
"relation_track_users":[],
"task_programs":[]
}




Удаление коммуникации


Запрос:


DELETE /openapi/tasks/{task_id}



Параметры: не требуются


В качестве параметров в строке запроса выступают следующие значение:

         task_id - id задачи (int)


Результатом данного запроса будет следующий ответ JSON:


{
"id":230,
"organization_id":1,
   "state_id":1,

   …taskData…
"programs":[],
"program_task_blanks":[]
}




Обновление полей коммуникации


Запрос:


POST /openapi/tasks/input_value



Параметры:


{
"task_id":230,
"task_input_id":1,
"value":"22",
"proof":null
}



В качестве параметров выступают следующие значение:

         task_id - id задачи (int)

         task_input_id - id типа поля ввода (int)

         value - значение (string)

         proof - поле для доказательства (array|null)


Результатом данного запроса будет следующий ответ JSON:


{
"id":895,
"organization_id":1,
"task_id":840,
"task_input_id":1,
"value":"22",
"created_at":"2022-04-24 11:03:47+0300",
"updated_at":"2022-04-24 08:06:56+0000",
"input":{
"id":1,
"task_type_id":1,
"name":"Название",
"type":2,
"required":1,
"description":"Название задачи",
"position":0,
"preview":1,
"created_at":"2021-06-10 04:49:46+0300",
"updated_at":"2021-06-10 07:49:50+0300",
"deleted_at":null,
"send_to_telegram":1,
"is_product":0,
"translate_slug":"communication_name"
}
}




Отклонить / вернуть на доработку закрытую задачу 


Запрос:


POST /openapi/tasks/{task_id}/cancel



Параметры:


{
   "text":"88",

   "due_at":null,
"required_deadline":1
}



В качестве параметров выступают следующие значение:

         task_id - id задачи (int) required 

         text - текст (string) required 

         due_at - крайний срок (string | null) - формат yyyy-mm-dd hh:ii:ss

         required_deadline - обязательно к сроку (int)


Результатом данного запроса будет следующий ответ JSON:


{
"id":230,
"organization_id":1,
   "state_id":1,

   …taskData…
}




Принять коммуникацию


Запрос:


POST /openapi/tasks/{task_id}/accept



Параметры: не требуются


В качестве параметров в строке запроса выступают следующие значение:

         task_id - id задачи (int) required 


Результатом данного запроса будет следующий ответ JSON:


{
"id":230,
"organization_id":1,
   "state_id":1,

   …taskData…
"programs":[],
"program_task_blanks":[]
}




Взять в работу коммуникацию


Запрос:


POST /openapi/tasks/{task_id}/to_work



Параметры:


{
"date":"2022-04-25 11:00:00",
"end_date":null,
"include_to_calendar":0,
"title":"4534",
"due_at":"2022-04-25 16:00:00"
}



В качестве параметров выступают следующие значение:

         task_id - id задачи (int) required 

         date - дата наступления действия (string) required - формат yyyy-mm-dd hh:ii:ss

         end_date - дата окончания действия (string|null) - формат yyyy-mm-dd hh:ii:ss

         include_to_calendar - включить в календарь (int) - 0 не включать, 1 включить

         title - текст действия (string)

         due_at - крайний срок (string) required если не был указан при создании задачи - формат yyyy-mm-dd hh:ii:ss


Результатом данного запроса будет следующий ответ JSON:


{
"id":230,
"organization_id":1,
   "state_id":1,

   …taskData…
"programs":[],
"program_task_blanks":[]
}





Выполнить коммуникацию


Запрос:


POST /openapi/tasks/{task_id}/done



Параметры:


{
   "comment":"88",

   "is_done":1,
}



В качестве параметров выступают следующие значение:

         task_id - id задачи (int) required 

         comment - текст (string|null) required если есть ОКР и конечный результат не получен

         is_done - конечный результат (int) - 0 не получен, 1 получен


Результатом данного запроса будет следующий ответ JSON:


{
"id":230,
"organization_id":1,
   "state_id":1,

   …taskData…
}




Отзыв задачи


Запрос:


POST /openapi/tasks/{task_id}/take_back



Параметры: не требуются


В качестве параметров в строке запроса выступают следующие значение:

         task_id - id задачи (int) required


Результатом данного запроса будет следующий ответ JSON:


{
"id":230,
"organization_id":1,
   "state_id":1,

   …taskData…
}




Вернуть в работу отклоненную задачу


Запрос:


POST /openapi/tasks/{task_id}/cancel_to_work



Параметры: не требуются


В качестве параметров в строке запроса выступают следующие значение:

         task_id - id задачи (int) required


Результатом данного запроса будет следующий ответ JSON:


{
"id":230,
"organization_id":1,
   "state_id":1,

   …taskData…
}




Копирование коммуникации


Запрос:


POST /openapi/tasks/{task_id}/copy_and_create



Параметры:


{
"to_user_id":6,
"function_user_id":null
}



В качестве параметров выступают следующие значение:

         task_id - id задачи (int) required

         to_user_id - исполнитель (int) required

     function_user_id - соответствие функции и сотрудника  (int | null) required


Результатом данного запроса будет следующий ответ JSON:


{
"id":230,
"organization_id":1,
   "state_id":1,

   …taskData…
"programs":[],
"program_task_blanks":[]
}




Перенести действие коммуникации


Запрос:


POST /openapi/tasks/{task_id}/actions



Параметры:


{
"date":"2022-04-25 11:00:00",
"end_date":null,
"include_to_calendar":0,
"title":"4534"
}



В качестве параметров выступают следующие значение:

         task_id - id задачи (int) required

         date - дата наступления действия (string) required - формат yyyy-mm-dd hh:ii:ss

         end_date - дата окончания действия (string|null)  - формат yyyy-mm-dd hh:ii:ss

         include_to_calendar - включить в календарь (int) required - 0 не включать, 1 включить

         title - текст действия (string) required


Результатом данного запроса будет следующий ответ JSON:


{
"organization_id":1,
"task_id":872,
"title":"77",
"date":"2022-04-25 11:00:00",
"user_id":6,
"end_date":null,
"include_to_calendar":1,
"updated_at":"2022-04-29 12:41:22+0000",
"created_at":"2022-04-29 12:41:22+0000",
"id":47
}




Получение списка логов по коммуникации


Запрос:


GET /openapi/tasks/{task_id}/logs?offset=0&limit=30&logType=1



Параметры: не требуются


В качестве параметров выступают следующие значение:

         task_id - id задачи (int)

         offset - смещение (int) - default 0

         limit - лимит (int) - default 50, max 100

         logType - тип просмотра (int) - кратко 1, детально 0


Результатом данного запроса будет следующий ответ JSON:


[
{
"id":570,
"organization_id":1,
"task_id":843,
"creator_id":1,
"type":1,
"body":{
"comment":"Принято",
"accept_comment":true,
"help_communicator":false
},
"created_at":"2022-04-25 08:53:04+0300",
"updated_at":"2022-04-25 08:53:04+0300",
"deleted_at":null,
"level":1,
"app":0,
"first_created_at":"2022-04-25 05:53:04+03",
"required_comment":[

]
}
]




Добавление комментария


Запрос:


POST /openapi/tasks/{task_id}/logs



Параметры:


{
"required":1,
"text":"6456",
"to_user_ids":[
1
],
"type":1
}



В качестве параметров выступают следующие значение:

         task_id - id задачи (int) required 

         required - обязательный ответ (int) - необязательный 0, обязательный 1, default 0 . Передать 1 - чтобы сбросить принято, если необходим ответ

         accept_comment - принятие, без уведомления (int) - не принято 0, принято 1, default 0

         text - текст (string) required - для автопринятия передать одну из следующих фраз:

'принято', 'хорошо', 'добро', 'ясно', 'готово', 'благодарю', 'принял', 'приняла', 'понятно', 'спасибо', 'благодарю, принято', 'кваска',

         to_user_ids - получатели сообщения  (array[int] | null) 

         type - тип лога (int) required  1 - комментарий


Результатом данного запроса будет следующий ответ JSON:


{
"id":598,
"organization_id":1,
"task_id":843,
"creator_id":6,
"type":1,
"body":{
"comment":"6456",
"accept_comment":null,
"help_communicator":false
},
"created_at":"2022-04-29 15:51:47+0300",
"updated_at":"2022-04-29 15:51:47+0300",
"deleted_at":null,
"level":1,
"app":0,
"first_created_at":"2022-04-29 12:51:47+03"
}



Отчет список коммуникаций 


Запрос:


GET /openapi/report/tasks_list_report



Параметры:


{
"task_filter_type_id": 1,
"creator_id": 1,
"to_user_id": 1,
   "start_date_from": “2023-04-04”,

   "start_date_to": “2023-04-04”,

   "end_date_from": “2023-04-04”,

   "end_date_to": “2023-04-04”,

   "text_search_query": “text”,

   "created_type": 1,

   "state_id": 1,

   "function_id": 1,

   "offset": 1,

   "limit":1 ,
}



В качестве параметров выступают следующие значение:

         task_filter_type_id - тип фильтра (int) required.

0 - все коммуникации

1 - просроченные задачи

2 - не принятые задачи

3 - задачи не в работе

4 - задачи требует внимания

5 - задачи закрыты с просрочкой

6 - сейчас есть нарушения правил коммуникации

         creator_id - id создателя (int)

         to_user_id - id исполнителя (int)

         start_date_from - дата создания (string) формат Y-m-d, пример 2023-04-04

         start_date_to - дата создания (string) формат Y-m-d, пример 2023-04-04

         end_date_from - дата закрытия (string) формат Y-m-d, пример 2023-04-04

         end_date_to - дата закрытия формат (string) Y-m-d, пример 2023-04-04

         text_search_query - поиск по тексту (string)


         created_type - тип создания коммуникации (int)

1 - задача создана вручную

2 - задача создана автоматически

         state_id - этап задачи (int)

1 - новая задачи

2 - принята исполнителем

3 - взята в работу

4 - на одобрении после выполнения

5 - подтверждена постановщиком после выполнения

6 - запланированная задача

         function_id - id функции (int)

         offset - смещение (int) - default 0

         limit - лимит (int) - default 50, max 100




Результатом данного запроса будет следующий ответ JSON:


{
"id":598,
"organization_id":1,
"task_id":843,
"creator_id":6,
"type":1,
"body":{
"comment":"6456",
"accept_comment":null,
"help_communicator":false
},
"created_at":"2022-04-29 15:51:47+0300",
"updated_at":"2022-04-29 15:51:47+0300",
"deleted_at":null,
"level":1,
"app":0,
"first_created_at":"2022-04-29 12:51:47+03"
}




Список пользователей 


Запрос:


GET /openapi/user



Параметры: не требуются








Результатом данного запроса будет следующий ответ JSON:


[

    {

        "organization_id": 1,

        "user_id": 16,

        "first_name": "1",

        "last_name": "6623 test",

        "middle_name": "1",

        "email": "s1@mail.ru"

    },

    ...

]




Получение списка проектов


Запрос:


GET /openapi/program



Параметры: не требуются


Ответ JSON:


[

    {

        "id": 1,

        "organization_id": 6,

        "name": "проект1",

        "description": null,

        "product": null,

        "user_id": null,

        "creator_id": 3,

        "due_at": null,

        "key": "-Mz-HDI7EUpz9alsBkXn",

        "created_at": "2022-03-25 08:54:37",

        "updated_at": "2022-03-25 08:54:37",

        "deleted_at": null,

        "visibility": 0,

        "position": 65536,

        "tasksCount": 1,

        "progress": 0,

        "completed": 0,

        "program_functions": [],

        "tasks": [

            {

                "id": 72,

                …

            },...

        ]

    }

]



Создание проекта


Запрос:


POST /openapi/program



Параметры:




{

   "name":"проеткт3",

   "visibility":1

}



В качестве параметров выступают следующие значение:

    name - Название (string)

    visibility - Видимость (0 - открытый, 1 - по ссылке, 2 - закрытый)



Ответ JSON:


{

    "id": 3,

    "organization_id": 6,

    "name": "проект 1",

    "description": null,

    "product": null,

    "user_id": null,

    "creator_id": 3,

    "due_at": null,

    "key": "-N09b6zVnANOXVP9XF9I",

    "created_at": "2022-04-21 05:33:32",

    "updated_at": "2022-04-21 05:33:32",

    "deleted_at": null,

    "visibility": 1,

    "position": 196608,

    "tasksCount": 0,

    "progress": 0,

    "completed": 0,

    "programs_position": [

        {

            "id": 5,

            "organization_id": 6,

            "program_id": 3,

            "user_id": 3,

            "position": 196608,

            "created_at": "2022-04-21 05:33:32",

            "updated_at": "2022-04-21 05:33:32",

            "deleted_at": null

        }

    ],

    "tasks": []

}



Добавление задачи в проект


Запрос:


POST /openapi/program/{program_id}/add_task


program_id - id проекта


Параметры:


{

   "task_id":1

}



В качестве параметров выступают следующие значение:

    task_id - id задачи (int)



Ответ JSON:


{

    "id": 147,

    "organization_id": 6,

       …

    …taskData…

       …

    "relation_track_users": [

        {

            "id": 138,

            "type": 1,

            "organization_id": 6,

            "task_id": 147,

            "user_id": 3,

            "created_at": "2022-04-21 09:19:59+0300",

            "updated_at": "2022-04-21 09:19:59+0300"

        }

    ]

}




Обновление проекта


Запрос:


PUT /openapi/program/{program_id}


program_id - id проекта


Параметры:


{

   "name":"123",

   "description":"виисчмrerg",

   "product":"вапвыапа",

   "user_id":null,

   "due_at":null,

   "visibility":1

}



В качестве параметров выступают следующие значение:

    description - описание (string)

    name - название (string)

    due_at - крайний срок (string | null) - формат Y-m-d H:i:s

  product - string|null

  user_id - id исполнителя (int | null)

    visibility - видимость (0 - для всех, 1 - по ссылке, 2 - закрытая)



Ответ JSON:


{

   "id":5,

   "organization_id":6,

   "name":"123",

   "description":"description",

   "product":"text",

   "user_id":null,

   "creator_id":3,

   "due_at":null,

   "key":"-N09ilF-apnzqOMq0UcO",

   "created_at":"2022-04-21 06:06:56",

   "updated_at":"2022-04-21 19:35:19",

   "deleted_at":null,

   "visibility":1

}




Удаление проекта


Запрос:


DELETE /openapi/program/{program_id}


program_id - id проекта


Параметры: не требуются


Ответ JSON:


{

   "id":5,

   "organization_id":6,

   "name":"123",

   "description":"\u0432\u0438\u0438\u0441\u0447\u043crerg",

   "product":"\u0432\u0430\u043f\u0432\u044b\u0430\u043f\u0430",

   "user_id":null,

   "creator_id":3,

   "due_at":null,

   "key":"-N09ilF-apnzqOMq0UcO",

   "created_at":"2022-04-21 06:06:56",

   "updated_at":"2022-04-21 19:47:44",

   "deleted_at":"2022-04-21 19:47:44",

   "visibility":1,

   "tasks":[ 

   ]

}




Список шаблонов


Запрос:


GET /openapi/program_templates



Параметры: не требуются


Ответ JSON:


[

   {

      "id":1,

      "organization_id":6,

      "creator_id":3,

      "key":"-N0Fkx3V6fj_l6YC9ISC",

      "name":"шаблон проекта 1",

      "description":"описание шаблона 1",

      "product":null,

      "created_at":"2022-04-22 10:14:12",

      "updated_at":"2022-04-22 10:14:12",

      "deleted_at":null,

      "distributions":[

         {

            "id":1,

            "entity_id":1,

            "type":null,

            "level_id":null,

            "section_id":null,

            "function_id":null,

            "function_user_level_id":null,

            "function_user_type_id":null,

            "distribution_type":1,

            "entity_type":"program_template"

         }

      ]

   }

]




Добавление задачи в шаблоне


Запрос:


POST /openapi/program_templates/{program_template_id}/add_task


program_template_id - id шаблона проекта


Параметры:


{

   "title":"",

   "body":"",

   "product":"",

   "type_id":1,

   "to_user_id":null,

   "due_at":null,

   "required_deadline":1,

   "section_position_id":null,

   "position":0,

   "is_canceled":0,

   "inputs_values":[

      {

         "value":"тест",

         "task_input_id":1

      },

      {

         "value":"тест",

         "task_input_id":2

      },

      {

         "value":"тест",

         "task_input_id":3

      }

   ],

   "function_user_id":null,

   "program_id":null,

   "distribution":{

      "type":null,

      "section_id":null,

      "text_id":6,

      "function_id":1,

      "function_user_level_id":null,

      "distribution_type":6,

      "function_user_type_id":null

   },

   "deadline_type":2,

   "deadline_data":{

      "type":"hours",

      "value":"2"

   }

}



В качестве параметров выступают следующие значение:

    required_deadline - к сроку (int) (0 нет крайнего срока, 1 - есть крайний срок)

    inputs_values - значения: название, описание, результат (array)

    distribution - распределения (array)

    deadline_type - тип дедлайна (int) (1 - до, 2 - после)

    deadline_data - данные по дедлайну (array | string)


Ответ JSON:


{

   "program_template_id":1,

   "key":"-N0FlsON6NIxv-8NB5Y7",

   "deadline_type":2,

   "deadline_data":{

      "type":"hours",

      "value":"2"

   },

   "required_deadline":1,

   "updated_at":"2022-04-22 10:18:15",

   "created_at":"2022-04-22 10:18:15",

   "id":1,

   "to_user_distribution":{

      …

   },

   "distribution":{

      …

   },

   "inputs_values":[

      {...},

      {...},

      {...}

   ]

}




Удаление задачи из шаблона проекта


Запрос:


DELETE /openapi/program_templates/{program_template_id}/delete_task/{task_id}


program_template_id - id шаблона проекта

task_id - id задачи


Параметры: не требуются


Ответ JSON:


{

   "id":2,

   "program_template_id":1,

   "created_at":"2022-04-22 10:48:46",

   "updated_at":"2022-04-22 10:49:36",

   "deleted_at":"2022-04-22 10:49:36",

   "deadline_type":2,

   "deadline_data":{

      "type":"hours",

      "value":"2"

   },

   "required_deadline":1,

   "key":"-N0FsrPkSpAUPJVI1HhR"

}




Сохранение проекта из шаблона

Запрос:


POST /openapi/program/init_by_template



Параметры:


{

   "organization_id":6,

   "creator_id":3,

   "name":"шаблон проекта 1",

   "description":"описание шаблона 1",

   "product":null,

   "user_id":4,

   "tasks":[

      {

         "id":5,

         "program_template_id":1,

         "created_at":"2022-04-28 11:53:16",

         "updated_at":"2022-04-28 11:53:16",

         "deleted_at":null,

         "deadline_type":2,

         "deadline_data":{

            "type":"hours",

            "value":"2"

         },

         "required_deadline":1,

         "key":"-N0k09jVT--teN9ilLJQ",

         "to_user_id":3,

         "distribution":{

            "id":12,

            "entity_id":5,

            "type":null,

            "level_id":null,

            "section_id":null,

            "function_id":1,

            "function_user_level_id":null,

            "function_user_type_id":null,

            "distribution_type":5,

            "entity_type":"program_template_task"

         },

         "inputs_values":[

            {

               "id":12,

               "program_template_task_id":5,

               "task_input_id":1,

               "value":"p1",

               "created_at":"2022-04-28 11:53:16",

               "updated_at":"2022-04-28 11:53:16",

               "deleted_at":null

            },

            {

               "id":13,

               "program_template_task_id":5,

               "task_input_id":2,

               "value":"hgbcfybt",

               "created_at":"2022-04-28 11:53:16",

               "updated_at":"2022-04-28 11:53:16",

               "deleted_at":null

            },

            {

               "id":14,

               "program_template_task_id":5,

               "task_input_id":3,

               "value":"результат",

               "created_at":"2022-04-28 11:53:16",

               "updated_at":"2022-04-28 11:53:16",

               "deleted_at":null

            }

         ],

         "task_name":"p1",

         "task_description":"hgbcfybt",

         "task_result":"результат",

         "task_due_at":"2022-04-29 11:00",

         "task_to_user_id":3,

         "task_function_user_id":null,

         "position":65536

      }

   ],

   "distributions":[

      {

         "id":7,

         "entity_id":1,

         "type":null,

         "level_id":null,

         "section_id":null,

         "function_id":null,

         "function_user_level_id":null,

         "function_user_type_id":null,

         "distribution_type":1,

         "entity_type":"program_template"

      },

      {

         "id":8,

         "entity_id":1,

         "type":null,

         "level_id":null,

         "section_id":null,

         "function_id":null,

         "function_user_level_id":null,

         "function_user_type_id":null,

         "distribution_type":2,

         "entity_type":"program_template"

      }

   ],

   "responsible_distribution":{

      "id":9,

      "entity_id":1,

      "type":null,

      "level_id":null,

      "section_id":null,

      "function_id":1,

      "function_user_level_id":null,

      "function_user_type_id":null,

      "distribution_type":6,

      "entity_type":"program_template_responsible"

   },

   "start_date":"2022-04-29 09:00"

}



В качестве параметров выступают следующие значение:

    name - название (string)

    description - описание (string)

    product - (string|null)

    user_id - id исполнителя (int | null)

    tasks - массив задач (array | [ ])

    due_at - крайний срок (string | null) - формат yyyy-mm-dd hh:ii:ss

    start_date - дата начала отсчета крайнего срока  (string) - формат yyyy-mm-dd hh:ii:ss



Ответ JSON:


{

   "id":8,

   "organization_id":6,

   "name":"name",

   "description":"description",

   "product":null,

   "user_id":4,

   "creator_id":3,

   "due_at":null,

   "key":"-N0GL33VrFXUBVva0S6b",

   "created_at":"2022-04-22 12:56:20",

   "updated_at":"2022-04-22 12:56:20",

   "deleted_at":null,

   "visibility":1,

   "position":458752,

   "tasksCount":0,

   "progress":0,

   "completed":0,

   "programs_position":[

      {

         "id":10,

         "organization_id":6,

         "program_id":8,

         "user_id":3,

         "position":458752,

         "created_at":"2022-04-22 12:56:20",

         "updated_at":"2022-04-22 12:56:20",

         "deleted_at":null

      }

   ],

   "tasks":[

      

   ]

}



Получение шаблона проекта с задачами


Запрос:


GET /openapi/program_templates/{program_template_key}


program_template_key - ключ шаблона проекта


Параметры: не требуются


Ответ JSON:


{

   "id":1,

   "organization_id":6,

   "creator_id":3,

   "key":"-N0Fkx3V6fj_l6YC9ISC",

   "name":"name",

   "description":"description",

   "product":null,

   "created_at":"2022-04-22 10:14:12",

   "updated_at":"2022-04-22 10:14:12",

   "deleted_at":null,

   "tasks":[

      {

         "id":3,

         "program_template_id":1,

         "created_at":"2022-04-22 13:13:49",

         "updated_at":"2022-04-22 13:13:49",

         "deleted_at":null,

         "deadline_type":2,

         "deadline_data":{

            "type":"hours",

            "value":"2"

         },

         "required_deadline":1,

         "key":"-N0GP3A7iSKSD4v0uEpN",

         "distribution":{

            "id":10,

            "entity_id":3,

            …

         },

         "inputs_values":[

            {...},

            {...},         ]

   ],

   "distributions":[

      {

         "id":7,

         "entity_id":1,

         …

      },

      {...}

   ],

   "responsible_distribution":{

      "id":9,

      …

   }

}




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