## Проекты ## Методы
Метод Описание
project Получить проект
project-list Получить список проектов
status-list Получить список статусов для проекта
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/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" } ```