From 8995fa42b2b487e9a4ef7b0c13e4f451298e54f7 Mon Sep 17 00:00:00 2001 From: Artem Goncharov Date: Tue, 4 Feb 2025 08:56:29 +0100 Subject: [PATCH] Send response action also for delete events When TUI user invoked delete event we want to know it was completed successfully. For that send a response with request data and explicit Null as response. Change-Id: I844d2d89883481b4a874aadf4aee8156c84cf536 --- codegenerator/templates/rust_tui/impl.rs.j2 | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/codegenerator/templates/rust_tui/impl.rs.j2 b/codegenerator/templates/rust_tui/impl.rs.j2 index e048ae6..1bdac31 100644 --- a/codegenerator/templates/rust_tui/impl.rs.j2 +++ b/codegenerator/templates/rust_tui/impl.rs.j2 @@ -162,8 +162,8 @@ impl ExecuteApiRequest for {{ class_name }} { async fn execute_request( &self, session: &mut AsyncOpenStack, - {{ "_" if operation_type == "delete" else ""}}request: &ApiRequest, - {{ "_" if operation_type == "delete" else ""}}app_tx: &UnboundedSender, + request: &ApiRequest, + app_tx: &UnboundedSender, ) -> Result<(), CloudWorkerError> { let ep = TryInto::::try_into(self)? .build() @@ -176,19 +176,24 @@ impl ExecuteApiRequest for {{ class_name }} { {%- else %} data: ep.query_async(session).await?, {%- endif %} - })?; + })?; {%- elif operation_type == "show" %} app_tx.send(Action::ApiResponseData { request: request.clone(), data: ep.query_async(session).await?, - })?; + })?; {%- elif operation_type in ["action", "set"] %} app_tx.send(Action::ApiResponseData { request: request.clone(), data: ep.query_async(session).await?, - })?; + })?; {%- elif operation_type == "delete" %} ignore(ep).query_async(session).await?; + // Let caller know deletion was completed + app_tx.send(Action::ApiResponseData { + request: request.clone(), + data: serde_json::Value::Null, + })?; {%- endif %} Ok(()) }