# Extensions

## Розширення списку

`GET /extensions`

```json
{
  "tags": [
    "Extensions"
  ],
  "summary": "Розширення списку",
  "description": "Повертає розширення, доступні для профілів. Використовуйте розширення `id` у полі `extensions` `POST /profiles` або `PATCH /profiles/{id}`.\n\nЗначки пропущено, оскільки URL-адреси даних можуть бути великими. `POST /extensions` містить значок доданого розширення.",
  "responses": {
    "200": {
      "description": "Список розширень.",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Extension"
            }
          }
        }
      }
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    }
  }
}
```

## Додайте розширення

`POST /extensions`

```json
{
  "tags": [
    "Extensions"
  ],
  "summary": "Додайте розширення",
  "description": "Укажіть або `url`, або `path`.\n\n`url` може містити сторінку Chrome Web Store, 32-символьний ідентифікатор розширення або пряме посилання на `.crx` чи `.zip`. Лаунчер самостійно знаходить і завантажує файл зі сторінки магазину. `path` має вказувати на локальний `.crx`, `.zip` або розпаковану папку на машині, де працює лаунчер.\n\nНазва, версія, опис і значок беруться з `manifest.json` розширення. Плейсхолдери `__MSG_*__` також обробляються відповідно до локалі за замовчуванням.",
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AddExtensionRequest"
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Розширення додано. Відповідь містить `icon`.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Extension"
          }
        }
      }
    },
    "400": {
      "description": "Ні `url`, ні `path` не вказано, посилання не є розширенням або магазин не має такого ідентифікатора.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    }
  }
}
```

## Видаліть розширення

`DELETE /extensions/{id}`

```json
{
  "tags": [
    "Extensions"
  ],
  "summary": "Видаліть розширення",
  "description": "Профілі містять ідентифікатори, а не копії, тому будь-який профіль із назвою цього розширення припиняє завантажувати його після наступного запуску. Їхній збережений список залишається таким, яким він є; повторне додавання розширення не відновлює прив’язку.",
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Видалено.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "deleted": {
                "type": "boolean",
                "example": true
              },
              "id": {
                "type": "string"
              }
            }
          }
        }
      }
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    }
  }
}
```
