diff --git a/syncserver/src/web/handlers.rs b/syncserver/src/web/handlers.rs index 421ad7d6f3..9c63c20330 100644 --- a/syncserver/src/web/handlers.rs +++ b/syncserver/src/web/handlers.rs @@ -318,11 +318,11 @@ pub async fn get_collection( }; let response = if coll.query.full { let result = db.get_bsos(params).await; - finish_get_collection(&coll, db, result).await? + finish_get_collection(&coll, result).await? } else { // Changed to be a Paginated list of BSOs, need to extract IDs from them. let result = db.get_bso_ids(params).await; - finish_get_collection(&coll, db, result).await? + finish_get_collection(&coll, result).await? }; Ok(response) }) @@ -331,7 +331,6 @@ pub async fn get_collection( async fn finish_get_collection( coll: &CollectionRequest, - db: &mut dyn Db, result: Result, DbError>, ) -> Result where @@ -347,14 +346,8 @@ where } })?; - let ts = db - .extract_resource(coll.user_id.clone(), Some(coll.collection.clone()), None) - .await?; - let mut builder = HttpResponse::build(StatusCode::OK); - let resp = builder - .insert_header((X_LAST_MODIFIED, ts.as_header())) - .insert_header((X_WEAVE_RECORDS, result.items.len().to_string())); + let resp = builder.insert_header((X_WEAVE_RECORDS, result.items.len().to_string())); if let Some(offset) = result.offset { resp.insert_header((X_WEAVE_NEXT_OFFSET, offset)); diff --git a/syncserver/src/web/transaction.rs b/syncserver/src/web/transaction.rs index fb2e450d54..4ce0720b52 100644 --- a/syncserver/src/web/transaction.rs +++ b/syncserver/src/web/transaction.rs @@ -139,13 +139,11 @@ impl DbTransactionPool { let mut resp = action(db).await?; - if resp.headers().contains_key(X_LAST_MODIFIED) { - return Ok(resp); - } - // See if we already extracted one and use that if possible - if let Ok(ts_header) = header::HeaderValue::from_str(&resource_ts.as_header()) { - trace!("📝 Setting X-Last-Modfied {:?}", ts_header); + if !resp.headers().contains_key(X_LAST_MODIFIED) + && let Ok(ts_header) = HeaderValue::from_str(&resource_ts.as_header()) + { + trace!("📝 Setting X-Last-Modfied {ts_header:?}"); resp.headers_mut() .insert(header::HeaderName::from_static(X_LAST_MODIFIED), ts_header); }