|
1 | 1 | use crate::render::{AnyRenderBodyContext, HeaderContext, PageContext};
|
2 | 2 | use crate::webserver::content_security_policy::ContentSecurityPolicy;
|
3 |
| -use crate::webserver::database::execute_queries::{rollback_transaction, stop_at_first_error}; |
| 3 | +use crate::webserver::database::execute_queries::stop_at_first_error; |
4 | 4 | use crate::webserver::database::{execute_queries::stream_query_results_with_conn, DbItem};
|
5 | 5 | use crate::webserver::http_request_info::extract_request_info;
|
6 | 6 | use crate::webserver::ErrorWithStatus;
|
@@ -173,35 +173,32 @@ async fn render_sql(
|
173 | 173 | let database_entries_stream =
|
174 | 174 | stream_query_results_with_conn(&sql_file, &mut req_param, &mut conn);
|
175 | 175 | let database_entries_stream = stop_at_first_error(database_entries_stream);
|
176 |
| - { |
177 |
| - let response_with_writer = build_response_header_and_stream( |
178 |
| - Arc::clone(&app_state), |
| 176 | + let response_with_writer = build_response_header_and_stream( |
| 177 | + Arc::clone(&app_state), |
| 178 | + database_entries_stream, |
| 179 | + request_context, |
| 180 | + ) |
| 181 | + .await; |
| 182 | + match response_with_writer { |
| 183 | + Ok(ResponseWithWriter::RenderStream { |
| 184 | + http_response, |
| 185 | + renderer, |
179 | 186 | database_entries_stream,
|
180 |
| - request_context, |
181 |
| - ) |
182 |
| - .await; |
183 |
| - match response_with_writer { |
184 |
| - Ok(ResponseWithWriter::RenderStream { |
185 |
| - http_response, |
186 |
| - renderer, |
187 |
| - database_entries_stream, |
188 |
| - }) => { |
189 |
| - resp_send |
190 |
| - .send(http_response) |
191 |
| - .unwrap_or_else(|e| log::error!("could not send headers {e:?}")); |
192 |
| - stream_response(database_entries_stream, renderer).await; |
193 |
| - } |
194 |
| - Ok(ResponseWithWriter::FinishedResponse { http_response }) => { |
195 |
| - resp_send |
196 |
| - .send(http_response) |
197 |
| - .unwrap_or_else(|e| log::error!("could not send headers {e:?}")); |
198 |
| - } |
199 |
| - Err(err) => { |
200 |
| - send_anyhow_error(&err, resp_send, app_state.config.environment); |
201 |
| - } |
| 187 | + }) => { |
| 188 | + resp_send |
| 189 | + .send(http_response) |
| 190 | + .unwrap_or_else(|e| log::error!("could not send headers {e:?}")); |
| 191 | + stream_response(database_entries_stream, renderer).await; |
| 192 | + } |
| 193 | + Ok(ResponseWithWriter::FinishedResponse { http_response }) => { |
| 194 | + resp_send |
| 195 | + .send(http_response) |
| 196 | + .unwrap_or_else(|e| log::error!("could not send headers {e:?}")); |
| 197 | + } |
| 198 | + Err(err) => { |
| 199 | + send_anyhow_error(&err, resp_send, app_state.config.environment); |
202 | 200 | }
|
203 | 201 | }
|
204 |
| - rollback_transaction(&mut conn).await; |
205 | 202 | });
|
206 | 203 | resp_recv.await.map_err(ErrorInternalServerError)
|
207 | 204 | }
|
|
0 commit comments