Return a delete count from the delete-all response helpers

`response delete` had to run its own list first just to report how many
it removed, which duplicated the query the helper already does. Both
helpers now return the count instead.

`cmd_delete_all_http_responses` was returning the helper's value
directly, so it keeps its `()` result explicitly and the frontend
contract is unchanged.
This commit is contained in:
Gregory Schier
2026-08-13 22:09:08 -07:00
parent f53887a114
commit 6b0d553dc5
3 changed files with 11 additions and 15 deletions
@@ -117,13 +117,8 @@ fn delete(ctx: &CliContext, id: &str, yes: bool) -> CommandResult {
println!("Aborted"); println!("Aborted");
return Ok(()); return Ok(());
} }
// The delete helpers return no count, so take one first to report honestly.
let count = ctx let count = ctx
.db() .db()
.list_http_responses_for_request(id, None)
.map_err(|e| format!("Failed to list responses: {e}"))?
.len();
ctx.db()
.delete_all_http_responses_for_request(id, &UpdateSource::Sync) .delete_all_http_responses_for_request(id, &UpdateSource::Sync)
.map_err(|e| format!("Failed to delete responses: {e}"))?; .map_err(|e| format!("Failed to delete responses: {e}"))?;
println!("Deleted {count} responses for request {id}"); println!("Deleted {count} responses for request {id}");
@@ -137,10 +132,6 @@ fn delete(ctx: &CliContext, id: &str, yes: bool) -> CommandResult {
} }
let count = ctx let count = ctx
.db() .db()
.list_http_responses(&workspace_id, None)
.map_err(|e| format!("Failed to list responses: {e}"))?
.len();
ctx.db()
.delete_all_http_responses_for_workspace(&workspace_id, &UpdateSource::Sync) .delete_all_http_responses_for_workspace(&workspace_id, &UpdateSource::Sync)
.map_err(|e| format!("Failed to delete responses: {e}"))?; .map_err(|e| format!("Failed to delete responses: {e}"))?;
println!("Deleted {count} responses for workspace {workspace_id}"); println!("Deleted {count} responses for workspace {workspace_id}");
+3 -2
View File
@@ -1630,10 +1630,11 @@ async fn cmd_delete_all_http_responses<R: Runtime>(
app_handle: AppHandle<R>, app_handle: AppHandle<R>,
window: WebviewWindow<R>, window: WebviewWindow<R>,
) -> YaakResult<()> { ) -> YaakResult<()> {
Ok(app_handle.db().delete_all_http_responses_for_request( app_handle.db().delete_all_http_responses_for_request(
request_id, request_id,
&UpdateSource::from_window_label(window.label()), &UpdateSource::from_window_label(window.label()),
)?) )?;
Ok(())
} }
#[tauri::command] #[tauri::command]
@@ -30,29 +30,33 @@ impl<'a> ClientDb<'a> {
self.find_many(HttpResponseIden::WorkspaceId, workspace_id, limit) self.find_many(HttpResponseIden::WorkspaceId, workspace_id, limit)
} }
/// Returns the number of responses deleted.
pub fn delete_all_http_responses_for_request( pub fn delete_all_http_responses_for_request(
&self, &self,
request_id: &str, request_id: &str,
source: &UpdateSource, source: &UpdateSource,
) -> Result<()> { ) -> Result<usize> {
let responses = self.list_http_responses_for_request(request_id, None)?; let responses = self.list_http_responses_for_request(request_id, None)?;
let count = responses.len();
for m in responses { for m in responses {
self.delete(&m, source)?; self.delete(&m, source)?;
} }
Ok(()) Ok(count)
} }
/// Returns the number of responses deleted.
pub fn delete_all_http_responses_for_workspace( pub fn delete_all_http_responses_for_workspace(
&self, &self,
workspace_id: &str, workspace_id: &str,
source: &UpdateSource, source: &UpdateSource,
) -> Result<()> { ) -> Result<usize> {
let responses = let responses =
self.find_many::<HttpResponse>(HttpResponseIden::WorkspaceId, workspace_id, None)?; self.find_many::<HttpResponse>(HttpResponseIden::WorkspaceId, workspace_id, None)?;
let count = responses.len();
for m in responses { for m in responses {
self.delete(&m, source)?; self.delete(&m, source)?;
} }
Ok(()) Ok(count)
} }
pub fn delete_http_response( pub fn delete_http_response(