/api/publicReviewsМетод: GET
Описание: Запрос списка отзывов, которые опубликованы.
Параметры:
start - с какого элемента загружать результаты. По умолчанию - 0;count - сколько элементов загружать за один раз. По умолчанию - 10;textSize - размер предпросмотра для текста, от 0 до 2048. Текст будет обрезан по словам.Права: ✅ Открыт для всех
Ответ:
{
"type": "success",
"message": null,
"data": {
"items": [
{
"id": 10,
"date": "2025-05-10 22:33:39",
"mail": "[email protected]",
"caption": "admin",
"text": "тест",
"rating": 1
},
{
"id": 11,
"date": "2025-05-11 19:25:22",
"mail": "[email protected]",
"caption": "admin",
"text": "Молодцы",
"rating": 4
}
],
"total": 2,
"page": 1,
"pageSize": 2
},
"action": null
}Подробности:
date - дата создания отзыва;
mail - почта пользователя. уникальная и не меняется;
caption - заголовок (имя пользователя), берется из профиля, сохраняется в таблице reviews на момент отзыва. При смене имени (Петр -> Вася) в таблице останется старое имя;
rating - оценка, от 1 до 5.
/api/publicReviews/{id}Метод: GET
Описание: Загрузка отзыва по id.
Параметры: id - id отзыва.
Права: ✅ Открыт для всех
Ответ:
{
"type": "success",
"message": null,
"data": {
"id": 10,
"date": "2025-05-10 22:33:39",
"mail": "[email protected]",
"caption": "admin",
"text": "тест",
"rating": 1
},
"action": null
}/api/user/reviewsМетод: GET
Описание: Загрузка списка своих отзывов, в том числе тех, которые забанены или находятся на модерации. Максимальное число отзывов на каждого пользователя - 50.
Права: 🔵 авторизованный пользователь.
Параметры: textSize - размер окна предпросмотра. по умолчанию - вывести весь текст (2048 символов)
Ответ:
{
"type": "success",
"message": null,
"data": {
"items": [
{
"id": 10,
"date": "2025-05-10 22:33:39",
"caption": "admin",
"text": "тест",
"status": "approved",
"rating": 1
},
{
"id": 11,
"date": "2025-05-11 19:25:22",
"caption": "admin",
"text": "молодцы",
"status": "approved",
"rating": 4
}
],
"total": 2,
"page": 1,
"pageSize": 10
},
"action": null
}Подробности: status:
banned - забанен;moderation - на модерации;approved - одобрен (опубликован);deleted - удален./api/user/reviews/{id}Метод: GET
Описание: Загрузка отзыва по id.
Параметры: id - id отзыва.
Права: 🔵 авторизованный пользователь.
Ответ:
{
"type": "success",
"message": null,
"data": {
"id": 10,
"date": "2025-05-10 22:33:39",
"caption": "admin",
"text": "тест",
"status": "approved",
"rating": 1
},
"action": null
}/api/user/reviewsМетод: PUT
Описание: Добавление отзыва. Отзыв проверяется на стоп-фразы. И у каждого пользователя есть лимит на добавление 3х отзывов в сутки.
Права: 🔵 авторизованный пользователь.
Запрос:
{
"text": "ттт",
"rating": 3
}Ответ:
201 - created,{
"type": "success",
"message": "Отзыв добавлен",
"data": {
"id": 12,
"date": "2025-06-17T22:00:01",
"caption": "admin",
"text": "ттт",
"rating": 3
},
"action": null
}400 - bad request, если в тексте отзыва содержатся стоп-фразы.Подробности: id - id отзыва.
/api/user/reviewsМетод: POST
Описание: Редактирование отзыва. После редактирования статус отзыва меняется на moderation. Если отзыв забанен, его нельзя редактировать, получите ошибку 403.
Права: 🔵 авторизованный пользователь.
Запрос:
{
"id": 2,
"text": "Молодцы! Выполнили обмен за 5 минут",
"rating": 5
}Параметры:
id - id отзыва для редактирования.
Ответ:
200 - OK,{
"type": "success",
"message": "Отзыв обновлен",
"data": {
"id": 2,
"date": "2025-05-10T22:33:39",
"caption": "admin",
"text": "Молодцы! Выполнили обмен за 5 минут",
"rating": 5
},
"action": null
}400 - bad request, если в тексте отзыва содержатся стоп-слова./api/user/reviewsМетод: DELETE
Права: 🔵 авторизованный пользователь.
Описание: Удаление отзывов по id. Отзывы не удаляются из базы мгновенно. Они маркируются как deleted и доступны для просмотра в админке.
Параметры: ids - список отзывов, разделенный запятыми.
/api/reviewsМетод: GET
Описание: Загрузка списка отзывов для админки.
Права: 🔴 админка.
Параметры (можно не указывать):
status - статус отзывов:
banned - забанен;moderation - на модерации;approved - одобрен (опубликован);deleted - удален.start - с какого элемента загружать результаты. По умолчанию - 0;count - сколько элементов загружать за один раз. По умолчанию - 10;dateStart - все отзывы после выбранной даты;dateEnd - все отзывы до выбранной даты;userName - фильтр по имени пользователя (заголовку отзыва);userMail - фильтр по почте пользователя;filter - фильтр по тексту отзыва;rating - фильтр по оценке (от 1 до 5)./api/reviewsМетод: POST
Описание: Редактирование отзыва. Можно менять текст и статус.
Запрос:
{
"id": 2,
"text": "Молодцы! Выполнили обмен за 3 минуты",
"status": "approved",
"rating": 5
}Ответ:
{
"type": "success",
"message": "Отзыв обновлен",
"data": null,
"action": null
}/api/reviewsМетод: DELETE
Права: 🔴 админка + isEditReviews.
Описание: Удаление отзывов по id
Параметры: ids - список id отзывов, разделенный запятыми.
/api/stopwordsМетод: GET
Права: 🔴 админка + isEditReviews.
Описание: Загрузка списка стоп-фраз. Если в тексте отзыва содержится хотя бы одна фраза, отзыв не будет опубликован. Регистр символов не имеет значения.
Ответ:
{
"type": "success",
"message": null,
"data": [
"0% риск",
"50% скидка",
"акции",
"банкротство",
"без вложений"
],
"action": null
}/api/stopwordsМетод: POST
Права: 🔴 админка + isEditReviews.
Описание: Редактирование списка стоп-фраз. Каждая фраза задается с новой строки. Если в списке есть дубликаты, они будут удалены (List конвертируется в Set).
Можно использовать, например, эти слова: https://github.com/OOPSpam/spam-words/blob/main/spam-words-RU.txt
Запрос:
["риск", "скидка"]Ответ:
{
"type": "success",
"message": "Стоп-слова обновлены",
"data": null,
"action": null
}