## Проекты ## Методы
Метод Описание
project Получить проект
project-list Получить список проектов
status-list Получить список статусов для проекта
project task category list список категорий задач проекта
create project category task создать категорию задач проекта
update project category task изменить категорию задач проекта
create Создать проект
update Изменить проект
### Получить проект `https://guild.craft-group.xyz/api/project/get-project`

Для получения проекта необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/project/get-project

Требуемые параметры:

Параметры Значение
project_id ID проекта

Пример запроса:

`https://guild.craft-group.xyz/api/project/get-project?project_id=1`

Возвращает объект проекта имеющий такой вид:

```json5 { "id": 1, "name": "проект название", "budget": "333", "status": 5, "hh_id": { "id": 1, "hh_id": null, "url": "knkjsefnejkdbvjfdbv", "title": null, "dt_add": null, "photo": null }, "company": { "id": 1, "name": "Рога и копыта", "description": "Живодёрня" }, "_links": { "self": { "href": "http://guild.loc/api/project/index?project_id=1" } } } ``` ### Получить список проектов `https://guild.craft-group.xyz/api/project/project-list`

Для получения списка проектов необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/project/project-list

Параметры:

Параметры Значение
card_id ID профиля пользователя (При передаче этого параметра будет возвращён список проектов в которых задействован конкретный пользователь, без него будет возвращён список всех проектов)

Пример запроса:

`https://guild.craft-group.xyz/api/project/project-list?card_id=1`

Возвращает массив объектов проект имеющий такой вид:

```json5 { "projects": [ { "id": 1, "name": "проект название", "budget": "333", "status": 5, "hh_id": { "id": 1, "hh_id": null, "url": "knkjsefnejkdbvjfdbv", "title": null, "dt_add": null, "photo": null }, "company": { "id": 1, "name": "Рога и копыта", "description": "Живодёрня" }, "_links": { "self": { "href": "http://guild.loc/api/project/index?project_id=1" } } }, { "id": 3, "name": "тестовый проект", "budget": "333", "status": 5, "hh_id": { "id": 1, "hh_id": null, "url": "knkjsefnejkdbvjfdbv", "title": null, "dt_add": null, "photo": null }, "company": null, "_links": { "self": { "href": "http://guild.loc/api/project/index?project_id=3" } } } ], "_links": { "self": { "href": "http://guild.loc/api/project/project-list?card_id=1&page=1" }, "first": { "href": "http://guild.loc/api/project/project-list?card_id=1&page=1" }, "last": { "href": "http://guild.loc/api/project/project-list?card_id=1&page=1" } }, "_meta": { "totalCount": 2, "pageCount": 1, "currentPage": 1, "perPage": 20 } } ``` ### Получить список статусов для проекта `https://guild.craft-group.xyz/api/project/status-list`

Для получения списка статусов проекта необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/project/status-list

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

Пример запроса:

`https://guild.craft-group.xyz/api/project/status-list`

Возвращает массив объектов статус имеющий такой вид:

```json5 [ { "id": 5, "name": "проект" }, { "id": 6, "name": "проект статус 2" } ] ``` ### Список категорий задач проекта `https://guild.craft-group.xyz/api/project/project-task-category-list`

Для получения списка категорий задач проекта необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/project/project-task-category-list

Требуемые параметры:

Параметры Значение
project_id ID проекта

Пример запроса:

`https://guild.craft-group.xyz/api/project/project-task-category-list?project_id=1`

Возвращает массив категорий задач проекта имеющий такой вид:

```json5 [ { "id": 1, "title": "mlkmld", "project_id": 1 }, { "id": 2, "title": "тест", "project_id": 1 } ] ``` ### Создать категорию задач проекта `https://guild.craft-group.xyz/api/project/create-project-task-category`

Для для создания категории задач проекта необходимо отправить POST запрос на URL https://guild.craft-group.xyz/api/project/create-project-task-category

Требуемые параметры:

Параметры Значение
project_id ID проекта
title название категории

Пример запроса:

`https://guild.craft-group.xyz/api/project/create-project-task-category`

Возвращает категорию задач проекта имеющий такой вид:

```json5 { "project_id": "1", "title": "test333", "id": 4 } ``` ### Изменить категорию задач проекта `https://guild.craft-group.xyz/api/project/update-project-task-category`

Для для создания категории задач проекта необходимо отправить POST запрос на URL https://guild.craft-group.xyz/api/project/update-project-task-category

Возможные параметры:

Параметры Значение
project_id ID проекта
title название категории
new_title новое название категории

Пример запроса:

`https://guild.craft-group.xyz/api/project/update-project-task-category`

Возвращает категорию задач проекта имеющий такой вид:

```json5 { "id": 1, "title": "hfbvhdfbv3", "project_id": 1 } ``` ### Создать проект `https://guild.craft-group.xyz/api/project/create`

Для создания нового проекта необходимо отправить POST запрос на URL https://guild.craft-group.xyz/api/project/create

Параметры:

* - обязательные параметры
Параметры Значение
* name название проекта
* status статус проекта
description описание проекта
budget бюджет проекта
company_id ID компании
$hh_id ID hh

Пример запроса:

`https://guild.craft-group.xyz/api/project/create`

Возвращает массив объектов статус имеющий такой вид:

```json5 { "id": 10, "name": "test", "budget": "333", "status": "5", "hh_id": null, "company": null, "_links": { "self": { "href": "http://guild.loc/api/project/index?project_id=10" } } } ``` ### Обновить проект `https://guild.craft-group.xyz/api/project/update`

Для создания нового проекта необходимо отправить POST запрос на URL https://guild.craft-group.xyz/api/project/update

Параметры:

* - обязательные параметры
Параметры Значение
* project_id ID проекта
status статус проекта
name название
description описание проекта
budget бюджет проекта
company_id ID компании
hh_id ID hh

Пример запроса:

`https://guild.craft-group.xyz/api/project/update`

Возвращает массив объектов статус имеющий такой вид:

```json5 { "id": 7, "name": "777nnknkfg666", "budget": "333", "status": "5", "hh_id": { "id": 1, "hh_id": null, "url": "knkjsefnejkdbvjfdbv", "title": null, "dt_add": null, "photo": null }, "company": { "id": 1, "name": "Рога и копыта", "description": "Живодёрня" }, "_links": { "self": { "href": "http://guild.loc/api/project/index?project_id=7" } } } ``` # Задачи ## Методы
Метод Описание
get-task-list Возвращает список задач
get-task Возвращает задачу
create-task Создаёт задачу
update Обновить задачу
## Список задач `https://guild.craft-group.xyz/api/task/get-task-list?project_id=1`

Параметры:

Параметры Значение
project_id Id проекта

Без передачи параметра возвращает массив объектов Задача . С параметром project_id, метод возвращает объекты Задача определённого проекта.

Возвращает массив объектов Задача.
Каждый объект Задача имеет такой вид:

```json5 [ { "id": "6", "project_id": "74", "title": "Название задачи", "status": "1", "created_at": "2021-12-20 16:29:39", "updated_at": "2021-12-20 17:35:04", "description": "Описание задачи", "card_id_creator": "1", "card_id": "3" }, '...' ] ``` ## Получить документ `https://guild.craft-group.xyz/api/task/get-task?task_id=15`

Параметры:

Параметры Значение
task_id Id задачи

Возвращает объект Задача.
Каждый объект Задача имеет такой вид:

```json5 { "id": 15, "project_id": 74, "title": "4324238888", "status": 1, "created_at": "2022-01-05 17:37:37", "updated_at": "2022-01-05 17:46:10", "description": "888", "card_id_creator": 1, "card_id": null } ```

Пример ошибки:

```json5 { "name": "Not Found", "message": "The task does not exist", "code": 0, "status": 404, "type": "yii\\web\\NotFoundHttpException" } ``` ## Создать документ `https://guild.craft-group.xyz/api/document/create-document`

Параметры:

Параметры Значение
title Название задачи
project_id Id проекта
status статус задачи
card_id_creator Id профиля создателя
card_id Id профиля наблюдателя(не обязательный параметр)
description Описание

Создаёт Задача. Требует передачи POST запроса с соответствующими параметрами

В случае указания не верных параметров буде возвращена соответствующая ошибка. Пример ошибки:

```json5 { "name": "Internal Server Error", "message": "{\"project_id\":[\"\П\р\о\е\к\т is invalid.\"]}", "code": 0, "status": 500, "type": "yii\\web\\ServerErrorHttpException" } ``` ## Обновить задачу `https://guild.craft-group.xyz/api/task/update`

Параметры:

Параметры Значение
title Название задачи
project_id Id проекта
status статус задачи
card_id_creator Id профиля создателя
card_id Id профиля наблюдателя(не обязательный параметр)
description Описание

Обновляет объект Задача. Требует передачи POST запроса с соответствующими параметрами

В случае указания не верных параметров буде возвращена соответствующая ошибка. Пример ошибки:

```json5 { "name": "Not Found", "message": "The task does not exist", "code": 0, "status": 404, "type": "yii\\web\\NotFoundHttpException" } ``` ## Исполнители задачи ## Методы
Метод Описание
get-task-users Список исплнителей задачи
set-task-users Назначить исполнителя на задачу
### Список исполнителей задачи `https://guild.craft-group.xyz/api/task-user/get-task-users`

Для получения списка исполнителей необходимо отправить GET запрос на URL https://guild.craft-group.xyz/api/task-user/get-task-users

Требуемые параметры:

Параметры Значение
task_id ID задачи

Пример запроса:

`https://guild.craft-group.xyz/api/task-user/get-task-users?task_id=10`

Возвращает массив сотрудников проекта закреплённых за задачей.
Каждый ответ имеет такой вид:

```json5 [ { "id": 5, "task_id": 10, "project_user_id": 1 }, { "id": 7, "task_id": 10, "project_user_id": 5 } ] ```

Параметры объекта Исполнитель:

Параметры Значение
id ID исполнителя задачи(int)
task_id ID задачи(int)
project_user_id ID сотрудника на проекте(int)

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

```json5 { "name": "Not Found", "message": "The task does not exist or there are no employees for it", "code": 0, "status": 404, "type": "yii\\web\\NotFoundHttpException" } ``` ### Назначить сотрудника на задачу `https://guild.craft-group.xyz/api/task-user/set-task-users`

Для назначения исполнителя необходимо отправить POST запрос на URL https://guild.craft-group.xyz/api/task-user/set-task-user

Требуемые параметры:

Параметры Значение
task_id ID задачи
project_user_id ID сотрудника на проекте

Пример запроса:

`https://guild.craft-group.xyz/api/task-user/set-task-user`

Возвращает объект Исполнителя задачи.
Каждый ответ имеет такой вид:

```json5 { "task_id": "10", "project_user_id": "5", "id": 8 } ```

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

```json5 { "name": "Bad Request", "message": "{\"task_id\":[\"\З\а\д\а\ч\а is invalid.\"]}", "code": 0, "status": 400, "type": "yii\\web\\BadRequestHttpException" } ```