"Şañıraq.kz" работает над улучшением качества и надежности информации на сайте.
В данном спринте наш фокус будет на двух ключевых изменениях:
- Введение роли модератора: это позволит контролировать качество объявлений и предотвратить появление нежелательного контента на сайте.
- Изменение процесса публикации объявлений: теперь все объявления будут проверяться модераторами перед публикацией для обеспечения точности и соответствия правилам сервиса.
После завершения данного спринта разверните разработку на railway.
Во время регистрации нового пользователя, необходимо добавить ему роль user
. Это можно сделать, сохраняя информацию о роли в базе данных.
При авторизации, в JWT токене вместе с user_id
должно быть поле role
, которое указывает роль пользователя.
В дальнейшем, когда понадобится добавить модераторов, можно будет просто изменить поле role
в базе данных у конкретного пользователя на moderator
.
Требуется изменить логику создания объявлений. Вместо того чтобы публиковать объявление сразу после его создания, теперь оно должно проходить модерацию перед публикацией.
Нужно изменить роут POST /shanyraks/
так, чтобы после добавления объявления оно не публиковалось сразу, а отправлялось на рассмотрение модератору.
То есть, объявления должны появляться в общем списке для поиска только после того, как модератор утвердит их.
Для модераторов требуется создать новый роут GET /shanyraks/review
. Этот роут должен возвращать список объявлений, которые находятся на модерации. Запрос на этот роут должен поддерживать параметры limit
и offset
для реализации пагинации.
Для каждого объявления, находящегося на модерации, следует возвращать следующую информацию:
id
type
price
address
area
rooms_count
Этот роут должен быть доступен только для пользователей с ролью moderator
.
GET /shanyraks/review?limit=2&offset=0 HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"count": 12,
"objects": [
{
"_id": "507f191e810c19729de860ea",
"type": "rent",
"price": 150000,
"address": "Астана, Алматы р-н, ул. Нажимеденова, 16 – Сарыколь",
"area": 46.5,
"rooms_count": 2
},
{
"_id": "{shanyrak_id2}",
"type": "sell",
"price": 30000000,
"address": "{address}",
"area": 86.0,
"rooms_count": 2
}
]
}
Модераторы должны иметь возможность одобрять объявления для публикации на сайте.
После одобрения объявление не должно появляться в списке GET /shanyraks/review
.
Для этого нужно создать новый роут POST /shanyraks/{id}/approve
, где {id}
- это идентификатор объявления.
При успешном одобрении объявления сервер должен возвращать ответ с кодом 200 OK
.
При этом необходимо учесть, что роут должен быть доступен только для пользователей с ролью moderator
в токене.
POST /shanyraks/{id}/approve HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
Модераторы также должны иметь возможность отклонять объявления, которые не соответствуют правилам сервиса.
После отклонения объявление не должно появляться в списке GET /shanyraks/review
.
Для этого предлагается создать новый роут POST /shanyraks/{id}/decline
, где {id}
- это идентификатор объявления.
При успешном отклонении объявления сервер должен возвращать ответ с кодом 200 OK
.
Этот роут также должен быть доступен только для пользователей с ролью moderator
в токене.
POST /shanyraks/{id}/decline HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK