Skip to content

Commit 06f0ab4

Browse files
committed
Regenerate client after renaming StorageServiceStats to QueueServiceStats. Updated QueueClient::send_message to return Result<Response<SentMessage, XmlFormat>> in place of Result<Response<Option<SentMessage>, XmlFormat>>
1 parent 5b3e38a commit 06f0ab4

File tree

8 files changed

+66
-72
lines changed

8 files changed

+66
-72
lines changed

sdk/storage/azure_storage_queue/samples/queue_client.rs

Lines changed: 27 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use azure_storage_queue::{
2121
async fn send_message(
2222
queue_client: &QueueClient,
2323
message: &str,
24-
) -> Result<Response<Option<SentMessage>, XmlFormat>, Error> {
24+
) -> Result<Response<SentMessage, XmlFormat>, Error> {
2525
let queue_message = QueueMessage {
2626
message_text: Some(message.to_owned()),
2727
};
@@ -40,18 +40,15 @@ async fn send_and_delete_message(
4040
if let Ok(response) = result {
4141
let message = response.into_body().await?;
4242

43-
if let Some(message) = message {
44-
if let (Some(message_id), Some(pop_receipt)) = (message.message_id, message.pop_receipt)
45-
{
46-
println!(
47-
"Deleting message with ID: {} and pop receipt: {}",
48-
message_id, pop_receipt
49-
);
50-
let delete_result = queue_client
51-
.delete_message(&message_id, &pop_receipt, None)
52-
.await;
53-
log_operation_result(&delete_result, "delete_message");
54-
}
43+
if let (Some(message_id), Some(pop_receipt)) = (message.message_id, message.pop_receipt) {
44+
println!(
45+
"Deleting message with ID: {} and pop receipt: {}",
46+
message_id, pop_receipt
47+
);
48+
let delete_result = queue_client
49+
.delete_message(&message_id, &pop_receipt, None)
50+
.await;
51+
log_operation_result(&delete_result, "delete_message");
5552
}
5653
}
5754

@@ -67,26 +64,23 @@ async fn send_and_update_message(
6764
if let Ok(response) = result {
6865
let message = response.into_body().await?;
6966

70-
if let Some(message) = message {
71-
if let (Some(message_id), Some(pop_receipt)) = (message.message_id, message.pop_receipt)
72-
{
73-
println!(
74-
"Updating message with ID: {} and pop receipt: {}",
75-
message_id, pop_receipt
76-
);
77-
let queue_message = QueueMessage {
78-
message_text: Some("Updated message text from Rust".to_string()),
79-
};
80-
let update_option = QueueClientUpdateOptions {
81-
// Serialize the message text as bytes for the update
82-
queue_message: Some(queue_message.try_into()?),
83-
..Default::default()
84-
};
85-
let update_result = queue_client
86-
.update_message(&message_id.clone(), &pop_receipt, 50, Some(update_option))
87-
.await;
88-
log_operation_result(&update_result, "update_message");
89-
}
67+
if let (Some(message_id), Some(pop_receipt)) = (message.message_id, message.pop_receipt) {
68+
println!(
69+
"Updating message with ID: {} and pop receipt: {}",
70+
message_id, pop_receipt
71+
);
72+
let queue_message = QueueMessage {
73+
message_text: Some("Updated message text from Rust".to_string()),
74+
};
75+
let update_option = QueueClientUpdateOptions {
76+
// Serialize the message text as bytes for the update
77+
queue_message: Some(queue_message.try_into()?),
78+
..Default::default()
79+
};
80+
let update_result = queue_client
81+
.update_message(&message_id.clone(), &pop_receipt, 50, Some(update_option))
82+
.await;
83+
log_operation_result(&update_result, "update_message");
9084
}
9185
}
9286

sdk/storage/azure_storage_queue/src/clients/queue_client.rs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -211,15 +211,18 @@ impl QueueClient {
211211
///
212212
/// # Errors
213213
///
214-
/// Returns an error if the queue doesn't exist or if the request fails
214+
/// Returns an error if the queue doesn't exist, if no message was sent, or if the request fails
215215
pub async fn send_message(
216216
&self,
217217
queue_message: RequestContent<QueueMessage, XmlFormat>,
218218
options: Option<QueueClientSendMessageOptions<'_>>,
219-
) -> Result<Response<Option<SentMessage>, XmlFormat>> {
219+
) -> Result<Response<SentMessage, XmlFormat>> {
220220
let response = self.client.send_message(queue_message, options).await?;
221221

222-
Self::extract_first_message(response, |list: &ListOfSentMessage| list.items.clone()).await
222+
Self::extract_first_message(response, |list: &ListOfSentMessage| {
223+
list.items.clone().unwrap_or_default()
224+
})
225+
.await
223226
}
224227

225228
/// Deletes a specific message from the queue.
@@ -325,8 +328,8 @@ impl QueueClient {
325328
/// Helper function to extract the first message from a list response and convert it to a single message response
326329
async fn extract_first_message<T, U>(
327330
response: Response<T, XmlFormat>,
328-
extract_fn: impl Fn(&T) -> Option<Vec<U>>,
329-
) -> Result<Response<Option<U>, XmlFormat>>
331+
extract_fn: impl Fn(&T) -> Vec<U>,
332+
) -> Result<Response<U, XmlFormat>>
330333
where
331334
T: serde::de::DeserializeOwned,
332335
U: serde::Serialize + Clone,
@@ -335,19 +338,16 @@ impl QueueClient {
335338
let headers = response.headers().clone();
336339
let message_list = response.into_body().await?;
337340

338-
if let Some(messages) = extract_fn(&message_list) {
339-
if let Some(first_message) = messages.into_iter().next() {
340-
let xml_body = xml::to_xml(&first_message)?;
341-
let raw_response = RawResponse::from_bytes(status, headers, xml_body);
342-
Ok(raw_response.into())
343-
} else {
344-
let raw_response =
345-
RawResponse::from_bytes(status, headers, Bytes::from_static(&[]));
346-
Ok(raw_response.into())
347-
}
348-
} else {
349-
let raw_response = RawResponse::from_bytes(status, headers, Bytes::from_static(&[]));
350-
Ok(raw_response.into())
351-
}
341+
let messages = extract_fn(&message_list);
342+
let first_message = messages.into_iter().next().ok_or_else(|| {
343+
azure_core::Error::message(
344+
azure_core::error::ErrorKind::DataConversion,
345+
"No messages found in the response",
346+
)
347+
})?;
348+
349+
let xml_body = xml::to_xml(&first_message)?;
350+
let raw_response = RawResponse::from_bytes(status, headers, xml_body);
351+
Ok(raw_response.into())
352352
}
353353
}

sdk/storage/azure_storage_queue/src/clients/queue_service_client.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ impl QueueServiceClient {
198198
pub async fn get_statistics(
199199
&self,
200200
options: Option<QueueServiceClientGetStatisticsOptions<'_>>,
201-
) -> Result<Response<StorageServiceStats, XmlFormat>> {
201+
) -> Result<Response<QueueServiceStats, XmlFormat>> {
202202
self.client.get_statistics(options).await
203203
}
204204
}

sdk/storage/azure_storage_queue/src/generated/clients/queue_service_client.rs

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/storage/azure_storage_queue/src/generated/models/header_traits.rs

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/storage/azure_storage_queue/src/generated/models/pub_models.rs

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk/storage/azure_storage_queue/tests/queue_client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ async fn test_delete_message(ctx: TestContext) -> Result<()> {
192192
)
193193
.await?;
194194

195-
let send_message = sent_message_response.into_body().await?.unwrap();
195+
let send_message = sent_message_response.into_body().await?;
196196

197197
let delete_response = queue_client
198198
.delete_message(
@@ -235,7 +235,7 @@ async fn test_update_message(ctx: TestContext) -> Result<()> {
235235
)
236236
.await?;
237237

238-
let sent_message = send_message_response.into_body().await?.unwrap();
238+
let sent_message = send_message_response.into_body().await?;
239239

240240
// Update the message in the queue
241241
let option = Some(QueueClientUpdateOptions {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
directory: specification/storage/Microsoft.QueueStorage
2-
commit: 32a39e8db24d3042d9c7a786efd2569690537138
2+
commit: 7d60037de342e7897ca3248aa98a39d3036ee214
33
repo: Azure/azure-rest-api-specs
44
additionalDirectories:

0 commit comments

Comments
 (0)