Studio-Yandex-Practicum / ProCharity_back_2.0

bot ProCharity (НКО Фонд Друзья)
13 stars 13 forks source link

Добавить эндпоинты для технических сообщений от бота #643

Closed gorskyolga closed 2 weeks ago

gorskyolga commented 3 weeks ago

В таблице tech_messages будут храниться технические сообщения от бота для админов бота. Нужно добавить эндпоинты для их просмотра, архивации и маркирования "прочитанными" / "непрочитанными" в админке бота.

Доступные всем активным админам бота (и обычным, и суперюзерам):

  1. get-запрос к "api/tech_messages":

    • [x] должен выводиться список не заархивированных сообщений из таблицы tech_messages;
    • [x] отображаемые поля по сообщению: id, text, was_read, created_at;
    • [x] возможность фильтрации по query-параметру "was_read";
    • [x] список должен выводится постранично (нужно использовать FilterablePaginator из src\api\pagination.py).
  2. get-запрос к "api/tech_messages/{message_id}":

    • [x] должно выводится сообщение с указанным id из таблицы tech_messages;
    • [x] отображаемые поля по сообщению: id, text, was_read, created_at;
    • [x] если сообщение заархивировано, то нужно возвращать ошибку NotFoundException.
  3. patch-запрос к "api/tech_messages/{message_id}":

    • [x] может передаваться только поле was_read (возможные значения true или false);
    • [x] при обращении должно обновляться поле was_read у записи с указанным message_id в соответствии с переданным значением.

Доступные только активным админам бота с ролью суперюзер:

  1. delete-запрос к "api/tech_messages/{message_id}":
    • [x] сообщение с указанным message_id должно архивироваться;
    • [x] если сообщение уже заархивировано, то нужно возвращать ошибку NotFoundException.

Чтобы было проще набрать тестовую базу сообщений, можно наследоваться от ветки feature/add-admin-notification-on-errors-622. При изменении категорий происходит вызов эндпоинта сайта. Т.к. сейчас обращение к нему всегда вызывает ошибку, то сообщение об этом сохраняется в таблице tech_messages. UPDATE: функционал ветки feature/add-admin-notification-on-errors-622 добавлен в develop, ветка удалена.