ent assign: speed up setting of assignee

This commit is contained in:
Sebastian Kuzminsky 2025-07-22 10:08:12 -06:00
parent cc1b378346
commit e2a7c81a13

View file

@ -415,35 +415,37 @@ fn handle_command(
Commands::Assign { Commands::Assign {
issue_id, issue_id,
new_assignee, new_assignee,
} => { } => match new_assignee {
let issues = entomologist::database::read_issues_database(issues_database_source)?; Some(new_assignee) => {
let Some(original_issue) = issues.issues.get(issue_id) else { let issues_database = entomologist::database::make_issues_database(
return Err(anyhow::anyhow!("issue {} not found", issue_id)); issues_database_source,
}; entomologist::database::IssuesDatabaseAccess::ReadWrite,
let old_assignee: String = match &original_issue.assignee { )?;
Some(assignee) => assignee.clone(), let mut issues = entomologist::issues::Issues::new_from_dir(&issues_database.dir)?;
None => String::from("None"), let Some(issue) = issues.get_mut_issue(issue_id) else {
}; return Err(anyhow::anyhow!("issue {} not found", issue_id));
println!("issue: {}", issue_id); };
match new_assignee { let old_assignee: String = match &issue.assignee {
Some(new_assignee) => { Some(assignee) => assignee.clone(),
let issues_database = entomologist::database::make_issues_database( None => String::from("None"),
issues_database_source, };
entomologist::database::IssuesDatabaseAccess::ReadWrite, issue.set_assignee(new_assignee)?;
)?; println!("issue: {}", issue_id);
let mut issues = println!("assignee: {} -> {}", old_assignee, new_assignee);
entomologist::issues::Issues::new_from_dir(&issues_database.dir)?;
let Some(issue) = issues.get_mut_issue(issue_id) else {
return Err(anyhow::anyhow!("issue {} not found", issue_id));
};
println!("assignee: {} -> {}", old_assignee, new_assignee);
issue.set_assignee(new_assignee)?;
}
None => {
println!("assignee: {}", old_assignee);
}
} }
} None => {
let issues = entomologist::database::read_issues_database(issues_database_source)?;
let Some(original_issue) = issues.issues.get(issue_id) else {
return Err(anyhow::anyhow!("issue {} not found", issue_id));
};
let old_assignee: String = match &original_issue.assignee {
Some(assignee) => assignee.clone(),
None => String::from("None"),
};
println!("issue: {}", issue_id);
println!("assignee: {}", old_assignee);
}
},
Commands::Tag { issue_id, tag } => match tag { Commands::Tag { issue_id, tag } => match tag {
Some(tag) => { Some(tag) => {