diff --git a/crates-cli/yaak-cli/src/commands/response.rs b/crates-cli/yaak-cli/src/commands/response.rs index 63770a7d..3a8b3ba8 100644 --- a/crates-cli/yaak-cli/src/commands/response.rs +++ b/crates-cli/yaak-cli/src/commands/response.rs @@ -117,13 +117,8 @@ fn delete(ctx: &CliContext, id: &str, yes: bool) -> CommandResult { println!("Aborted"); return Ok(()); } - // The delete helpers return no count, so take one first to report honestly. let count = ctx .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) .map_err(|e| format!("Failed to delete responses: {e}"))?; println!("Deleted {count} responses for request {id}"); @@ -137,10 +132,6 @@ fn delete(ctx: &CliContext, id: &str, yes: bool) -> CommandResult { } let count = ctx .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) .map_err(|e| format!("Failed to delete responses: {e}"))?; println!("Deleted {count} responses for workspace {workspace_id}"); diff --git a/crates-tauri/yaak-app-client/src/lib.rs b/crates-tauri/yaak-app-client/src/lib.rs index fc9f4301..957d00a5 100644 --- a/crates-tauri/yaak-app-client/src/lib.rs +++ b/crates-tauri/yaak-app-client/src/lib.rs @@ -1630,10 +1630,11 @@ async fn cmd_delete_all_http_responses( app_handle: AppHandle, window: WebviewWindow, ) -> YaakResult<()> { - Ok(app_handle.db().delete_all_http_responses_for_request( + app_handle.db().delete_all_http_responses_for_request( request_id, &UpdateSource::from_window_label(window.label()), - )?) + )?; + Ok(()) } #[tauri::command] diff --git a/crates/yaak-models/src/queries/http_responses.rs b/crates/yaak-models/src/queries/http_responses.rs index d1282418..3530929f 100644 --- a/crates/yaak-models/src/queries/http_responses.rs +++ b/crates/yaak-models/src/queries/http_responses.rs @@ -30,29 +30,33 @@ impl<'a> ClientDb<'a> { self.find_many(HttpResponseIden::WorkspaceId, workspace_id, limit) } + /// Returns the number of responses deleted. pub fn delete_all_http_responses_for_request( &self, request_id: &str, source: &UpdateSource, - ) -> Result<()> { + ) -> Result { let responses = self.list_http_responses_for_request(request_id, None)?; + let count = responses.len(); for m in responses { self.delete(&m, source)?; } - Ok(()) + Ok(count) } + /// Returns the number of responses deleted. pub fn delete_all_http_responses_for_workspace( &self, workspace_id: &str, source: &UpdateSource, - ) -> Result<()> { + ) -> Result { let responses = self.find_many::(HttpResponseIden::WorkspaceId, workspace_id, None)?; + let count = responses.len(); for m in responses { self.delete(&m, source)?; } - Ok(()) + Ok(count) } pub fn delete_http_response(