chore(release): first stable release #45

Merged
devitq merged 134 commits from develop into main 2026-05-23 07:28:37 +00:00
134 Commits
Author SHA1 Message Date
ITQ 1e0e1776be hotfix(): 2026-05-23 09:54:24 +03:00
ITQandGitHub b4d62036aa Merge pull request #69 from devitq/feat/setup-observability-in-k8s
feat: setup observability in k8s
2026-05-23 09:50:31 +03:00
ITQ 26619c6399 hotfix(helm): 2026-05-23 09:44:01 +03:00
ITQ 5621fa8652 feat(argocd): added victoriametrics stack 2026-05-23 09:26:44 +03:00
ITQ 2b1946a7a5 fix(helm): some dumb fix 2026-05-23 01:47:14 +03:00
ITQ 5fcaeadcaf feat(helm): added observability to helm chart 2026-05-23 01:11:38 +03:00
ITQ f3754d1190 style(): reformatted 2026-05-23 01:09:58 +03:00
ITQandGitHub 4b70cab851 Merge pull request #68 from devitq/chore/refacor-plugin-ui
chore(): refactor and improve plugin UI
2026-05-23 01:03:38 +03:00
ITQ a008cb115e chore(): refactor and improve plugin UI 2026-05-23 01:02:44 +03:00
ITQandGitHub fc7ddc308f Merge pull request #67 from skettiks/recommendation-system-2
feat: improve recommendation system
2026-05-23 00:43:41 +03:00
skettiks 360e2aa819 Исправить форматирование теста рекомендаций
Разбиты длинные строки в RecommendationSmokeTest, из-за которых CI падал на ktlint и detekt.
2026-05-23 00:22:19 +03:00
skettiks eb3f0cd206 Улучшить ранжирование рекомендаций
Добавлены семантические теги вкуса для фильмов, штраф за слабое совпадение с явно понравившимися фильмами и проверка кейса, где реальные оценки должны быть важнее широких onboarding-предпочтений.
2026-05-23 00:14:18 +03:00
skettiks ef1a11404e Усилить персонализацию рекомендаций
Рекомендации теперь сильнее опираются на явно высоко оценённые фильмы, штрафуют похожесть на негативные оценки и ослабляют широкие онбординг-фильтры при слабой релевантности. Добавлен регрессионный тест для сценария, где фильмы, похожие на любимые, должны ранжироваться выше простых совпадений по жанру и эпохе.
2026-05-22 23:29:50 +03:00
ITQ f2aebe4dea chore(ui): small improvements to plugin UI 2026-05-22 21:51:05 +03:00
ITQ afbff24cd5 fix(jdbc): fixed default jdbc settings 2026-05-22 21:50:47 +03:00
ITQ 4ab99d0137 fix(exception): 500 error on root 2026-05-22 21:50:30 +03:00
ITQ 19163e7933 fix(secrets): fixed secrets provisioning 2026-05-22 21:18:03 +03:00
ITQandGitHub b4d3ee6b48 Merge pull request #64 from devitq/feat/setup-k8s-deploy-61
feat: setup k8s deploy
2026-05-22 20:46:54 +03:00
ITQandGitHub d8a4784d89 Merge pull request #47 from devitq/feat/implement-jellyfin-plugin-46
feat: implement Jellyfin plugin
2026-05-22 20:44:23 +03:00
ITQ a9c75b8e99 tests(contract): fixed sync test 2026-05-22 19:57:54 +03:00
ITQ a4b2da66bf ci(): reordered steps to fix artifacts uploading problem 2026-05-22 19:57:22 +03:00
ITQ 939d2ac736 ci(): some publishing fixes in CI 2026-05-22 19:45:25 +03:00
ITQ ecafbef187 fix(security): made swagger endpoints publicly available 2026-05-22 19:38:17 +03:00
ITQ 57cf910042 fix(migrations): fixed migrations 2026-05-22 19:04:26 +03:00
ITQ fdbe47341c fix(logback): disabled file logging by default 2026-05-22 18:47:20 +03:00
ITQ 551b795d6e feat(manifests): added secrets for movienight 2026-05-22 18:24:58 +03:00
ITQ ea6b90bc67 feat(argocd): added required apps for movienight to operate 2026-05-22 18:07:31 +03:00
ITQ 8350239a1a feat(helm): added helm chart for movienight 2026-05-22 18:06:28 +03:00
ITQ 92add56cf7 fix(jellyfin): fixes in jellyfin integration 2026-05-22 18:04:28 +03:00
ITQ 5b9b4ce03a ci(plugin): added CI for jellyfin plugin 2026-05-22 17:28:32 +03:00
ITQandGitHub 4af7da25e5 ci(docker): allow push for develop branch as well 2026-05-22 17:25:25 +03:00
ITQ c8acede152 feat(jellyfin): added jellyfin plugin 2026-05-22 17:09:04 +03:00
ITQ 42008900f6 ci(docker): enabled push to registry when PR base br is main 2026-05-22 17:01:28 +03:00
ITQandGitHub ebe5a662e2 Merge pull request #58 from devitq/fix-develop-problems
refactor: обновить use case слои и интеграцию Jellyfin
2026-05-22 16:56:25 +03:00
ITQ ee530d666e fix(): merge conflicts 2026-05-22 16:55:20 +03:00
ITQ 3a8f2080b7 Merge branch 'feature/logging-error-handling' into develop
* feature/logging-error-handling:
  логи
  логи
  логи
  логи
2026-05-22 16:54:14 +03:00
ITQ 573fa12e62 feat(misc): added script to generate library for Jellyfin 2026-05-22 16:53:33 +03:00
Elena 6d35b2f5a6 логи 2026-05-22 15:41:24 +03:00
Elena 9e9e2244ab логи 2026-05-22 15:38:28 +03:00
Elena df8d3ee404 логи 2026-05-22 15:07:03 +03:00
skettiks ef995422dd refactor: обновить use case слои и интеграцию Jellyfin 2026-05-22 14:43:26 +03:00
Elena c3fc2568e0 логи 2026-05-22 14:20:45 +03:00
ITQandGitHub f4bccf4bf0 Merge pull request #53 from devitq/feature/recommendation-model
feat: add recommendation system
2026-05-22 12:01:34 +03:00
skettiks 0dca1f7031 - добавлена модель персональных весов рекомендаций с нормализацией и ограничениями
- добавлена миграция для user_recommendation_weights и breakdown-полей recommendation_events
- рекомендации теперь используют пользовательские score/vector веса
- feedback ACCEPTED/REJECTED обновляет score-веса пользователя по последней рекомендации
- добавлен API для чтения и ручного обновления весов рекомендаций
- добавлен onboarding endpoint для начальной калибровки пользователя
- добавлены стили рекомендаций: balanced, quality first, mood first, discovery, similar to favorites
- onboarding сохраняет предпочтения, лайки/дизлайки, библиотеку, просмотренные фильмы и стартовые веса
- добавлены метрика обновления весов и расширенные smoke/unit тесты
2026-05-21 17:05:26 +03:00
skettiks a615450896 Пофиксил проблемы сборки 2026-05-21 14:57:41 +03:00
skettiks 00f53bc949 Реализована рекомендательная система: добавлены гибридный скоринг фильмов, события рекомендаций, accept/reject endpoints, watchUrl для Jellyfin, API DTO ответа и логирование выдачи рекомендаций. 2026-05-21 13:58:14 +03:00
ITQandGitHub 6e2e110bba Merge pull request #50 from devitq/feat/extend-data-structures-48
feat: extended data structures
2026-05-21 00:37:11 +03:00
50923e2e5a fix: address PR review thread issues
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/d4d6ebbb-2508-484e-accf-c891be54750f

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-20 18:33:34 +00:00
ITQ 1f22be3401 migrations: fix jellyfin id DDL for h2 compatibility 2026-05-20 20:06:17 +03:00
ITQ eec2814bc3 feat(migrations): added migrations for ratings and added some jellyfin ids 2026-05-20 19:48:44 +03:00
ITQ d0860cf137 integrations(jellyfin): add event ingestion and sync scaffolding + migration 2026-05-20 16:57:53 +03:00
ITQ 5f2a6d12ac core: restore compilation and tests (ports, DTOs, repo fixes, metrics) 2026-05-20 16:57:19 +03:00
ITQ ea7e66c1a0 <type>(scope): <description>
[body]

[footer(s)]
2026-05-20 03:38:30 +03:00
ITQ a48463b723 feat(ports): extended and actualized repository interfaces 2026-05-20 03:35:25 +03:00
ITQandGitHub 4fa6b5e873 Merge branch 'develop' into feat/extend-data-structures-48 2026-05-20 03:30:08 +03:00
ITQ aa89455e50 fix(): test fix after restructuring 2026-05-20 03:24:58 +03:00
ITQ b94599a652 style(): yet another formatting improvements 2026-05-20 03:24:37 +03:00
ITQ 967c1b818c chore(style): reformatted some files 2026-05-20 02:58:26 +03:00
ITQ 432659500b feat(domain): extended and actualized domain models 2026-05-20 02:57:46 +03:00
ITQ 8e89fe5f7f feat(entities): actualized entities and added new 2026-05-20 02:51:39 +03:00
ITQ 54305f7d16 chore(persistence): actualized jdbc adapters according to new data structures 2026-05-20 02:51:09 +03:00
ITQ 75bbe27198 feat(migrations): extended data structures 2026-05-20 02:50:22 +03:00
skettiksandGitHub e956c058ac add Film observability with trace id and metrics (#44)
* add Film observability with trace id and metrics

* test: provide meter registry in FilmServiceTest
2026-05-19 16:13:10 +03:00
ITQandGitHub 051b4ca80b Merge pull request #32 from devitq/feat/oauth2-user-service-26 2026-05-16 22:30:55 +03:00
skettiks 56f1f0a46b . 2026-05-15 22:46:38 +03:00
skettiks d2821a8439 Revert "- exclude("**/security.disabled/**") - убрано"
This reverts commit bc06654c84.
2026-05-15 22:40:50 +03:00
skettiks bc06654c84 - exclude("**/security.disabled/**") - убрано
-Добавлен плагин org.graalvm.buildtools.native в build.gradle.kts, чтобы появились задачи processAot и nativeCompile.
- Отключен configuration-cache в gradle.properties, чтобы убрать конфликт при nativeCompile на текущем toolchain.
2026-05-15 22:20:03 +03:00
skettiks a4f99bbe8a * Синхронизировал UserEntity и UserRepository с актуальной моделью User и контрактом UserRepositoryPort: убрал устаревшую логику с password и исправил невалидные override.
* Убрал конфликтующие gRPC-зависимости, которые тянули несовместимый runtime/test stack.
* Сделал Flyway-миграцию `V2` с OAuth2-индексом совместимой с H2.
* Отключил security-фильтры в controller-тестах через `MockMvc`, чтобы убрать редиректы на авторизацию и нестабильные падения тестов.
* Восстановил локальный запуск и стабилизировал тестовый контур.
2026-05-15 21:18:46 +03:00
skettiks 432a803b8f Merge branch 'feat/oauth2-user-service-26' of https://github.com/devitq/movienight-backend into feat/oauth2-user-service-26
# Conflicts:
#	src/main/kotlin/com/project/movienight/adapters/persistence/jdbc/UserRepository.kt
2026-05-15 20:47:13 +03:00
skettiksandGitHub 071fa53858 Merge branch 'develop' into feat/oauth2-user-service-26 2026-05-14 21:12:38 +03:00
d4dbc108c8 fix: resolve CI compile failure and complete OAuth2 review fixes
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/62eaa8e4-560b-4737-be4b-478f1a4c484a

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-14 21:01:25 +03:00
Elena Ponomarevaandskettiks aecf19aa11 изменила название папки и убрала лишние импорты 2026-05-14 21:00:46 +03:00
Elena Ponomarevaandskettiks 82a0cec1cc дописала security 2026-05-14 21:00:46 +03:00
skettiks a10737a7f7 Исправлена сборка проекта после слияния с develop
Проблема:
- После слияния с develop возникли конфликты в реализации OAuth2
- Две ветки независимо реализовали OAuth2 функциональность по-разному
- Сборка проекта падала из-за отсутствия зависимостей OAuth2

Изменения:
- Временно отключена OAuth2 зависимость в build.gradle.kts
- Перенесен OAuth2 код в папку security.disabled для сохранения
- Добавлены исключения security.disabled из компиляции, ktlint и detekt
- Удалена миграция V2__add_oauth2_fields.sql (OAuth2 поля теперь в V1)
- Удалено поле password из User domain модели
- Обновлены репозитории и сервисы для работы с новой схемой БД

Результат:
- Проект успешно собирается (./gradlew build)
- Все 35 тестов проходят
- OAuth2 код сохранен для будущего использования
2026-05-14 21:00:06 +03:00
skettiks cf7e3411da - Перенесён OAuth2UserInfo.kt из adapters/security/ в application/ports/input/security/; обновлены импорты во всех зависимых файла
- В UserPrincipal.kt заменён star import java.util.* на явный java.util.UUID.

- В YandexOAuth2UserInfo.kt и VkOAuth2UserInfo.kt убрана аннотация @Suppress("UNCHECKED_CAST")

- В build.gradle.kts хардкод версии заменён на version catalog

- Из CustomOAuth2UserService.kt удалены комментарии на русском языке
2026-05-14 20:57:58 +03:00
skettiks 166c5be863 Исправлена V1 миграция - добавлена запятая после email
Реализован saveWithOAuth2() в UserRepository
Реализован findByProviderAndProviderId() в UserRepository
Обновлен CustomOAuth2UserService для использования OAuth2 методов
Исправил package declaration во всех 7 OAuth2 файлах
2026-05-14 20:57:58 +03:00
skettiks 88794e6a96 Добавил V2__add_oauth2_fields.sql
Все UserRepositoryIntegrationTest тесты прошли
2026-05-14 20:54:30 +03:00
Elena Ponomarevaandskettiks 06e2b50ba5 OAuth2 (без тестов и ошибка с java) 2026-05-14 20:50:22 +03:00
glasharkandGitHub e93d9b2c81 Merge pull request #24 from devitq/feat/spring-tests
test: write tests for controllers
2026-05-08 23:32:36 +03:00
glasharkandGitHub d8e59e2d12 Merge branch 'develop' into feat/spring-tests 2026-05-08 22:36:48 +03:00
267ecfef62 fix: keep removeFilm expression body with 204 response
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/42b7a686-07a7-41f5-baf7-737b968e12cf

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-08 17:52:48 +00:00
22025326e7 fix: align search test and available-films error handling
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/42b7a686-07a7-41f5-baf7-737b968e12cf

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-08 17:52:01 +00:00
47ff6d80bf merge: sync develop into feat/spring-tests
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/42b7a686-07a7-41f5-baf7-737b968e12cf

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-08 17:50:42 +00:00
e91ebb7bd0 fix: resolve detekt/ktlint issues blocking CI
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/42b7a686-07a7-41f5-baf7-737b968e12cf

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-08 17:48:57 +00:00
0b57c31611 fix: resolve CI compile failure and complete OAuth2 review fixes
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/62eaa8e4-560b-4737-be4b-478f1a4c484a

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-08 17:37:35 +00:00
Elena Ponomareva 0aa7dcaf98 изменила название папки и убрала лишние импорты 2026-05-07 08:01:24 +03:00
Elena Ponomareva 6158d3543c дописала security 2026-05-07 07:58:11 +03:00
skettiks 27317c00e4 Исправлена сборка проекта после слияния с develop
Проблема:
- После слияния с develop возникли конфликты в реализации OAuth2
- Две ветки независимо реализовали OAuth2 функциональность по-разному
- Сборка проекта падала из-за отсутствия зависимостей OAuth2

Изменения:
- Временно отключена OAuth2 зависимость в build.gradle.kts
- Перенесен OAuth2 код в папку security.disabled для сохранения
- Добавлены исключения security.disabled из компиляции, ktlint и detekt
- Удалена миграция V2__add_oauth2_fields.sql (OAuth2 поля теперь в V1)
- Удалено поле password из User domain модели
- Обновлены репозитории и сервисы для работы с новой схемой БД

Результат:
- Проект успешно собирается (./gradlew build)
- Все 35 тестов проходят
- OAuth2 код сохранен для будущего использования
2026-05-05 00:58:20 +03:00
ITQandGitHub 1b747de56a Merge pull request #38 from devitq/test/film-controller-search-test
test(web): added search controller test
2026-05-03 22:29:04 +03:00
ITQ 238aec898e test(web): added search controller test 2026-05-03 22:25:50 +03:00
ITQandGitHub 28144d5254 Merge pull request #37 from devitq/hotfix/fix-ci
hotfix(ci): fixed tests and style
2026-05-03 21:12:10 +03:00
ITQ d9f45a9e4c style(format): run ktlint format 2026-05-03 21:08:43 +03:00
ITQandGitHub 9c7a562323 Merge branch 'develop' into hotfix/fix-ci 2026-05-03 20:18:25 +03:00
glasharkandGitHub f30488a3d1 Merge branch 'develop' into feat/spring-tests 2026-05-03 20:08:31 +03:00
ITQ 02d3f4580d fix(repository): temporary schema fix before #32 PR merge 2026-05-03 19:47:31 +03:00
ITQ 1d8e3dd4e1 style(format): reformatted with ktlint 2026-05-03 19:14:02 +03:00
skettiksandGitHub 649978f791 Merge branch 'develop' into feat/oauth2-user-service-26 2026-05-03 16:06:02 +03:00
ITQandGitHub 4f26ac23bf Merge pull request #19 from devitq/feat/controllers-add-missing-endpoints
feat: controllers add missing endpoints
2026-05-03 15:28:41 +03:00
skettiksandGitHub c03b49157f Merge branch 'develop' into feat/oauth2-user-service-26 2026-05-03 15:13:14 +03:00
44483d748f refactor: use idiomatic Kotlin iteration for JsonNode in tests
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/60cd9b1b-e3e1-46a1-bfd9-04a75bd0d569

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-03 12:03:23 +00:00
b7a246e0b4 fix: address copilot review issues - explicit imports, trailing commas, 404 for not-found search, tests for available-films endpoint
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/60cd9b1b-e3e1-46a1-bfd9-04a75bd0d569

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-05-03 12:02:31 +00:00
ITQandGitHub 37ede1c194 Merge pull request #23 from devitq/feat/user-entity-21
feat: user entity 21
2026-05-03 14:54:01 +03:00
ITQandGitHub ae5d96f169 Merge pull request #36 from devitq/ci/build-pipeline
ci: added basic CI
2026-05-03 13:21:14 +03:00
ITQ 517de4d372 ci(): added trufflehog, release notification improvements 2026-05-03 12:55:07 +03:00
skettiks 1e2625a460 chore(ci): улучшил конфигурацию CI/CD пайплайнов 2026-05-03 12:04:29 +03:00
ITQandGitHub fd695edbd7 Merge pull request #35 from devitq/hotfix/add-aot
hotfix: added AOT
2026-04-30 11:35:08 +03:00
ITQ a41c3de0df build(): added AOT for spring 2026-04-30 09:49:25 +03:00
ITQ 28eb823f98 deps(idea): kotlinc plugin update 2026-04-30 09:44:37 +03:00
Elena Ponomareva 1795064710 изменила ci.yaml 2026-04-28 18:34:15 +03:00
Elena Ponomareva 401a556c54 изменила ci.yaml 2026-04-27 23:27:55 +03:00
Elena Ponomareva 26dd04916e добавила release.yaml 2026-04-27 23:22:26 +03:00
ITQ 6890b07c3e fix(ci): fixed build commands 2026-04-26 20:09:09 +03:00
ITQ 2525f2f959 chore(gitignore): added wrapper to git 2026-04-26 19:59:17 +03:00
ITQ c609bd1e3c ci(): added basic CI: build, test, docker build & push 2026-04-26 19:25:43 +03:00
Elena Ponomareva f563c3e7cf исправления 2026-04-24 23:47:56 +03:00
Elena Ponomareva 8120294d47 исправление 2026-04-24 22:55:56 +03:00
skettiks 312c18645b - Перенесён OAuth2UserInfo.kt из adapters/security/ в application/ports/input/security/; обновлены импорты во всех зависимых файла
- В UserPrincipal.kt заменён star import java.util.* на явный java.util.UUID.

- В YandexOAuth2UserInfo.kt и VkOAuth2UserInfo.kt убрана аннотация @Suppress("UNCHECKED_CAST")

- В build.gradle.kts хардкод версии заменён на version catalog

- Из CustomOAuth2UserService.kt удалены комментарии на русском языке
2026-04-23 23:59:16 +03:00
ITQandGitHub 6fd98cbe5c Merge pull request #15 from devitq/test/repository-integration
test: add integration tests for JDBC repositories
2026-04-23 22:55:29 +03:00
ITQandGitHub f2f72a2719 Merge pull request #18 from devitq/test/service-unit-tests
test: add unit tests for services
2026-04-23 22:49:51 +03:00
skettiks d50e2e640c Исправлена V1 миграция - добавлена запятая после email
Реализован saveWithOAuth2() в UserRepository
Реализован findByProviderAndProviderId() в UserRepository
Обновлен CustomOAuth2UserService для использования OAuth2 методов
Исправил package declaration во всех 7 OAuth2 файлах
2026-04-23 18:47:30 +03:00
skettiks 689ee91d1f Merge remote-tracking branch 'origin/feat/oauth2-migration-20' into feat/oauth2-user-service
merge: интеграция полей OAuth2 миграции в user service.
2026-04-23 17:18:57 +03:00
bd7ecfcab5 fix(test): add mockk catalog dependency and format service tests
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/abb7242b-7ff5-4cde-9d34-5733a7f1172f

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-04-23 06:36:27 +00:00
Elena Ponomareva c64fc35353 OAuth2 (без тестов и ошибка с java) 2026-04-22 08:46:58 +03:00
4f0e8ccbd4 test: fix ktlint multiline wrapping in JDBC integration tests
Agent-Logs-Url: https://github.com/devitq/movienight-backend/sessions/e7455e93-ed32-49f5-9b29-dabcdcc01e87

Co-authored-by: devitq <118541411+devitq@users.noreply.github.com>
2026-04-21 18:28:03 +00:00
skettiks acd8f9fb01 Создан AuthProvider enum с провайдерами GOOGLE, YANDEX, VK
Создана UserEntity в adapters/persistence/entity с полями для OAuth
Добавлены extension-функции маппинга toDomain() и toEntity()
Обновлен UserRepository — использует UserEntity и добавлен метод findByProviderAndProviderId()
Созданы юнит тест - UserEntityMappingTest.kt
2026-04-21 18:47:55 +03:00
skettiks 3cb52c019f Добавил V2__add_oauth2_fields.sql
Все UserRepositoryIntegrationTest тесты прошли
2026-04-21 16:28:47 +03:00
skettiks f927148897 Добавленны юнит тесты для всех сервисов 2026-04-21 00:21:00 +03:00
Elena Ponomareva 8926e5b08c импорты 2026-04-21 00:19:14 +03:00
skettiks 49f74d1898 Добавил интеграционные тесты для User, Film, FilmLibrary - репозиториев
application-test.yaml: настройка тестового окружения
2026-04-20 19:45:55 +03:00
Elena Ponomareva 910a382679 базовый пайплайн 2026-04-19 22:39:29 +03:00
Elena Ponomareva a8076594be базовый пайплайн 2026-04-19 22:36:27 +03:00
Elena Ponomareva 88837d2e18 дописала get в контроллерах 2026-04-19 16:06:44 +03:00
Elena Ponomareva b7b9061ba6 спринг тесты для контроллеров 2026-04-19 15:46:59 +03:00
Elena Ponomareva d69419b90d поиск по названию в библиотеке пользователя / во всей бд 2026-04-19 14:03:34 +03:00