Add server-side work item search

This commit is contained in:
Georg Bauer
2026-07-31 21:03:01 +02:00
parent af392209e8
commit a3962449a2
9 changed files with 234 additions and 42 deletions

View File

@@ -4,8 +4,8 @@ use gotcha_gitea::{
use crate::{
domain::{
HistoryCommit, HomeData, IssueDetails, IssueDraft, IssueEditorData, MilestoneDetails,
MilestoneDraft, Page, PullDetails, RepositoryData, Server,
HistoryCommit, HomeData, IssueDetails, IssueDraft, IssueEditorData, IssueFilter,
MilestoneDetails, MilestoneDraft, Page, PullDetails, RepositoryData, Server,
},
presentation::compact_date,
};
@@ -46,8 +46,7 @@ pub async fn load_issues(
owner: &str,
repository: &str,
status: &str,
labels: &[String],
milestone: &str,
filter: &IssueFilter,
page: i32,
) -> Result<Page<models::Issue>, String> {
client(server)?
@@ -55,8 +54,10 @@ pub async fn load_issues(
&scope(owner, repository)?,
&IssueQuery {
state: status.into(),
labels: (!labels.is_empty()).then(|| labels.join(",")),
milestones: (!milestone.is_empty()).then(|| milestone.into()),
labels: (!filter.labels.is_empty())
.then(|| filter.labels.iter().cloned().collect::<Vec<_>>().join(",")),
milestones: (!filter.milestone.is_empty()).then(|| filter.milestone.clone()),
keyword: (!filter.search_text.is_empty()).then(|| filter.search_text.clone()),
page,
limit: PAGE_SIZE,
..Default::default()
@@ -150,12 +151,14 @@ pub async fn load_pulls(
server: &Server,
status: &str,
milestone: &str,
search_text: &str,
page: i32,
) -> Result<Page<models::Issue>, String> {
client(server)?
.search_pulls(
status,
(!milestone.is_empty()).then_some(milestone),
(!search_text.is_empty()).then_some(search_text),
page,
PAGE_SIZE,
)