fix: validate view param, document V1 history load

This commit is contained in:
2026-05-04 18:53:26 +02:00
parent 1b827b1bdd
commit dda7c40f7f

View File

@@ -24,6 +24,8 @@ pub async fn execute(
match query.view.as_str() { match query.view.as_str() {
"history" => { "history" => {
// V1: loads all entries into memory. Personal diaries are bounded in size;
// spec calls for showing every movie grouped by month, so full load is intentional.
let all_entries = ctx.repository.get_user_history(&user_id).await?; let all_entries = ctx.repository.get_user_history(&user_id).await?;
let history = group_by_month(all_entries); let history = group_by_month(all_entries);
Ok(UserProfileData { stats, entries: None, history: Some(history), trends: None }) Ok(UserProfileData { stats, entries: None, history: Some(history), trends: None })
@@ -43,8 +45,7 @@ pub async fn execute(
let entries = ctx.repository.query_diary(&filter).await?; let entries = ctx.repository.query_diary(&filter).await?;
Ok(UserProfileData { stats, entries: Some(entries), history: None, trends: None }) Ok(UserProfileData { stats, entries: Some(entries), history: None, trends: None })
} }
_ => { "recent" => {
// "recent" (default)
let page = PageParams::new(query.limit, query.offset)?; let page = PageParams::new(query.limit, query.offset)?;
let filter = DiaryFilter { let filter = DiaryFilter {
sort_by: SortDirection::Descending, sort_by: SortDirection::Descending,
@@ -55,6 +56,7 @@ pub async fn execute(
let entries = ctx.repository.query_diary(&filter).await?; let entries = ctx.repository.query_diary(&filter).await?;
Ok(UserProfileData { stats, entries: Some(entries), history: None, trends: None }) Ok(UserProfileData { stats, entries: Some(entries), history: None, trends: None })
} }
other => Err(DomainError::ValidationError(format!("unknown view: {}", other))),
} }
} }