Commit Graph
100 Commits
Author SHA1 Message Date
n08i40k 39c60ef939 feat(middleware): add support of path patterns 2025-10-28 22:33:10 +04:00
n08i40k d1ef5c032e feat: implement service users 2025-10-28 06:53:31 +04:00
n08i40k b635750e28 feat(db): add service users table 2025-10-28 06:46:30 +04:00
n08i40k a59fff927d chore(deps): update dependencies 2025-10-28 06:45:55 +04:00
n08i40k cdc89b5bcd fix(parser): fix sentry error sending 2025-10-10 03:00:47 +04:00
n08i40k ad86f6cd64 feat(parser): limit names regex to maximum 2 elements
This allows us to not worry about subgroups array index overflows, and we can make better non-standard case solving.
2025-10-10 01:39:54 +04:00
n08i40k a3b4a501db feat(parser): improve names regex to exclude some non-standard cases
Like "Название ФАмилия. И.О.".
In that case regex will grab "Название ФА", instead of "Амилия. И. О." (we can't add 'Ф', bc it will make regex checks way more complex).

Now it will ignore "Название ФА" if after that lower or upper char is placed.
Previously only lower chars are excluded and check won't exclude "Название ФА" and grabs "Название Ф" bc after 'Ф' uppercase char is present.
2025-10-10 01:37:52 +04:00
n08i40k df0e99a4d0 feat(parser): make lesson cell range less strict to support upcoming split-lessons 2025-10-10 01:31:55 +04:00
n08i40k a8cf8fb0f5 feat(parser): improve street regex 2025-10-10 01:30:56 +04:00
n08i40k 7ed866138e feat(error): add error for unknown lesson type 2025-10-10 01:30:30 +04:00
n08i40k 7bac48f8fc feat(error): add more intuitive CellPos formatting and get rid of ErrorCell 2025-10-10 01:27:05 +04:00
n08i40k 191ec36fef chore: remove useless commented code 2025-10-10 01:25:12 +04:00
n08i40k f121a04f1b refactor: refactor providers code 2025-10-02 07:55:07 +04:00
n08i40k df74ab03a1 chore(ci): make building non-verbose 2025-10-02 07:54:09 +04:00
n08i40k 1b79d1cf1e chore: bump provider version to 0.2.2 2025-10-02 07:44:35 +04:00
n08i40k 2b9b1ea66b chore(deps): update dependencies 2025-10-02 07:43:37 +04:00
n08i40k ca713d8d51 refactor: prevent updater stop because of errors 2025-10-02 07:40:44 +04:00
n08i40k 69df538467 refactor(updater): don't cancel token when uri fetch error occurred 2025-09-29 08:27:25 +04:00
n08i40k aa019f8fcf fix(parser): rework teacher name parsing 2025-09-29 08:27:24 +04:00
n08i40k b664ba578d chore(clippy): fix all clippy warnings 2025-09-25 03:42:34 +04:00
n08i40k 983967f8b0 chore(downloader): suppress unused_assignments warning 2025-09-25 03:27:55 +04:00
n08i40k e5760120e2 chore(release): bump version to 1.3.0 2025-09-25 03:17:14 +04:00
n08i40k a28fb66dd4 feat(downloader): add retry-mechanism for querying uri from yandex-cloud api (#18) 2025-09-25 03:15:36 +04:00
n08i40k 3780fb3136 feat(downloader): implement etag-based difference check for schedule 2025-09-25 03:14:39 +04:00
n08i40k 6c71bc19f5 chore(parser): fix crash caused by another mistype in schedule 2025-09-25 02:50:43 +04:00
n08i40k 2d0041dc8b feat(schedule): add practice lesson type 2025-09-25 02:49:23 +04:00
n08i40k b5d372e109 feat(ci): build and push image to docker registry on every push to master 2025-09-10 20:05:11 +04:00
n08i40k 84dca02c34 fix(database): use migrator and change connection options 2025-09-10 20:04:19 +04:00
n08i40k 6c9d3b3b31 chore(release): bump version to 1.2.2 2025-09-08 07:16:53 +04:00
n08i40k a348b1b99b refactor(auth): interpret failure to find user as an error 2025-09-08 07:15:22 +04:00
n08i40k ff12ee5da2 chore(release): bump version to 1.2.1 2025-09-06 21:25:26 +04:00
n08i40k 35f707901f chore(clippy): fix all clippy warnings 2025-09-06 21:24:52 +04:00
n08i40k edea6c5424 chore(release): bump version to 1.2.0 2025-09-06 20:33:17 +04:00
n08i40k fdbb872fc3 refactor(dev): move tracing to feature 2025-09-06 20:17:14 +04:00
n08i40k dbc800fef1 feat(database)!: switch from diesel to sea-orm 2025-09-06 20:09:04 +04:00
n08i40k e729d84c93 fix: fix typo in error description 2025-09-06 18:42:23 +04:00
n08i40k cc7adf10ed fix(env): make dotenv file optional 2025-09-06 18:40:04 +04:00
n08i40k 57c1699c9a chore(release): bump version to 1.1.1 2025-09-03 07:13:37 +04:00
n08i40k 298c4f4dd3 feat(auth): send raw token on telegram auth 2025-09-03 07:08:51 +04:00
n08i40k e3904a255b chore(release): bump version to 1.1.0 2025-09-02 09:23:29 +04:00
n08i40k 829c1cf68d chore(deps): bump calamine version 2025-09-02 09:20:02 +04:00
n08i40k 6a535f8d73 chore(ci): remove creating .env.test 2025-09-02 09:20:02 +04:00
n08i40k 5e5cd53f46 chore(ci): remove creating .env.test 2025-09-02 09:11:30 +04:00
n08i40k 8d59e37976 refactor(android)!: remove FCM support 2025-09-02 09:08:17 +04:00
n08i40k 5e39fc9acc feat(schedule)!: move schedule parser, downloader, and updater to external library
This can be used to support more schedule formats in the future.
2025-09-02 08:59:59 +04:00
n08i40k 7c973bfda0 refactor(middlewares): move MiddlewareError from crate::utility to crate::middlewares 2025-09-02 08:52:15 +04:00
n08i40k 8fba0fc709 feat(env): add ability to set custom .env file for testing on local machine 2025-06-13 01:03:06 +04:00
n08i40k 983ff4fa5e feat(env): expose .env.test 2025-06-13 01:02:08 +04:00
n08i40k fb6f3fc05f chore(deps): upgrade dependencies 2025-06-13 00:56:58 +04:00
n08i40k e64011ba16 feat!: add telegram auth and async refactor
- Removed "/schedule/update-download-url" endpoint, this mechanism was replaced by Yandex Cloud FaaS. Ура :)
- Improved schedule caching mechanism.
- Added Telegram WebApp authentication support.
- Reworked endpoints responses and errors mechanism.
- Refactored application state management.
- Make synchronous database operations, middlewares and extractors to asynchronous.
- Made user password field optional to support multiple auth methods.
- Renamed users table column "version" to "android_version" and made it nullable.
2025-06-08 01:43:45 +04:00
n08i40k 6a106a366c feat(parser): add ability to parse mistyped date 2025-06-08 01:03:50 +04:00
n08i40k 4fca22662c feat(parser)!: rework of subgroups parsing 2025-06-08 01:03:00 +04:00
n08i40k d23092a32a feat(parser): add lesson types "course project" and "course project defense" 2025-05-27 02:06:13 +04:00
n08i40k 01bfa38969 feat(parser): speed improvement, lesson type guessing and parsing of merged lesson cabinets 2025-05-27 02:03:54 +04:00
n08i40k 851ec9225f refactor(parser): improve readability 2025-05-26 21:12:23 +04:00
n08i40k 8de1891724 chore(release): bump version to 1.0.5 2025-05-26 05:30:44 +04:00
n08i40k 4cf6df379e fix(parser): fix lessons merging 2025-05-26 05:24:13 +04:00
n08i40k ba8b164b6a refactor(parser): rewrite some parts of code 2025-05-26 05:24:08 +04:00
n08i40k ff9d7d6c3a fix(cache): fix setting cache_update_required flag in cache status 2025-05-25 17:39:23 +04:00
n08i40k 9090716f87 fix(test): fix test sign_up_invalid_group 2025-05-25 15:57:18 +04:00
n08i40k ee992f1b55 chore(xls): update schedule xls 2025-05-25 15:49:52 +04:00
n08i40k 7f71fb1616 refactor(env): remove unsave env::set_var call 2025-05-25 15:48:43 +04:00
n08i40k 234055eaeb feat(test): add ability to use test env without schedule 2025-05-25 15:48:10 +04:00
n08i40k fceffb900d release/v1.0.3 2025-04-18 00:29:04 +04:00
n08i40k 49ce0005dc Исправление работы подключения к сайтам из-за отсутствия сертификатов. 2025-04-18 00:28:55 +04:00
n08i40k 4c738085f2 release/v1.0.2 2025-04-18 00:11:55 +04:00
n08i40k 20602eb863 Улучшенное отображение ошибок при обновлении ссылки расписания. 2025-04-18 00:11:05 +04:00
n08i40k e04d462223 1.0.1 2025-04-17 23:08:58 +04:00
n08i40k 22af02464d Исправление работы авторизации с помощью VK ID. 2025-04-17 23:07:19 +04:00
n08i40k 9a517519db User-Agent для reqwest теперь устанавливается с помощью переменной окружения. 2025-04-17 22:41:42 +04:00
n08i40k 65376e75f7 Workflow для публикации релизов.
- Запускает тесты.
- Собирает приложение.
- Отправляет отладочную информацию в Sentry.
- Собирает и отправляет в реестр Docker image с приложением.
- Создаёт релиз со списком изменений и артефактами сборки.
2025-04-17 21:34:46 +04:00
n08i40k bef6163c1b Отключение тестов при pull request. 2025-04-17 16:39:39 +04:00
n08i40k 283858fea3 Возможный фикс тестов. 2025-04-17 01:10:19 +04:00
n08i40k 66ad4ef938 Подключение sentry. 2025-04-17 01:07:03 +04:00
n08i40k 28f59389ed Исправление тестов.
FCMClient теперь не инициализируется, если отсутствует требуемая переменная окружения.
2025-04-16 16:38:37 +04:00
n08i40k e71ab0526d Middleware для явного указания кодировки в заголовке Content-Type. 2025-04-16 16:21:53 +04:00
n08i40k ff05614404 Исправление обработки времени у пар. 2025-04-16 16:21:18 +04:00
n08i40k 9cc03c4ffe Фильтр эндпоинтов для middleware. 2025-04-16 16:20:32 +04:00
n08i40k 5068fe3069 Обновление документации. 2025-04-15 22:09:10 +04:00
n08i40k 2fd6d787a0 Эндпоинт users/change-group. 2025-04-15 19:39:46 +04:00
n08i40k 7a1b32d843 Эндпоинт users/change-username. 2025-04-15 18:55:45 +04:00
n08i40k 542258df01 Эндпоинт fcm/set-token. 2025-04-15 18:44:43 +04:00
n08i40k ccaabfe909 Асинхронный вариант MutexScope. 2025-04-15 18:44:03 +04:00
n08i40k 4c5e0761eb Подключение FCM. 2025-04-15 14:35:05 +04:00
n08i40k 057dac5b09 Использование функции для осуществления операций в базе данных вместо ручного блокирования мьютекса. 2025-04-15 14:33:58 +04:00
n08i40k 5b6f5c830f Реформат путей к эндпоинтам.
Добавлен экстрактор пользователя с дополнительными полями.

Добавлена связь таблиц User и FCM.

Завершена реализация авторизации с помощью VK ID.

Добавлен эндпоинт fcm/update-callback/{version}.
2025-04-14 22:08:28 +04:00
n08i40k 680419ea78 0.8.0
Реализованы все требуемые эндпоинты schedule.

Улучшена документация.
2025-03-28 23:24:37 +04:00
n08i40k 30c985a3d7 Добавлена возможность создания ResponseError с описанием ошибки.
Добавлен макрос для трансформации ErrorCode в Response, а также для имплементации треита PartialStatusCode.
2025-03-28 15:42:45 +04:00
n08i40k 70a7480ea3 0.7.0
Добавлена OpenAPI документация эндпоинтов и структур с интерфейсом RapiDoc.

Добавлены derive макросы для преобразования структуры в HttpResponse с помощью ResponderJson и IResponse<T> с помощью IntoIResponse.

Ревью кода эндпоинтов связанных с авторизацией.

Эндпоинт users/me теперь объект пользователя в требуемом виде.
2025-03-28 01:21:49 +04:00
n08i40k 1add903f36 0.6.0
Добавлена проверка токена пользователя для перед обработкой запроса.
2025-03-27 20:03:35 +04:00
n08i40k f703cc8326 0.5.0
Возвращёна реализация сериализации в json для IResponse

Добавлены типы для экстракции данных из запросов средствами actix-web

Добавлен экстрактор для получения пользователя по токену доступа передаваемому в запросе

Добавлен макрос для автоматической реализации ResponseError для ошибок экстракторов

Добавлен эндпоинт users/me

Из главного проекта исключена зависимость actix-http посредством переноса части тестового функционала в отдельный crate
2025-03-26 08:05:22 +04:00
n08i40k ab1cbd795e 0.4.0
Авторизация через токен вк

Слияние schedule_parser с проектом

Перенос схемы запросов/ответов в файлы эндпоинтов

Переход с библиотеки jwt на jsonwebtokens
2025-03-25 02:05:27 +04:00
n08i40k 0316f58592 Обновление workflow тестов 2025-03-23 06:19:51 +04:00
n08i40k a95494d3be Регистрация и тесты эндпоинтов 2025-03-23 06:11:13 +04:00
n08i40k 844c89a365 Тесты JWT
Имплементация PartialEq для utils::jwt::VerifyError

Замена устаревшего changeset_options на diesel

Удалена проверка на ошибку создания токена, так как вероятность её появления близка к нулю
2025-03-22 23:14:14 +04:00
n08i40k ba86dfc3fe Полностью рабочая авторизация 2025-03-22 22:44:52 +04:00
n08i40k 9f7460973e Подключение к Postgres и тестовый эндпоинт авторизации 2025-03-22 03:20:55 +04:00
n08i40k 126ba23001 Скачивание XLS документа по ссылке 2025-03-21 23:55:16 +04:00
n08i40k d75d3fbc97 Установка разрешений для Workflow 2025-03-21 21:03:28 +04:00
n08i40k b508db693e Добавлена конвертация расписания групп в расписание преподавателей 2025-03-21 20:54:52 +04:00