Skip to content

Commit 69db999

Browse files
committed
feat: kill get_collection's redundant extract_resource call
as transaction_http always calls this for us for X-Last-Modified Issue STOR-579
1 parent b28317e commit 69db999

2 files changed

Lines changed: 7 additions & 16 deletions

File tree

syncserver/src/web/handlers.rs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -318,11 +318,11 @@ pub async fn get_collection(
318318
};
319319
let response = if coll.query.full {
320320
let result = db.get_bsos(params).await;
321-
finish_get_collection(&coll, db, result).await?
321+
finish_get_collection(&coll, result).await?
322322
} else {
323323
// Changed to be a Paginated list of BSOs, need to extract IDs from them.
324324
let result = db.get_bso_ids(params).await;
325-
finish_get_collection(&coll, db, result).await?
325+
finish_get_collection(&coll, result).await?
326326
};
327327
Ok(response)
328328
})
@@ -331,7 +331,6 @@ pub async fn get_collection(
331331

332332
async fn finish_get_collection<T>(
333333
coll: &CollectionRequest,
334-
db: &mut dyn Db<Error = DbError>,
335334
result: Result<Paginated<T>, DbError>,
336335
) -> Result<HttpResponse, DbError>
337336
where
@@ -347,14 +346,8 @@ where
347346
}
348347
})?;
349348

350-
let ts = db
351-
.extract_resource(coll.user_id.clone(), Some(coll.collection.clone()), None)
352-
.await?;
353-
354349
let mut builder = HttpResponse::build(StatusCode::OK);
355-
let resp = builder
356-
.insert_header((X_LAST_MODIFIED, ts.as_header()))
357-
.insert_header((X_WEAVE_RECORDS, result.items.len().to_string()));
350+
let resp = builder.insert_header((X_WEAVE_RECORDS, result.items.len().to_string()));
358351

359352
if let Some(offset) = result.offset {
360353
resp.insert_header((X_WEAVE_NEXT_OFFSET, offset));

syncserver/src/web/transaction.rs

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,11 @@ impl DbTransactionPool {
139139

140140
let mut resp = action(db).await?;
141141

142-
if resp.headers().contains_key(X_LAST_MODIFIED) {
143-
return Ok(resp);
144-
}
145-
146142
// See if we already extracted one and use that if possible
147-
if let Ok(ts_header) = header::HeaderValue::from_str(&resource_ts.as_header()) {
148-
trace!("📝 Setting X-Last-Modfied {:?}", ts_header);
143+
if !resp.headers().contains_key(X_LAST_MODIFIED)
144+
&& let Ok(ts_header) = HeaderValue::from_str(&resource_ts.as_header())
145+
{
146+
trace!("📝 Setting X-Last-Modfied {ts_header:?}");
149147
resp.headers_mut()
150148
.insert(header::HeaderName::from_static(X_LAST_MODIFIED), ts_header);
151149
}

0 commit comments

Comments
 (0)