> For the complete documentation index, see [llms.txt](https://alecmei-gubin.gitbook.io/citron-system/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://alecmei-gubin.gitbook.io/citron-system/untitled/proekty/osnovnye-metody.md).

# Основные методы

## index

<mark style="color:blue;">`GET`</mark> `https://api.url/api/projects`

Метод возвращает список проектов

#### Headers

| Name          | Type   | Description                         |
| ------------- | ------ | ----------------------------------- |
| Authorization | string | Токен, выданный вам при авторизации |

{% tabs %}
{% tab title="200 Cake successfully retrieved." %}

```javascript
{
    "data": [
        {
            "id": 1,
            "name": "Проект",
            "purpose": "Цель проекта",
            "expected_result": "Ожидаемый результат",
            "start_date": null,
            "end_date": null,
            "expected_date": null
        },
        {
            "id": 4,
            "name": "Название проекта",
            "purpose": "Истинная цель проекта",
            "expected_result": "Ожидаемый результат проекта",
            "start_date": null,
            "end_date": null,
            "expected_date": null
        }
    ]
}
```

{% endtab %}
{% endtabs %}

## show

<mark style="color:blue;">`GET`</mark> `https://api.url/api/projects/{id}`

Возвращает проект по заданному id

#### Path Parameters

| Name | Type    | Description         |
| ---- | ------- | ------------------- |
| id   | integer | id искомого проекта |

#### Headers

| Name          | Type   | Description                         |
| ------------- | ------ | ----------------------------------- |
| Authorization | string | Токен, выданный вам при авторизации |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": {
        "id": 1,
        "name": "Проект",
        "purpose": "Цель проекта",
        "expected_result": "Ожидаемый результат",
        "start_date": null,
        "end_date": null,
        "expected_date": null
    }
}
```

{% endtab %}

{% tab title="400 " %}

```javascript
{
    "errors": {
        "id": [
            "The selected id is invalid."
        ]
    }
}
```

{% endtab %}
{% endtabs %}

## store

<mark style="color:green;">`POST`</mark> `https://api.url/api/projects`

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

#### Query Parameters

| Name              | Type    | Description                       |
| ----------------- | ------- | --------------------------------- |
| project\_role\_id | string  | id роли владельца в проекте       |
| user\_id          | integer | id владельца проекта              |
| expected\_date    | string  | Ожидаемая дата завершения проекта |
| end\_date         | string  | Дата окончания проекта            |
| start\_date       | string  | Дата начала проекта               |
| expected\_result  | string  | Ожидаемый результат               |
| purpose           | string  | Цель                              |
| name              | string  | Название                          |

#### Headers

| Name          | Type   | Description                         |
| ------------- | ------ | ----------------------------------- |
| Authorization | string | Токен, выданный вам при авторизации |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": {
        "id": 5,
        "name": "Название проекта",
        "purpose": "Истинная цель проекта",
        "expected_result": "Ожидаемый результат проекта",
        "start_date": null,
        "end_date": null,
        "expected_date": null
    }
}
```

{% endtab %}

{% tab title="400 " %}

```javascript
{
    "errors": {
        "name": [
            "The name field is required."
        ],
        "purpose": [
            "The purpose must be a string."
        ]
    }
}
```

{% endtab %}
{% endtabs %}

## update

<mark style="color:orange;">`PUT`</mark> `https://api.urk/api/projects/{id}`

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

#### Path Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id   | integer | id проекта  |

#### Query Parameters

| Name              | Type    | Description                 |
| ----------------- | ------- | --------------------------- |
| project\_role\_id | integer | id роли владельца в проекте |
| user\_id          | integer | id владельца проекта        |
| expected\_date    | string  | Ожидаемая дата окончания    |
| end\_date         | string  | Дата окончания проекта      |
| start\_date       | string  | Дата начала проекта         |
| expected\_result  | string  | Ожидаемый результат         |
| purpose           | string  | Цель                        |
| name              | string  | Название                    |

#### Headers

| Name          | Type   | Description                         |
| ------------- | ------ | ----------------------------------- |
| Authorization | string | Токен, выданный вам при авторизации |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": {
        "id": 1,
        "name": "Лучший проект",
        "purpose": "Цель проекта",
        "expected_result": "Ожидаемый результат",
        "start_date": null,
        "end_date": null,
        "expected_date": null
    }
}
```

{% endtab %}

{% tab title="400 " %}

```javascript
{
    "errors": {
        "user_id": [
            "The selected user id is invalid."
        ]
    }
}
```

{% endtab %}
{% endtabs %}

## fullInfo

<mark style="color:blue;">`GET`</mark> `https://api.url/api/projects/{id}/fullInfo`

Полная информация по проекту

#### Path Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id   | integer | id проекта  |

#### Headers

| Name          | Type   | Description                         |
| ------------- | ------ | ----------------------------------- |
| Authorization | string | Токен, выданный вам при авторизации |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": {
        "project": {
            "id": 4,
            "name": "Название проекта",
            "purpose": "Истинная цель проекта",
            "expected_result": "Ожидаемый результат проекта",
            "start_date": null,
            "end_date": null,
            "expected_date": null
        },
        "users": [
            {
                "user": {
                    "id": 2,
                    "surname": null,
                    "name": "Алексей",
                    "middle_name": null,
                    "email": "alecmei.gubin@yandex.ru",
                    "updated_at": "2019-09-28T11:37:10.000000Z",
                    "created_at": "2019-09-23T21:26:58.000000Z",
                    "role": {
                        "id": 1,
                        "name": "Администратор"
                    }
                },
                "project_role": {
                    "id": 1,
                    "name": "Тьютор"
                }
            }
        ],
        "resources": [],
        "stages": []
    }
}
```

{% endtab %}

{% tab title="400 " %}

```javascript
{
    "errors": {
        "id": [
            "The selected id is invalid."
        ]
    }
}
```

{% endtab %}
{% endtabs %}

## resources

<mark style="color:blue;">`GET`</mark> `https://api.url/api/projects/{id}/resources`

Ресурсы проекта

#### Path Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id   | integer | id проекта  |

#### Headers

| Name          | Type   | Description                         |
| ------------- | ------ | ----------------------------------- |
| Authorization | string | Токен, выданный вам при авторизации |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": [
        {
            "id": 2,
            "name": "Компудахтер",
            "position": 1
        }
    ]
}
```

{% endtab %}

{% tab title="400 " %}

```javascript
{
    "errors": {
        "id": [
            "The selected id is invalid."
        ]
    }
}
```

{% endtab %}
{% endtabs %}

## stages

<mark style="color:blue;">`GET`</mark> `https://api.url/api/projects/{id}/stages`

#### Path Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id   | integer | id проекта  |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": [
        {
            "id": 2,
            "description": "rewereqr",
            "project_id": 1,
            "position": 1
        },
        {
            "id": 3,
            "description": "Описание этапа проекта",
            "project_id": 1,
            "position": 2
        },
        {
            "id": 4,
            "description": "Описание этапа проекта 2",
            "project_id": 1,
            "position": 3
        }
    ]
}
```

{% endtab %}

{% tab title="400 " %}

```javascript
{
    "errors": {
        "id": [
            "The selected id is invalid."
        ]
    }
}
```

{% endtab %}
{% endtabs %}

## users

<mark style="color:blue;">`GET`</mark> `https://api.url/api/projects/{id}/users`

#### Path Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id   | integer | id проекта  |

{% tabs %}
{% tab title="200 " %}

```javascript
{
    "data": [
        {
            "user": {
                "id": 2,
                "surname": null,
                "name": "Алексей",
                "middle_name": null,
                "email": "alecmei.gubin@yandex.ru",
                "updated_at": "2019-09-28T11:37:10.000000Z",
                "created_at": "2019-09-23T21:26:58.000000Z",
                "role": {
                    "id": 1,
                    "name": "Администратор"
                }
            },
            "project_role": {
                "id": 1,
                "name": "Тьютор"
            }
        }
    ]
}
```

{% endtab %}

{% tab title="400 " %}

```javascript
{
    "errors": {
        "id": [
            "The selected id is invalid."
        ]
    }
}
```

{% endtab %}
{% endtabs %}

## delete

<mark style="color:red;">`DELETE`</mark> `https://api.url/api/projects/{id}`

#### Path Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id   | integer | id проекта  |

{% tabs %}
{% tab title="200 " %}

```javascript
[
    "success"
]
```

{% endtab %}
{% endtabs %}

## tasks

<mark style="color:blue;">`GET`</mark> `https://api.url/api/projects/{id}/tasks`

#### Path Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id   | integer | id проекта  |

{% tabs %}
{% tab title="200 " %}

```
{
    "data": [
        {
            "id": 2,
            "name": "Тестовая задача 1",
            "description": "Описание тестовой задачи",
            "implementer_id": 9,
            "creator_id": 9,
            "prospective_date": "2020-04-24 00:00:00",
            "status_id": 1,
            "project_id": 5,
            "stage_id": 2,
            "created_at": "2020-04-18T20:35:16.000000Z",
            "updated_at": "2020-04-18T20:35:16.000000Z"
        },
        {
            "id": 3,
            "name": "Тестовая задача 2",
            "description": "Описание тестовой задачи 2",
            "implementer_id": 9,
            "creator_id": 9,
            "prospective_date": "2020-04-24 00:00:00",
            "status_id": 1,
            "project_id": 5,
            "stage_id": 2,
            "created_at": "2020-04-18T20:35:27.000000Z",
            "updated_at": "2020-04-18T20:35:27.000000Z"
        }
    ]
}лфтф
```

{% endtab %}
{% endtabs %}

## kanban

<mark style="color:blue;">`GET`</mark> `https://api.url/api/projects/{id}/kanban`

#### Path Parameters

| Name | Type    | Description |
| ---- | ------- | ----------- |
| id   | integer | id проекта  |

{% tabs %}
{% tab title="200 " %}

```
[
    {
        "id": 2,
        "name": "В работе",
        "position": 1,
        "project_id": 5,
        "created_at": "2020-04-18 19:21:42",
        "updated_at": "2020-04-18 19:21:42",
        "tasks": [
            {
                "id": 2,
                "name": "Тестовая задача 1",
                "description": "Описание тестовой задачи",
                "implementer_id": 9,
                "creator_id": 9,
                "prospective_date": "2020-04-24 00:00:00",
                "status_id": 1,
                "project_id": 5,
                "stage_id": 2,
                "created_at": "2020-04-18 20:35:16",
                "updated_at": "2020-04-18 20:35:16",
                "status": {
                    "id": 1,
                    "name": "Новое"
                },
                "creator": {
                    "id": 9,
                    "surname": null,
                    "name": "Алексей",
                    "middle_name": null,
                    "email": "alecmei.gubin@yandex.ru",
                    "role_id": 3,
                    "email_verified_at": null,
                    "created_at": "2020-04-18 17:47:45",
                    "updated_at": "2020-04-18 17:47:45"
                },
                "implementer": {
                    "id": 9,
                    "surname": null,
                    "name": "Алексей",
                    "middle_name": null,
                    "email": "alecmei.gubin@yandex.ru",
                    "role_id": 3,
                    "email_verified_at": null,
                    "created_at": "2020-04-18 17:47:45",
                    "updated_at": "2020-04-18 17:47:45"
                }
            },
            {
                "id": 3,
                "name": "Тестовая задача 2",
                "description": "Описание тестовой задачи 2",
                "implementer_id": 9,
                "creator_id": 9,
                "prospective_date": "2020-04-24 00:00:00",
                "status_id": 1,
                "project_id": 5,
                "stage_id": 2,
                "created_at": "2020-04-18 20:35:27",
                "updated_at": "2020-04-18 20:35:27",
                "status": {
                    "id": 1,
                    "name": "Новое"
                },
                "creator": {
                    "id": 9,
                    "surname": null,
                    "name": "Алексей",
                    "middle_name": null,
                    "email": "alecmei.gubin@yandex.ru",
                    "role_id": 3,
                    "email_verified_at": null,
                    "created_at": "2020-04-18 17:47:45",
                    "updated_at": "2020-04-18 17:47:45"
                },
                "implementer": {
                    "id": 9,
                    "surname": null,
                    "name": "Алексей",
                    "middle_name": null,
                    "email": "alecmei.gubin@yandex.ru",
                    "role_id": 3,
                    "email_verified_at": null,
                    "created_at": "2020-04-18 17:47:45",
                    "updated_at": "2020-04-18 17:47:45"
                }
            }
        ]
    }
]
```

{% endtab %}
{% endtabs %}
