|
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