Skip to content

Commit 7db47e1

Browse files
authored
Cosmos: Fix #2824 by forcing 'enable_content_response_on_write' on for read item (#2894)
1 parent 3bd0b02 commit 7db47e1

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

sdk/cosmos/azure_data_cosmos/src/clients/container_client.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,11 @@ impl ContainerClient {
490490
item_id: &str,
491491
options: Option<ItemOptions<'_>>,
492492
) -> azure_core::Result<Response<T>> {
493-
let options = options.unwrap_or_default();
493+
let mut options = options.unwrap_or_default();
494+
495+
// Read APIs should always return the item, ignoring whatever the user set.
496+
options.enable_content_response_on_write = true;
497+
494498
let link = self.items_link.item(item_id);
495499
let url = self.pipeline.url(&link);
496500
let mut req = Request::new(url, Method::Get);

sdk/cosmos/azure_data_cosmos/src/constants.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ pub const POST_TRIGGER_INCLUDE: HeaderName =
3535
HeaderName::from_static("x-ms-documentdb-post-trigger-include");
3636
pub const SESSION_TOKEN: HeaderName = HeaderName::from_static("x-ms-session-token");
3737
pub const INDEXING_DIRECTIVE: HeaderName = HeaderName::from_static("x-ms-indexing-directive");
38+
pub const SUB_STATUS: HeaderName = HeaderName::from_static("x-ms-substatus");
3839

3940
pub const QUERY_CONTENT_TYPE: ContentType = ContentType::from_static("application/query+json");
4041

sdk/cosmos/azure_data_cosmos/src/pipeline/mod.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ impl CosmosPipeline {
6666
resource_link: ResourceLink,
6767
) -> azure_core::Result<BufResponse> {
6868
let ctx = ctx.with_value(resource_link);
69-
self.pipeline.send(&ctx, request).await
69+
let r = self.pipeline.send(&ctx, request).await?;
70+
let r = azure_core::http::check_success(r).await?;
71+
Ok(r)
7072
}
7173

7274
pub async fn send<T>(
@@ -77,7 +79,7 @@ impl CosmosPipeline {
7779
) -> azure_core::Result<Response<T>> {
7880
self.send_raw(ctx, request, resource_link)
7981
.await
80-
.map(|r| r.into())
82+
.map(Into::into)
8183
}
8284

8385
pub fn send_query_request<T: DeserializeOwned + Send>(
@@ -108,6 +110,7 @@ impl CosmosPipeline {
108110
}
109111

110112
let resp = pipeline.send(&ctx, &mut req).await?;
113+
let resp = azure_core::http::check_success(resp).await?;
111114
let page = FeedPage::<T>::from_response(resp).await?;
112115

113116
Ok(page.into())

0 commit comments

Comments
 (0)