Skip to content

Latest commit

 

History

History

SPRINT-5

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Спринт №5: Модератор

"Şañıraq.kz" работает над улучшением качества и надежности информации на сайте.

В данном спринте наш фокус будет на двух ключевых изменениях:

  • Введение роли модератора: это позволит контролировать качество объявлений и предотвратить появление нежелательного контента на сайте.
  • Изменение процесса публикации объявлений: теперь все объявления будут проверяться модераторами перед публикацией для обеспечения точности и соответствия правилам сервиса.

После завершения данного спринта разверните разработку на railway.

✅ Таск №1: Добавление ролей

Во время регистрации нового пользователя, необходимо добавить ему роль user. Это можно сделать, сохраняя информацию о роли в базе данных.

При авторизации, в JWT токене вместе с user_id должно быть поле role, которое указывает роль пользователя.

В дальнейшем, когда понадобится добавить модераторов, можно будет просто изменить поле role в базе данных у конкретного пользователя на moderator.

✅ Таск №2: Логика добавления объявления

Требуется изменить логику создания объявлений. Вместо того чтобы публиковать объявление сразу после его создания, теперь оно должно проходить модерацию перед публикацией.

Нужно изменить роут POST /shanyraks/ так, чтобы после добавления объявления оно не публиковалось сразу, а отправлялось на рассмотрение модератору.

То есть, объявления должны появляться в общем списке для поиска только после того, как модератор утвердит их.

✅ Таск №3: Объявления на модерации

Для модераторов требуется создать новый роут 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
        }
    ]
}

✅ Таск №4: Одобрение объявления

Модераторы должны иметь возможность одобрять объявления для публикации на сайте.

После одобрения объявление не должно появляться в списке 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

✅ Таск №5: Отклонение объявления

Модераторы также должны иметь возможность отклонять объявления, которые не соответствуют правилам сервиса.

После отклонения объявление не должно появляться в списке 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