Skip to content

Commit f105544

Browse files
authored
into_future even more (#674)
* ListTriggers::into_stream * DeleteAttachment::into_future * GetAttachment::into_future * CreateOrReplaceTrigger::into_future * DeleteTrigger::into_future * DeleteUserDefinedFunction::into_future * CreateOrReplaceUDF::into_future * CreateOrReplaceSlug::into_future * CreateReference::into_future
1 parent 5292850 commit f105544

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+1423
-1578
lines changed

sdk/data_cosmos/examples/attachments_00.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,12 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
7575
println!("creating");
7676
let attachment_client = document_client.clone().into_attachment_client("myref06");
7777
let resp = attachment_client
78-
.create_reference()
79-
.consistency_level(ret)
80-
.execute(
78+
.create_reference(
8179
"https://cdn.pixabay.com/photo/2020/01/11/09/30/abstract-background-4756987__340.jpg",
8280
"image/jpeg",
8381
)
82+
.consistency_level(ret)
83+
.into_future()
8484
.await?;
8585
println!("create reference == {:#?}", resp);
8686

@@ -91,7 +91,7 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
9191
let resp = attachment_client
9292
.get()
9393
.consistency_level(session_token)
94-
.execute()
94+
.into_future()
9595
.await?;
9696

9797
println!("get attachment == {:#?}", resp);
@@ -113,18 +113,18 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
113113
let resp_delete = attachment_client
114114
.delete()
115115
.consistency_level(&resp)
116-
.execute()
116+
.into_future()
117117
.await?;
118118
println!("delete attachment == {:#?}", resp_delete);
119119

120120
// slug attachment
121121
println!("creating slug attachment");
122122
let attachment_client = document_client.into_attachment_client("slug00".to_owned());
123123
let resp = attachment_client
124-
.create_slug()
124+
.create_slug("FFFFF".into())
125125
.consistency_level(&resp_delete)
126126
.content_type("text/plain")
127-
.execute("FFFFF")
127+
.into_future()
128128
.await?;
129129

130130
println!("create slug == {:#?}", resp);
@@ -133,7 +133,7 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
133133
let resp_delete = attachment_client
134134
.delete()
135135
.consistency_level(&resp)
136-
.execute()
136+
.into_future()
137137
.await?;
138138
println!("delete attachment == {:#?}", resp_delete);
139139

sdk/data_cosmos/examples/trigger_00.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,25 +62,25 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
6262
let trigger_client = collection_client.clone().into_trigger_client(trigger_name);
6363

6464
let ret = trigger_client
65-
.create_trigger()
66-
.execute("something", TriggerType::Post, TriggerOperation::All)
65+
.create_trigger("something", TriggerType::Post, TriggerOperation::All)
66+
.into_future()
6767
.await?;
68-
println!("Creeate response object:\n{:#?}", ret);
68+
println!("Create response object:\n{:#?}", ret);
6969

7070
let ret = trigger_client
71-
.replace_trigger()
71+
.replace_trigger(TRIGGER_BODY, TriggerType::Post, TriggerOperation::All)
7272
.consistency_level(ret)
73-
.execute(TRIGGER_BODY, TriggerType::Post, TriggerOperation::All)
73+
.into_future()
7474
.await?;
7575
println!("Replace response object:\n{:#?}", ret);
7676

7777
let mut last_session_token: Option<ConsistencyLevel> = None;
7878

79-
let stream = collection_client
79+
let mut stream = collection_client
8080
.list_triggers()
8181
.max_item_count(3)
82-
.consistency_level(&ret);
83-
let mut stream = Box::pin(stream.stream());
82+
.consistency_level(&ret)
83+
.into_stream();
8484
while let Some(ret) = stream.next().await {
8585
let ret = ret.unwrap();
8686
println!(
@@ -93,7 +93,7 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
9393
let ret = trigger_client
9494
.delete_trigger()
9595
.consistency_level(last_session_token.unwrap())
96-
.execute()
96+
.into_future()
9797
.await?;
9898
println!("Delete response object:\n{:#?}", ret);
9999

sdk/data_cosmos/examples/user_defined_function_00.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
4242
.into_user_defined_function_client("test15");
4343

4444
let ret = user_defined_function_client
45-
.create_user_defined_function()
46-
.execute("body")
45+
.create_user_defined_function("body")
46+
.into_future()
4747
.await?;
4848
println!("Creeate response object:\n{:#?}", ret);
4949

@@ -61,9 +61,9 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
6161
}
6262

6363
let ret = user_defined_function_client
64-
.replace_user_defined_function()
64+
.replace_user_defined_function(FN_BODY)
6565
.consistency_level(&ret)
66-
.execute(FN_BODY)
66+
.into_future()
6767
.await?;
6868
println!("Replace response object:\n{:#?}", ret);
6969

@@ -95,7 +95,7 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
9595
let ret = user_defined_function_client
9696
.delete_user_defined_function()
9797
.consistency_level(&ret)
98-
.execute()
98+
.into_future()
9999
.await?;
100100

101101
println!("Delete response object:\n{:#?}", ret);

sdk/data_cosmos/src/clients/attachment_client.rs

Lines changed: 42 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1+
use crate::operations::*;
12
use crate::requests;
23
use crate::resources::ResourceType;
34
use crate::ReadonlyString;
45
use azure_core::HttpClient;
6+
use azure_core::Pipeline;
7+
use azure_core::Request;
8+
use bytes::Bytes;
59

610
use super::*;
711

@@ -50,28 +54,36 @@ impl AttachmentClient {
5054
}
5155

5256
/// Initiate a request to get an attachment.
53-
pub fn get(&self) -> requests::GetAttachmentBuilder<'_, '_> {
54-
requests::GetAttachmentBuilder::new(self)
57+
pub fn get(&self) -> GetAttachmentBuilder {
58+
GetAttachmentBuilder::new(self.clone())
5559
}
5660

5761
/// Initiate a request to delete an attachment.
58-
pub fn delete(&self) -> requests::DeleteAttachmentBuilder<'_, '_> {
59-
requests::DeleteAttachmentBuilder::new(self)
62+
pub fn delete(&self) -> DeleteAttachmentBuilder {
63+
DeleteAttachmentBuilder::new(self.clone())
6064
}
6165

6266
/// Initiate a request to create an attachment with a slug.
63-
pub fn create_slug(&self) -> requests::CreateSlugAttachmentBuilder<'_, '_> {
64-
requests::CreateSlugAttachmentBuilder::new(self)
67+
pub fn create_slug(&self, body: Bytes) -> CreateOrReplaceSlugAttachmentBuilder {
68+
CreateOrReplaceSlugAttachmentBuilder::new(self.clone(), true, body)
6569
}
6670

6771
/// Initiate a request to replace an attachment.
68-
pub fn replace_slug(&self) -> requests::ReplaceSlugAttachmentBuilder<'_, '_> {
69-
requests::ReplaceSlugAttachmentBuilder::new(self)
72+
pub fn replace_slug(&self, body: Bytes) -> CreateOrReplaceSlugAttachmentBuilder {
73+
CreateOrReplaceSlugAttachmentBuilder::new(self.clone(), false, body)
7074
}
7175

72-
/// Initiate a request to create an attachment.
73-
pub fn create_reference(&self) -> requests::CreateReferenceAttachmentBuilder<'_, '_> {
74-
requests::CreateReferenceAttachmentBuilder::new(self)
76+
/// Initiate a request to create ant.
77+
pub fn create_reference<M, C>(
78+
&self,
79+
media: M,
80+
content_type: C,
81+
) -> CreateReferenceAttachmentBuilder
82+
where
83+
M: Into<String>,
84+
C: Into<String>,
85+
{
86+
CreateReferenceAttachmentBuilder::new(self.clone(), media.into(), content_type.into())
7587
}
7688

7789
/// Initiate a request to replace an attachment.
@@ -84,16 +96,15 @@ impl AttachmentClient {
8496
self.cosmos_client().http_client()
8597
}
8698

87-
pub(crate) fn prepare_request(&self, method: http::Method) -> http::request::Builder {
88-
self.cosmos_client().prepare_request(
99+
pub(crate) fn prepare_pipeline(&self, method: http::Method) -> Request {
100+
self.cosmos_client().prepare_request_pipeline(
89101
&format!(
90102
"dbs/{}/colls/{}/docs/{}/attachments",
91103
self.database_client().database_name(),
92104
self.collection_client().collection_name(),
93105
self.document_client().document_name(),
94106
),
95107
method,
96-
ResourceType::Attachments,
97108
)
98109
}
99110

@@ -113,4 +124,21 @@ impl AttachmentClient {
113124
ResourceType::Attachments,
114125
)
115126
}
127+
128+
pub(crate) fn prepare_pipeline_with_attachment_name(&self, method: http::Method) -> Request {
129+
self.cosmos_client().prepare_request_pipeline(
130+
&format!(
131+
"dbs/{}/colls/{}/docs/{}/attachments/{}",
132+
self.database_client().database_name(),
133+
self.collection_client().collection_name(),
134+
self.document_client().document_name(),
135+
self.attachment_name()
136+
),
137+
method,
138+
)
139+
}
140+
141+
pub(crate) fn pipeline(&self) -> &Pipeline {
142+
self.cosmos_client().pipeline()
143+
}
116144
}

sdk/data_cosmos/src/clients/collection_client.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ impl CollectionClient {
8989
}
9090

9191
/// list triggers in a collection
92-
pub fn list_triggers(&self) -> requests::ListTriggersBuilder<'_, '_> {
93-
requests::ListTriggersBuilder::new(self)
92+
pub fn list_triggers(&self) -> ListTriggersBuilder {
93+
ListTriggersBuilder::new(self.clone())
9494
}
9595

9696
/// list the partition key ranges in a collection

sdk/data_cosmos/src/clients/trigger_client.rs

Lines changed: 50 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
use super::*;
2-
use crate::resources::ResourceType;
3-
use crate::{requests, ReadonlyString};
4-
use azure_core::HttpClient;
2+
use crate::operations::*;
3+
use crate::resources::trigger::{TriggerOperation, TriggerType};
4+
use crate::ReadonlyString;
5+
use azure_core::{Pipeline, Request};
56

67
/// A client for Cosmos trigger resources.
78
#[derive(Debug, Clone)]
@@ -43,49 +44,76 @@ impl TriggerClient {
4344
}
4445

4546
/// Create a trigger
46-
pub fn create_trigger(&self) -> requests::CreateOrReplaceTriggerBuilder<'_> {
47-
requests::CreateOrReplaceTriggerBuilder::new(self, true)
47+
pub fn create_trigger<B, T, O>(
48+
&self,
49+
body: B,
50+
trigger_type: T,
51+
trigger_operation: O,
52+
) -> CreateOrReplaceTriggerBuilder
53+
where
54+
B: Into<String>,
55+
T: Into<TriggerType>,
56+
O: Into<TriggerOperation>,
57+
{
58+
CreateOrReplaceTriggerBuilder::new(
59+
self.clone(),
60+
true,
61+
body.into(),
62+
trigger_type.into(),
63+
trigger_operation.into(),
64+
)
4865
}
4966

5067
/// Replace a trigger
51-
pub fn replace_trigger(&self) -> requests::CreateOrReplaceTriggerBuilder<'_> {
52-
requests::CreateOrReplaceTriggerBuilder::new(self, false)
68+
pub fn replace_trigger<B, T, O>(
69+
&self,
70+
body: B,
71+
trigger_type: T,
72+
trigger_operation: O,
73+
) -> CreateOrReplaceTriggerBuilder
74+
where
75+
B: Into<String>,
76+
T: Into<TriggerType>,
77+
O: Into<TriggerOperation>,
78+
{
79+
CreateOrReplaceTriggerBuilder::new(
80+
self.clone(),
81+
false,
82+
body.into(),
83+
trigger_type.into(),
84+
trigger_operation.into(),
85+
)
5386
}
5487

5588
/// Delete a trigger
56-
pub fn delete_trigger(&self) -> requests::DeleteTriggerBuilder<'_, '_> {
57-
requests::DeleteTriggerBuilder::new(self)
89+
pub fn delete_trigger(&self) -> DeleteTriggerBuilder {
90+
DeleteTriggerBuilder::new(self.clone())
5891
}
5992

60-
pub(crate) fn http_client(&self) -> &dyn HttpClient {
61-
self.cosmos_client().http_client()
62-
}
63-
64-
pub(crate) fn prepare_request_with_trigger_name(
65-
&self,
66-
method: http::Method,
67-
) -> http::request::Builder {
68-
self.cosmos_client().prepare_request(
93+
pub(crate) fn prepare_pipeline_with_trigger_name(&self, method: http::Method) -> Request {
94+
self.cosmos_client().prepare_request_pipeline(
6995
&format!(
7096
"dbs/{}/colls/{}/triggers/{}",
7197
self.database_client().database_name(),
7298
self.collection_client().collection_name(),
7399
self.trigger_name()
74100
),
75101
method,
76-
ResourceType::Triggers,
77102
)
78103
}
79104

80-
pub(crate) fn prepare_request(&self, method: http::Method) -> http::request::Builder {
81-
self.cosmos_client().prepare_request(
105+
pub(crate) fn prepare_pipeline(&self, method: http::Method) -> Request {
106+
self.cosmos_client().prepare_request_pipeline(
82107
&format!(
83108
"dbs/{}/colls/{}/triggers",
84109
self.database_client().database_name(),
85110
self.collection_client().collection_name(),
86111
),
87112
method,
88-
ResourceType::Triggers,
89113
)
90114
}
115+
116+
pub(crate) fn pipeline(&self) -> &Pipeline {
117+
self.cosmos_client().pipeline()
118+
}
91119
}

0 commit comments

Comments
 (0)