Сервис управления историями

Общая информация

Сервис "Истории" (Story), который отвечает за управление отображением историй на сайте. Модуль предоставляет функции для получения, создания, обновления и удаления историй.


Истории (Story)

GET /

Описание: Получение списка всех историй.

Теги: Story

Summary: Возвращает массив историй, отсортированных по полю "sort" в порядке возрастания.

Ответ:

  • 200 OK:
    [
      {
        "id": 1,
        "src": "https://example.com/image.jpg",
        "sort": 1,
        "link": "https://example.com",
        "type": "image",
        "linkTitle": "Перейти на сайт",
        "isMobile": true
      },
      {
        "id": 2,
        "src": "https://example.com/video.mp4",
        "sort": 2,
        "link": null,
        "type": "video",
        "linkTitle": null,
        "isMobile": false
      }
    ]
    
    • id: (integer) - ID истории.
    • src: (string) - URL источника истории (изображение или видео).
    • sort: (integer) - Порядковый номер для сортировки историй.
    • link: (string, optional) - Ссылка, связанная с историей.
    • type: (string) - Тип истории (изображение или видео).
    • linkTitle: (string, optional) - Заголовок для связанной ссылки.
    • isMobile: (boolean) - Отображается ли на мобильных устройствах.
  • 500 Internal Server Error:
    {
      "error": "Внутренняя ошибка сервера"
    }
    

POST /

Описание: Создание новой истории.

Теги: Story

Summary: Создаёт новую историю и возвращает её данные.

Предварительная проверка: Требуется аутентификация пользователя (admin role).

Тело запроса (body):

{
  "fileId": 1,
  "isMobile": true,
  "sort": 1,
  "type": "image",
  "link": "https://example.com",
  "linkTitle": "Перейти на сайт"
}
  • fileId: (integer, required) - ID файла связанного с историей
  • isMobile: (boolean, optional) - Отображается ли на мобильных устройствах.
  • sort: (integer, optional) - Порядковый номер для сортировки сториз.
  • type: (string, optional) - Тип сторизы (изображение или видео).
  • link: (string, optional) - Ссылка, связанная со сторизой.
  • linkTitle: (string, optional) - Заголовок для связанной ссылки.

Ответ:

  • 201 Created:
    {
      "id": 1,
      "src": "https://example.com/image.jpg",
      "sort": 1,
      "link": "https://example.com",
      "type": "image",
      "linkTitle": "Перейти на сайт",
      "isMobile": true
    }
    
    • id: (integer) - ID созданной истории.
    • src: (string) - URL источника сторизы.
    • sort: (integer) - Порядковый номер.
    • link: (string) - Связанная ссылка.
    • type: (string) - Тип сторизы.
    • linkTitle: (string, optional) - Заголовок для связанной ссылки.
    • isMobile: (boolean) - Отображается ли на мобильных устройствах.
  • 400 Bad Request:
    {
      "statusCode": 400,
       "error": "Bad Request",
      "message": "Некорректные данные для создания сторизы"
    }
    
  • 500 Internal Server Error:
    {
      "error": "Внутренняя ошибка сервера"
    }
    

PATCH /

Описание: Массовое обновление сториз.

Теги: Story

Summary: Обновляет несколько сториз одновременно.

Предварительная проверка: Требуется аутентификация пользователя (admin role).

Тело запроса (body):

[
  {
    "id": 1,
    "sort": 2,
    "link": "https://example.com",
    "linkTitle": "Перейти на сайт"
  },
  {
    "id": 2,
    "sort": 1
  }
]
  • id: (integer, required) - ID истории
  • sort: (integer, optional) - Порядковый номер для сортировки сториз.
  • link: (string, optional) - Ссылка, связанная со сторизой.
  • linkTitle: (string, optional) - Заголовок для связанной ссылки.

Ответ:

  • 200 OK:
      {
        "success": true,
        "message": "Сторизы успешно обновлены"
      }
    
    • success: (boolean) - Статус операции.
    • message: (string) - Сообщение об успешном обновлении.
  • 400 Bad Request:
    {
      "statusCode": 400,
      "error": "Bad Request",
      "message": "Некорректные данные для обновления сториз"
    }
    
  • 500 Internal Server Error:
    {
      "error": "Внутренняя ошибка сервера"
    }
    

PATCH /:id

Описание: Обновление одной сторизы по ID.

Теги: Story

Summary: Обновляет данные одной сторизы по её ID.

Предварительная проверка: Требуется аутентификация пользователя (admin role).

Параметры запроса (path):

  • id: (integer, required) - ID сторизы для обновления.

Тело запроса (body):

  {
    "fileId": 1,
    "isMobile": true,
    "sort": 1,
    "type": "image",
    "link": "https://example.com",
    "linkTitle": "Перейти на сайт"
  }
  • fileId: (integer, optional) - ID файла связанного с историей
  • isMobile: (boolean, optional) - Отображается ли на мобильных устройствах.
  • sort: (integer, optional) - Порядковый номер для сортировки сториз.
  • type: (string, optional) - Тип сторизы (изображение или видео).
  • link: (string, optional) - Ссылка, связанная со сторизой.
  • linkTitle: (string, optional) - Заголовок для связанной ссылки.

Ответ:

  • 200 OK:
    {
      "success": true,
      "message": "Сториза успешно обновлена"
    }
    
    • success: (boolean) - Статус операции.
    • message: (string) - Сообщение об успешном обновлении.
  • 400 Bad Request:
    {
      "statusCode": 400,
      "error": "Bad Request",
      "message": "Некорректные данные для обновления сторизы"
    }
    
  • 404 Not Found:
    {
      "statusCode": 404,
      "error": "Not Found",
      "message": "Сториза с указанным ID не найдена"
    }
    
  • 500 Internal Server Error:
    {
      "error": "Внутренняя ошибка сервера"
    }
    

DELETE /:id

Описание: Удаление сторизы по ID.

Теги: Story

Summary: Удаляет сторизу по её ID.

Предварительная проверка: Требуется аутентификация пользователя (admin role).

Параметры запроса (path):

  • id: (integer, required) - ID сторизы для удаления.

Ответ:

  • 200 OK:
    {
      "success": true,
      "message": "Сториза успешно удалена"
    }
    
    • success: (boolean) - Статус операции.
    • message: (string) - Сообщение об успешном удалении.
  • 404 Not Found:
    {
      "statusCode": 404,
      "error": "Not Found",
      "message": "Сториза с указанным ID не найдена"
    }
    
  • 500 Internal Server Error:
    {
      "error": "Внутренняя ошибка сервера"
    }
    

Примечания:

  • Все запросы, кроме GET / требуют авторизации с ролью admin.
  • Все запросы возвращают 500 Internal Server Error в случае внутренней ошибки на сервере.