Commit Graph

57 Commits

Author SHA1 Message Date
2120044f1a Refactor ActivityPub integration and add SQLite federation support
- Removed event-publisher dependency from Cargo.lock and Cargo.toml.
- Introduced sqlite-federation crate with necessary dependencies and implementation.
- Updated activitypub crate to use new ActivityPubPort trait for better abstraction.
- Refactored event handling to utilize domain ports instead of direct dependencies.
- Adjusted presentation layer to accommodate new ActivityPub service structure.
- Removed unused test setup for ActivityPub service in favor of NoopActivityPubService.
- Cleaned up SQLite adapter to remove unnecessary dependencies and streamline functionality.
2026-05-09 18:21:16 +02:00
8819266cf9 separation of activitypub 2026-05-09 17:23:06 +02:00
69f6587623 federation improvements 2026-05-09 15:45:08 +02:00
ebab30b1ea local file system 2026-05-09 14:17:25 +02:00
470b29c9e1 federation refinement 2026-05-09 13:53:45 +02:00
df71748897 activity-pub implementation 2026-05-08 21:26:50 +02:00
a282539151 fix: profile delete redirect and open redirect via // 2026-05-08 13:33:59 +02:00
8919c36ef6 feat: preserve pagination offset after review delete 2026-05-08 13:15:47 +02:00
53b7ac2e41 feat: accept date-only watched_at in review form 2026-05-08 13:12:56 +02:00
afb012ffde feat(config): add rate limit configuration to AppConfig and update related usages 2026-05-08 10:11:19 +02:00
b5cd932bfb feat: per-page titles, OG/SEO tags, HOST/PORT env vars, BASE_URL in config 2026-05-04 22:38:58 +02:00
a49fbad26c fix: WAL mode + busy_timeout for SQLite, fix rate limiter TOCTOU race 2026-05-04 22:10:19 +02:00
5852af0b05 refactor: use constant for minimum password length and API rate limit 2026-05-04 21:41:07 +02:00
6cb3cf072a fix: security hardening — SameSite=Strict, Secure cookie flag, password min length, generic registration error, auth rate limiting 2026-05-04 21:38:23 +02:00
6a42e183b9 fix: read BASE_URL from env for RSS channel link 2026-05-04 21:06:51 +02:00
fe7f915302 fix: move rss_url after user lookup, extract RSS_FEED_LIMIT constant 2026-05-04 21:05:08 +02:00
c30b3a1ae2 feat: point RSS nav link to user feed when on profile page 2026-05-04 21:00:31 +02:00
cdc15d733d feat: add GET /users/{id}/feed.rss per-user RSS feed handler 2026-05-04 20:58:20 +02:00
549b0bbe09 feat: add rss_url to HtmlPageContext, use it in nav 2026-05-04 20:55:31 +02:00
a3b6f3d894 fix: remove unused feed_title from RssAdapter 2026-05-04 20:54:32 +02:00
72ce31ded2 feat: add title param to render_feed, use dynamic title in RSS adapter 2026-05-04 20:52:07 +02:00
f53a129331 feat: add user_id filter to GetDiaryQuery and get_diary use case 2026-05-04 20:49:31 +02:00
6c5825ea48 fix: update test assertion for new default page limit 2026-05-04 20:18:04 +02:00
12818d41a4 fix: lower default page limit to 5 2026-05-04 20:11:55 +02:00
94e3b12dca fix: add missing trait stubs to test mock impls 2026-05-04 19:23:56 +02:00
4dd1cd7fc5 fix: has_more overflow, magic constant, remove dead get_index handler 2026-05-04 19:15:42 +02:00
0b6ac2eb77 feat: wire activity feed, users list, and profile page handlers 2026-05-04 19:12:06 +02:00
7e7c1ee1f4 Refactor movie review logging and resolution strategies
- Introduced `MovieResolver` and associated strategies for resolving movie data based on external metadata ID, manual title, or manual entry.
- Updated `log_review` use case to utilize the new `MovieResolver` for fetching movie details.
- Simplified the `LogReviewData` structure and its conversion to `LogReviewCommand`.
- Enhanced error handling for date parsing in review forms and requests.
- Updated dependencies in `Cargo.toml` and `Cargo.lock` to include necessary crates for async operations.
- Added tests for new functionality in `movie_resolver.rs` to ensure correct behavior of resolution strategies.
2026-05-04 15:08:04 +02:00
7913b3e0e5 fix(tests): add missing trait methods to PanicRepo mocks 2026-05-04 14:37:48 +02:00
39ac5a0c50 fix(presentation): restore user_id in get_new_review_page for nav bar 2026-05-04 14:34:46 +02:00
36f3a9c44b fix(presentation): pass None user_id for non-diary page contexts 2026-05-04 14:32:30 +02:00
7c704f39b3 feat(template): add user_id to HtmlPageContext and delete button to diary 2026-05-04 14:31:12 +02:00
6d71da9f1e fix(presentation): use {id} syntax in delete review route 2026-05-04 14:29:24 +02:00
977a8ed8fd feat(presentation): add POST /reviews/:id/delete handler and route 2026-05-04 14:27:43 +02:00
f74a36a16f feat(presentation): add DELETE /api/reviews/:id handler and route 2026-05-04 14:24:48 +02:00
6e50b64245 feat(database): remove unused SQL queries and update Cargo dependencies 2026-05-04 14:00:33 +02:00
8ee54817d7 feat(routes): replace /diary with /, add login/logout/register/reviews/new routes 2026-05-04 13:38:19 +02:00
5c0be8b2ca feat(handlers): add HTML handlers for login, logout, register, new review, diary index 2026-05-04 13:38:16 +02:00
17be6f529a feat(dtos): add LoginForm, RegisterForm, ErrorQuery 2026-05-04 13:38:14 +02:00
7560ff8ac5 feat(extractors): add OptionalCookieUser and RequiredCookieUser 2026-05-04 13:34:31 +02:00
657e9d443d feat(ports): extend HtmlRenderer with page context and new render methods 2026-05-04 13:20:30 +02:00
b7f4855ba3 fix(database): update database connection to use DATABASE_URL with SqliteConnectOptions 2026-05-04 12:54:28 +02:00
494c907729 feat(wiring): wire PosterSyncHandler into event channel in main.rs 2026-05-04 12:44:53 +02:00
fb27e23861 fix(event-handlers): expect over unwrap, panic-stub comment, fix deprecated chrono call 2026-05-04 12:42:03 +02:00
7ab7561133 feat(presentation): implement PosterSyncHandler with retry 2026-05-04 12:37:57 +02:00
bda0531797 feat(event-publisher): add event publisher adapter with configuration and integration 2026-05-04 12:30:42 +02:00
992a1a2674 feat(rss): implement RSS feed adapter and integrate with application state 2026-05-04 12:03:17 +02:00
c1c61ad19b feat(poster-fetcher): add poster fetcher adapter with configuration and integration 2026-05-04 11:51:20 +02:00
00c0b940bc feat(poster-storage): implement S3/Minio storage adapter and configuration 2026-05-04 11:44:44 +02:00
e78216b404 feat(metadata): Implement OMDB metadata provider and refactor metadata client
- Added `OmdbProvider` to fetch movie metadata from the OMDB API.
- Refactored `MetadataClient` to use `MetadataSearchCriteria` for fetching movie metadata.
- Updated `MetadataClientImpl` to support fetching metadata using OMDB.
- Modified `log_review` use case to utilize the new metadata fetching mechanism.
- Updated tests and presentation layer to accommodate changes in metadata handling.
- Added dependencies for `reqwest` and `async-trait` in relevant `Cargo.toml` files.
2026-05-04 11:19:51 +02:00