f226071cbd
feat: preserve pagination offset after review delete
2026-05-08 13:15:47 +02:00
aaa9cb0a1e
feat: accept date-only watched_at in review form
2026-05-08 13:12:56 +02:00
31dba4ca95
feat(config): add rate limit configuration to AppConfig and update related usages
2026-05-08 10:11:19 +02:00
b30a6a102b
feat: per-page titles, OG/SEO tags, HOST/PORT env vars, BASE_URL in config
2026-05-04 22:38:58 +02:00
3135a15cb3
fix: WAL mode + busy_timeout for SQLite, fix rate limiter TOCTOU race
2026-05-04 22:10:19 +02:00
d083f8ae3d
refactor: use constant for minimum password length and API rate limit
...
Co-authored-by: Copilot <copilot@github.com >
2026-05-04 21:41:07 +02:00
874c406d4a
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
790bb6fbb5
fix: read BASE_URL from env for RSS channel link
2026-05-04 21:06:51 +02:00
658df38788
fix: move rss_url after user lookup, extract RSS_FEED_LIMIT constant
2026-05-04 21:05:08 +02:00
cff0f854fa
feat: point RSS nav link to user feed when on profile page
2026-05-04 21:00:31 +02:00
66ade70273
feat: add GET /users/{id}/feed.rss per-user RSS feed handler
2026-05-04 20:58:20 +02:00
cbd2ac5b3e
feat: add rss_url to HtmlPageContext, use it in nav
2026-05-04 20:55:31 +02:00
0433cd4d9b
fix: remove unused feed_title from RssAdapter
2026-05-04 20:54:32 +02:00
b5a8ea2395
feat: add title param to render_feed, use dynamic title in RSS adapter
2026-05-04 20:52:07 +02:00
49b79799c1
feat: add user_id filter to GetDiaryQuery and get_diary use case
2026-05-04 20:49:31 +02:00
ccc39e27e4
fix: lower default page limit to 5
2026-05-04 20:11:55 +02:00
7703227970
fix: add missing trait stubs to test mock impls
2026-05-04 19:23:56 +02:00
0c48708ce6
fix: has_more overflow, magic constant, remove dead get_index handler
2026-05-04 19:15:42 +02:00
a2a889bced
feat: wire activity feed, users list, and profile page handlers
2026-05-04 19:12:06 +02:00
6dcc4c8317
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
e31d99a240
fix(tests): add missing trait methods to PanicRepo mocks
2026-05-04 14:37:48 +02:00
41fec1efa5
fix(presentation): restore user_id in get_new_review_page for nav bar
2026-05-04 14:34:46 +02:00
160c08d1c4
fix(presentation): pass None user_id for non-diary page contexts
2026-05-04 14:32:30 +02:00
7aa6d7bf4d
feat(template): add user_id to HtmlPageContext and delete button to diary
2026-05-04 14:31:12 +02:00
144f2f8e0c
fix(presentation): use {id} syntax in delete review route
2026-05-04 14:29:24 +02:00
cff64f7a6b
feat(presentation): add POST /reviews/:id/delete handler and route
2026-05-04 14:27:43 +02:00
5baff54cb9
feat(presentation): add DELETE /api/reviews/:id handler and route
2026-05-04 14:24:48 +02:00
fa8efbaa23
feat(database): remove unused SQL queries and update Cargo dependencies
2026-05-04 14:00:33 +02:00
8e1fb1a974
feat(routes): replace /diary with /, add login/logout/register/reviews/new routes
2026-05-04 13:38:19 +02:00
6145b873f5
feat(handlers): add HTML handlers for login, logout, register, new review, diary index
2026-05-04 13:38:16 +02:00
cc668ae44d
feat(dtos): add LoginForm, RegisterForm, ErrorQuery
2026-05-04 13:38:14 +02:00
e5097c22dd
feat(extractors): add OptionalCookieUser and RequiredCookieUser
2026-05-04 13:34:31 +02:00
7f815f8207
feat(ports): extend HtmlRenderer with page context and new render methods
2026-05-04 13:20:30 +02:00
eb273dc277
fix(database): update database connection to use DATABASE_URL with SqliteConnectOptions
2026-05-04 12:54:28 +02:00
5689db0ad7
feat(wiring): wire PosterSyncHandler into event channel in main.rs
2026-05-04 12:44:53 +02:00
5c70b8b8be
fix(event-handlers): expect over unwrap, panic-stub comment, fix deprecated chrono call
2026-05-04 12:42:03 +02:00
4c547df04e
feat(presentation): implement PosterSyncHandler with retry
2026-05-04 12:37:57 +02:00
17f90726e8
feat(event-publisher): add event publisher adapter with configuration and integration
2026-05-04 12:30:42 +02:00
f790fa2a0f
feat(rss): implement RSS feed adapter and integrate with application state
2026-05-04 12:03:17 +02:00
edcf3c1170
feat(poster-fetcher): add poster fetcher adapter with configuration and integration
2026-05-04 11:51:20 +02:00
1985d2c57f
feat(poster-storage): implement S3/Minio storage adapter and configuration
...
Co-authored-by: Copilot <copilot@github.com >
2026-05-04 11:44:44 +02:00
da72ab1446
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
93c65cd155
feat(auth): implement JWT authentication and user registration
...
- Added JWT authentication with token generation and validation.
- Introduced user registration functionality with email and password.
- Integrated Argon2 for password hashing.
- Created SQLite user repository for user data persistence.
- Updated application context to include user repository and configuration settings.
- Added environment variable support for JWT secret and registration allowance.
- Enhanced error handling for unauthorized access and validation errors.
- Updated presentation layer to handle login and registration requests.
2026-05-04 10:43:07 +02:00
79a06e6844
presentation wiring
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-04 09:30:20 +02:00
5a58625265
feat(presentation): add initial structure with dtos, errors, extractors, handlers, and routes modules
2026-05-04 02:11:33 +02:00
b6a7cf9417
feat(template-askama): add Askama template adapter for diary entries
2026-05-04 02:04:52 +02:00
810bad1126
init domain
2026-05-04 00:26:10 +02:00