Commit Graph

331 Commits

Author SHA1 Message Date
698e8be638 0.9.20-fix-authors
Some checks failed
Deploy on push / deploy (push) Failing after 2m34s
2025-09-10 10:03:27 +03:00
06d4b64b1f bypass-cache-topic
Some checks failed
Deploy on push / deploy (push) Failing after 4m57s
2025-09-03 13:15:57 +03:00
f99f14759c author-topic-filter-fix
Some checks failed
Deploy on push / deploy (push) Failing after 2m2s
2025-09-03 12:44:24 +03:00
35af07f067 topic-filtered-authors
Some checks failed
Deploy on push / deploy (push) Failing after 2m1s
2025-09-01 10:53:38 +03:00
7c066b460a minor-fixes
Some checks failed
Deploy on push / deploy (push) Failing after 8s
2025-09-01 09:40:52 +03:00
30644f6513 author-debug
Some checks failed
Deploy on push / deploy (push) Failing after 2m38s
2025-09-01 09:07:37 +03:00
b044b26587 author-stats-fix
Some checks failed
Deploy on push / deploy (push) Failing after 2m41s
2025-09-01 06:16:44 +03:00
62529959a9 testing-fix
Some checks failed
Deploy on push / deploy (push) Failing after 4m52s
2025-09-01 00:13:46 +03:00
7258ddf059 authors-stats-fix2
Some checks failed
Deploy on push / deploy (push) Failing after 3m33s
2025-08-31 22:54:40 +03:00
d68030faca author-stats-fix
Some checks failed
Deploy on push / deploy (push) Failing after 4m45s
2025-08-31 22:42:21 +03:00
aebca9c522 author-stats-fix
Some checks failed
Deploy on push / deploy (push) Failing after 6m48s
2025-08-31 22:29:40 +03:00
832f6529e7 author-stats-upgrade
Some checks failed
Deploy on push / deploy (push) Failing after 3m47s
2025-08-31 22:12:18 +03:00
2660ad5cb3 fmt-fix
All checks were successful
Deploy on push / deploy (push) Successful in 10m37s
2025-08-31 20:03:44 +03:00
d65f8f9fa7 [0.9.17] - 2025-08-31
Some checks failed
Deploy on push / deploy (push) Failing after 8s
### 👥 Author Statistics Enhancement
- **📊 Полная статистика авторов**: Добавлены все недостающие счётчики в AuthorStat
  - `topics`: Количество уникальных тем, в которых участвовал автор
  - `coauthors`: Количество соавторов
  - `replies_count`: Количество вызванных комментариев
  - `rating_shouts`: Рейтинг публикаций автора (сумма реакций LIKE/AGREE/ACCEPT/PROOF/CREDIT минус DISLIKE/DISAGREE/REJECT/DISPROOF)
  - `rating_comments`: Рейтинг комментариев автора (реакции на его комментарии)
  - `replies_count`: Количество вызванных комментариев
  - `comments`: Количество созданных комментариев и цитат
  - `viewed_shouts`: Общее количество просмотров всех публикаций автора
- **🔄 Улучшенная сортировка**: Поддержка сортировки по всем новым полям статистики
- ** Оптимизированные запросы**: Batch-запросы для получения всей статистики одним вызовом
- **🧪 Подробное логирование**: Эмодзи-маркеры для каждого типа статистики

### 🔧 Technical Implementation
- **Resolvers**: Обновлён `load_authors_by` для включения всех счётчиков
- **Database**: Оптимизированные SQL-запросы с JOIN для статистики
- **Caching**: Интеграция с ViewedStorage для подсчёта просмотров
- **GraphQL Schema**: Обновлён тип AuthorStat с новыми полями
2025-08-31 20:01:40 +03:00
4d42e01bd0 [0.9.13] - 2025-08-27
Some checks failed
Deploy on push / deploy (push) Failing after 3m6s
### 🚨 Исправлено
- **Удалено поле username из модели Author**: Поле `username` больше не является частью модели `Author`
  - Убрано свойство `@property def username` из `orm/author.py`
  - Обновлены все сервисы для использования `email` или `slug` вместо `username`
  - Исправлены резолверы для исключения `username` при обработке данных автора
  - Поле `username` теперь используется только в JWT токенах для совместимости

### 🧪 Исправлено
- **E2E тесты админ-панели**: Полностью переработаны E2E тесты для работы с реальным API
  - Тесты теперь делают реальные HTTP запросы к GraphQL API
  - Бэкенд для тестов использует выделенную тестовую БД (`test_e2e.db`)
  - Создан фикстура `backend_server` для запуска тестового сервера
  - Добавлен фикстура `create_test_users_in_backend_db` для регистрации пользователей через API
  - Убраны несуществующие GraphQL запросы (`get_community_stats`)
  - Тесты корректно работают с системой ролей и правами администратора

### �� Техническое
- **Рефакторинг аутентификации**: Упрощена логика работы с пользователями
  - Убраны зависимости от несуществующих полей в ORM моделях
  - Обновлены сервисы аутентификации для корректной работы без `username`
  - Исправлены все места использования `username` в коде
- **Улучшена тестовая инфраструктура**:
  - Тесты теперь используют реальный HTTP API вместо прямых DB проверок
  - Правильная изоляция тестовых данных через отдельную БД
  - Корректная работа с системой ролей и правами
2025-08-27 12:15:01 +03:00
90aece7a60 load authors by followers fix
Some checks failed
Deploy on push / deploy (push) Failing after 3m33s
2025-08-26 14:15:19 +03:00
b4f683a7cc fmt
Some checks failed
Deploy on push / deploy (push) Failing after 36s
2025-08-23 10:47:52 +03:00
14bcd8d5ca all-authors-stat-fix 2025-08-21 11:37:48 +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
e78e12eeee circular-fix
Some checks failed
Deploy on push / deploy (push) Failing after 17s
2025-08-17 16:33:54 +03:00
e7230ba63c tests-passed 2025-07-31 18:55:59 +03:00
b60a314ddd tested-auth-refactoring
Some checks failed
Deploy on push / deploy (push) Failing after 5s
2025-07-25 01:04:15 +03:00
82111ed0f6 Squashed new RBAC
All checks were successful
Deploy on push / deploy (push) Successful in 7s
2025-07-02 22:30:21 +03:00
ab65fd4fd8 schema-fix
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-06-30 22:43:32 +03:00
599a6c9f59 authors-sort-fix3
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-06-26 17:19:42 +03:00
3327976586 Improve topic sorting: add popular sorting by publications and authors count 2025-06-02 02:56:11 +03:00
f8ad73571c author-followers-fix 2025-05-30 13:48:02 +03:00
5bdfdad63e load_authors_by-fix 2025-05-30 08:54:20 +03:00
d917d63bf2 distinct-fix 2025-05-30 08:51:24 +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
d4c16658bd author-user-fix
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-29 12:15:06 +03:00
6c0d96e7ac auth.orm-fix
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-28 18:51:49 +03:00
301145fcff load_authors_by-debug
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-26 20:34:51 +03:00
c06a187fd6 Merge branch 'fix/sv-authorSortingBy' of https://dev.dscrs.site/discours.io/core into feature/auth-internal
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-26 12:42:47 +03:00
Stepan Vladovskiy
b5dd690fbb feat: with author sorting by shouts, followers and names
All checks were successful
Deploy on push / deploy (push) Successful in 6s
2025-05-25 17:30:12 -03:00
ab39b534fe auth fixes, search connected 2025-05-22 04:34:30 +03:00
91258721c6 Merge branch 'staging' of https://dev.dscrs.site/discours.io/core into feature/auth-internal 2025-05-21 23:00:03 +03:00
5874d3ccae create_draft fix 2025-05-21 18:29:46 +03:00
d3a760b6ba auth-wip 2025-05-21 01:34:02 +03:00
2d382be794 upgrade schema, resolvers, panel added 2025-05-16 09:23:48 +03:00
Stepan Vladovskiy
8d6ad2c84f refactor(author.py): remove verbose loging in resolver level 2025-05-02 18:04:10 -03:00
Stepan Vladovskiy
beba1992e9 fix(__init.py__): clean name of resolver for authors search loading
All checks were successful
Deploy on push / deploy (push) Successful in 39s
2025-04-29 19:49:47 -03:00
Stepan Vladovskiy
98e3dff35e fix(author.py): resolver load_authors_search error fix
All checks were successful
Deploy on push / deploy (push) Successful in 40s
2025-04-29 18:00:38 -03:00
Stepan Vladovskiy
3782a9dffb fix(search.py, author.py): small fixes for start. logger import fails
All checks were successful
Deploy on push / deploy (push) Successful in 40s
2025-04-29 17:50:51 -03:00
Stepan Vladovskiy
93c00b3dd1 feat(author.py):addresolver for searching authors by text
All checks were successful
Deploy on push / deploy (push) Successful in 1m15s
2025-04-29 17:45:37 -03:00
81a8bf3c58 query-type-fix
All checks were successful
Deploy on push / deploy (push) Successful in 49s
2025-03-22 18:44:31 +03:00
615f1fe468 topics+authors-reimplemented-cache
All checks were successful
Deploy on push / deploy (push) Successful in 5s
2025-03-22 11:47:19 +03:00
6762b18135 get-author-followers-fix2 2024-12-11 21:34:43 +03:00
9439d71249 get-author-followers-fix
All checks were successful
Deploy on push / deploy (push) Successful in 7s
2024-12-11 21:25:03 +03:00