Commit Graph

36 Commits

Author SHA1 Message Date
86dec15673 0.9.32] - 2025-10-05
All checks were successful
Deploy on push / deploy (push) Successful in 5m54s
###  Features
- **Редактирование мигрированных шаутов**: Добавлена мутация `create_draft_from_shout` для создания черновика из существующего опубликованного шаута
  - Создаёт черновик со всеми данными из шаута (title, body, lead, topics, authors, media, etc.)
  - Проверяет авторство перед созданием черновика
  - Переиспользует существующий черновик если он уже создан для этого шаута
  - Копирует все связи: авторов и темы (включая main topic)

### 🔧 Fixed
- **NotificationEntity enum**: Исправлена ошибка `NotificationEntity.FOLLOWER` → `NotificationEntity.AUTHOR`
  - В enum не было значения `FOLLOWER`, используется `AUTHOR` для уведомлений о подписчиках

### Technical Details
- `core/schema/mutation.graphql`: добавлена мутация `create_draft_from_shout(shout_id: Int!): CommonResult!`
- `core/resolvers/draft.py`: добавлен resolver `create_draft_from_shout` с валидацией авторства
- `core/resolvers/notifier.py`: исправлено использование `NotificationEntity.AUTHOR` вместо несуществующего `FOLLOWER`
2025-10-05 17:12:28 +03:00
13343bb40e fix: handle follower and shout notifications in notifications_seen_thread
All checks were successful
Deploy on push / deploy (push) Successful in 3m13s
- Add support for marking follower notifications as seen (thread='followers')
- Add support for marking new shout notifications as seen
- Use enum constants (NotificationAction, NotificationEntity) instead of strings
- Improve thread ID parsing to support different formats
- Remove obsolete TODO about notification_id offset
- Better error handling with logger.warning() instead of exceptions

Resolves TODOs on lines 253 and 286 in resolvers/notifier.py
2025-10-04 08:59:47 +03:00
163c0732d4 notifications-fixes
All checks were successful
Deploy on push / deploy (push) Successful in 5m16s
2025-10-04 08:36:24 +03:00
634cec657c notifications-stats-todo
All checks were successful
Deploy on push / deploy (push) Successful in 8m16s
2025-09-16 12:52:14 +03:00
343c60f608 notifications-fix
Some checks failed
Deploy on push / deploy (push) Failing after 4m18s
2025-08-21 12:00:46 +03:00
4d36a1a5a7 notifications+topics-resolvers-fix
Some checks failed
Deploy on push / deploy (push) Failing after 2m35s
2025-08-21 11:47:11 +03:00
9c0a5af67a notifications-timestamp-fix
Some checks failed
Deploy on push / deploy (push) Failing after 6s
2025-08-21 11:27:13 +03:00
1b48675b92 [0.9.7] - 2025-08-18
Some checks failed
Deploy on push / deploy (push) Failing after 2m22s
### 🔄 Изменения
- **SQLAlchemy KeyError** - исправление ошибки `KeyError: Reaction` при инициализации
- **Исправлена ошибка SQLAlchemy**: Устранена проблема `InvalidRequestError: When initializing mapper Mapper[Shout(shout)], expression Reaction failed to locate a name (Reaction)`

### 🧪 Тестирование
- **Исправление тестов** - адаптация к новой структуре моделей
- **RBAC инициализация** - добавление `rbac.initialize_rbac()` в `conftest.py`
- **Создан тест для getSession**: Добавлен комплексный тест `test_getSession_cookies.py` с проверкой всех сценариев
- **Покрытие edge cases**: Тесты проверяют работу с валидными/невалидными токенами, отсутствующими пользователями
- **Мокирование зависимостей**: Использование unittest.mock для изоляции тестируемого кода

### 🔧 Рефакторинг
- **Упрощена архитектура**: Убраны сложные конструкции с отложенными импортами, заменены на чистую архитектуру
- **Перемещение моделей** - `Author` и связанные модели перенесены в `orm/author.py`: Вынесены базовые модели пользователей (`Author`, `AuthorFollower`, `AuthorBookmark`, `AuthorRating`) из `orm.author` в отдельный модуль
- **Устранены циклические импорты**: Разорван цикл между `auth.core` → `orm.community` → `orm.author` через реструктуризацию архитектуры
- **Создан модуль `utils/password.py`**: Класс `Password` вынесен в utils для избежания циклических зависимостей
- **Оптимизированы импорты моделей**: Убран прямой импорт `Shout` из `orm/community.py`, заменен на строковые ссылки

### 🔧 Авторизация с cookies
- **getSession теперь работает с cookies**: Мутация `getSession` теперь может получать токен из httpOnly cookies даже без заголовка Authorization
- **Убрано требование авторизации**: `getSession` больше не требует декоратор `@login_required`, работает автономно
- **Поддержка dual-авторизации**: Токен может быть получен как из заголовка Authorization, так и из cookie `session_token`
- **Автоматическая установка cookies**: Middleware автоматически устанавливает httpOnly cookies при успешном `getSession`
- **Обновлена GraphQL схема**: `SessionInfo` теперь содержит поля `success`, `error` и опциональные `token`, `author`
- **Единообразная обработка токенов**: Все модули теперь используют централизованные функции для работы с токенами
- **Улучшена обработка ошибок**: Добавлена детальная валидация токенов и пользователей в `getSession`
- **Логирование операций**: Добавлены подробные логи для отслеживания процесса авторизации

### 📝 Документация
- **Обновлена схема GraphQL**: `SessionInfo` тип теперь соответствует новому формату ответа
- Обновлена документация RBAC
- Обновлена документация авторизации с cookies
2025-08-18 14:25:25 +03:00
9a2b792f08 refactored
Some checks failed
Deploy on push / deploy (push) Failing after 6s
2025-08-17 17:56:31 +03:00
e7230ba63c tests-passed 2025-07-31 18:55:59 +03:00
3327976586 Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
97d2b914b7 login-fix+draft_create-fix
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-29 17:09:32 +03:00
4070f4fcde linted+fmt
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-29 12:37:39 +03:00
2d382be794 upgrade schema, resolvers, panel added 2025-05-16 09:23:48 +03:00
247fc98760 cachedep-fix+orjson+fmt
All checks were successful
Deploy on push / deploy (push) Successful in 1m16s
2025-03-20 11:55:21 +03:00
208de158bc imports sort
Some checks failed
Deploy on push / deploy (push) Failing after 9s
2024-08-09 09:37:06 +03:00
60a56fd098 moved 2024-08-07 08:57:56 +03:00
e638ad81e2 fmt+follows-refactored 2024-05-30 07:12:00 +03:00
232892d397 isort
All checks were successful
Deploy on push / deploy (push) Successful in 26s
2024-05-20 16:46:05 +03:00
a749ade30b fmt
All checks were successful
Deploy on push / deploy (push) Successful in 26s
2024-05-18 11:00:46 +03:00
e0a5c654d8 fmt
All checks were successful
Deploy on push / deploy (push) Successful in 24s
2024-05-07 00:06:31 +03:00
2e4d70db28 viwed-fix+fmt+outerjoin-fix
All checks were successful
Deploy on push / deploy (push) Successful in 1m1s
2024-04-27 01:41:47 +03:00
27d5272032 fmt
All checks were successful
Deploy on push / deploy (push) Successful in 58s
2024-04-25 12:07:30 +03:00
0b185c1c2d fmt
All checks were successful
Deploy on push / deploy (push) Successful in 23s
2024-04-24 10:42:33 +03:00
870d5b62dc isort
All checks were successful
Deploy on push / deploy (push) Successful in 23s
2024-04-23 15:15:18 +03:00
8436bc4305 separate-stat-query
All checks were successful
Deploy on push / deploy (push) Successful in 22s
2024-04-23 14:31:34 +03:00
b7d82d9cc5 refactored-author-on-login-required
All checks were successful
Deploy on push / deploy (push) Successful in 23s
2024-04-19 18:22:07 +03:00
c25d7e3ab6 fmt 2024-04-17 18:32:23 +03:00
c301256751 precommit
All checks were successful
Deploy on push / deploy (push) Successful in 49s
2024-04-08 10:38:58 +03:00
9bda7cef95 fmt
All checks were successful
Deploy on push / deploy (push) Successful in 22s
2024-03-28 15:56:32 +03:00
e2faec5893 scalar-fix
All checks were successful
Deploy on push / deploy (push) Successful in 23s
2024-03-28 14:05:46 +03:00
9f881c0641 add_author_stat-fix+fmt 2024-03-06 12:25:55 +03:00
36fefd93be offset-entity-fix
Some checks failed
Deploy on push / deploy (push) Failing after 18s
2024-03-04 15:47:17 +03:00
abfe9f6e0e notifier-fixes
Some checks failed
Deploy on push / deploy (push) Failing after 18s
2024-03-04 13:43:02 +03:00
88ca5a1362 notifier-schema-fix
Some checks failed
Deploy on push / deploy (push) Failing after 19s
2024-03-04 10:59:14 +03:00
3016a75332 notifier-integration
Some checks failed
Deploy on push / deploy (push) Failing after 19s
2024-03-04 10:35:33 +03:00