openiap_proto/
base.rs

1#![warn(missing_docs)]
2
3use super::protos::{
4    Envelope, GetDocumentVersionRequest, CustomCommandRequest, ListCollectionsRequest, DropCollectionRequest, CreateCollectionRequest,
5    GetIndexesRequest, CreateIndexRequest, DropIndexRequest, EnsureCustomerRequest, InvokeOpenRpaRequest, CreateWorkflowInstanceRequest,
6    Customer, StripeCustomer
7};
8
9impl GetDocumentVersionRequest {
10    /// Creates a new `GetDocumentVersionRequest` with the given `collectionname` and `documentid`.
11    pub fn byid(collectionname: &str, documentid: &str) -> Self {
12        Self {
13            collectionname: collectionname.to_string(),
14            id: documentid.to_string(),
15            decrypt: true,
16            version: 0,
17        }
18    }
19    /// Creates a new `GetDocumentVersionRequest` with the given `collectionname`, `documentid` and `version`.
20    pub fn byversion(collectionname: &str, documentid: &str, version : i32) -> Self {
21        Self {
22            collectionname: collectionname.to_string(),
23            id: documentid.to_string(),
24            decrypt: true,
25            version,
26        }
27    }
28    /// Converts the `GetDocumentVersionRequest` to an `Envelope`.
29    pub fn to_envelope(&self) -> Envelope {
30        let any_message = prost_types::Any {
31            type_url: "type.googleapis.com/openiap.GetDocumentVersionRequest".to_string(),
32            value: {
33                let mut buf = Vec::new();
34                prost::Message::encode(self, &mut buf).unwrap_or(());
35                buf
36            },
37        };
38        Envelope {
39            command: "getdocumentversion".into(),
40            data: Some(any_message.clone()),
41            ..Default::default() 
42        }
43    }
44}
45
46impl CustomCommandRequest {
47    /// Creates a new `CustomCommandRequest` with the given `command`.
48    pub fn bycommand(command: &str) -> Self {
49        Self {
50            command: command.to_string(),
51            data: "".to_string(),
52            id: "".to_string(),
53            name: "".to_string(), 
54        }
55    }
56    /// Creates a new `CustomCommandRequest` with the given `command` and `data`.
57    pub fn bydata(command: &str, data: &str) -> Self {
58        Self {
59            command: command.to_string(),
60            data: data.to_string(),
61            id: "".to_string(),
62            name: "".to_string(), 
63        }
64    }
65    /// Converts the `CustomCommandRequest` to an `Envelope`.
66    pub fn to_envelope(&self) -> Envelope {
67        let any_message = prost_types::Any {
68            type_url: "type.googleapis.com/openiap.CustomCommandRequest".to_string(),
69            value: {
70                let mut buf = Vec::new();
71                prost::Message::encode(self, &mut buf).unwrap_or(());
72                buf
73            },
74        };
75        Envelope {
76            command: "customcommand".into(),
77            data: Some(any_message.clone()),
78            ..Default::default() 
79        }
80    }
81}
82impl ListCollectionsRequest {
83    /// Creates a new `ListCollectionsRequest` with the given `name`.
84    pub fn new(includehist: bool) -> Self {
85        Self {
86            includehist,
87        }
88    }
89    /// Converts the `ListCollectionsRequest` to an `Envelope`.
90    pub fn to_envelope(&self) -> Envelope {
91        let any_message = prost_types::Any {
92            type_url: "type.googleapis.com/openiap.ListCollectionsRequest".to_string(),
93            value: {
94                let mut buf = Vec::new();
95                prost::Message::encode(self, &mut buf).unwrap_or(());
96                buf
97            },
98        };
99        Envelope {
100            command: "listcollections".into(),
101            data: Some(any_message.clone()),
102            ..Default::default() 
103        }
104    }
105}
106impl DropCollectionRequest {
107    /// Creates a new `DropCollectionRequest` with the given `name`.
108    pub fn byname(collectionname: &str) -> Self {
109        Self {
110            collectionname: collectionname.to_string(),
111        }
112    }
113    /// Converts the `DropCollectionRequest` to an `Envelope`.
114    pub fn to_envelope(&self) -> Envelope {
115        let any_message = prost_types::Any {
116            type_url: "type.googleapis.com/openiap.DropCollectionRequest".to_string(),
117            value: {
118                let mut buf = Vec::new();
119                prost::Message::encode(self, &mut buf).unwrap_or(());
120                buf
121            },
122        };
123        Envelope {
124            command: "dropcollection".into(),
125            data: Some(any_message.clone()),
126            ..Default::default() 
127        }
128    }
129}
130impl CreateCollectionRequest {
131    /// Creates a new `CreateCollectionRequest` with the given `name`.
132    pub fn byname(collectionname: &str) -> Self {
133        Self {
134            collectionname: collectionname.to_string(),
135            ..Default::default()
136        }
137    }
138    /// Creates a new `CreateCollectionRequest` with the given `name` and `expire_after_seconds`.
139    pub fn with_ttl(collectionname: &str, ttl: i32) -> Self {
140        Self {
141            collectionname: collectionname.to_string(),
142            expire_after_seconds: ttl,
143            ..Default::default()
144        }
145    }
146    /// Creates a new `CreateCollectionRequest` for a time series collection
147    pub fn timeseries(collectionname: &str, timefield: &str, granularity: &str) -> Self {
148        Self {
149            collectionname: collectionname.to_string(),
150            timeseries: Some(
151                crate::protos::ColTimeseries {
152                    time_field: timefield.to_string(),
153                    granularity: granularity.to_string(),
154                    meta_field: "".to_string(),
155                },                                
156            ),            
157            ..Default::default()
158        }
159    }
160    /// Creates a new `CreateCollectionRequest` for a time series collection
161    pub fn timeseries_with_meta(collectionname: &str, timefield: &str, meta_field: &str, granularity: &str) -> Self {
162        Self {
163            collectionname: collectionname.to_string(),
164            timeseries: Some(
165                crate::protos::ColTimeseries {
166                    time_field: timefield.to_string(),
167                    granularity: granularity.to_string(),
168                    meta_field: meta_field.to_string(),
169                },                                
170            ),            
171            ..Default::default()
172        }
173    }
174    /// Converts the `CreateCollectionRequest` to an `Envelope`.
175    pub fn to_envelope(&self) -> Envelope {
176        let any_message = prost_types::Any {
177            type_url: "type.googleapis.com/openiap.CreateCollectionRequest".to_string(),
178            value: {
179                let mut buf = Vec::new();
180                prost::Message::encode(self, &mut buf).unwrap_or(());
181                buf
182            },
183        };
184        Envelope {
185            command: "createcollection".into(),
186            data: Some(any_message.clone()),
187            ..Default::default() 
188        }
189    }
190}
191impl GetIndexesRequest {
192    /// Creates a new `GetIndexesRequest` with the given `collectionname`.
193    pub fn bycollectionname(collectionname: &str) -> Self {
194        Self {
195            collectionname: collectionname.to_string(),
196        }
197    }
198    /// Converts the `GetIndexesRequest` to an `Envelope`.
199    pub fn to_envelope(&self) -> Envelope {
200        let any_message = prost_types::Any {
201            type_url: "type.googleapis.com/openiap.GetIndexesRequest".to_string(),
202            value: {
203                let mut buf = Vec::new();
204                prost::Message::encode(self, &mut buf).unwrap_or(());
205                buf
206            },
207        };
208        Envelope {
209            command: "getindexes".into(),
210            data: Some(any_message.clone()),
211            ..Default::default() 
212        }
213    }
214}
215impl CreateIndexRequest {
216    /// Creates a new `CreateIndexRequest` with the given `collectionname` and `index_def`.
217    pub fn bycollectionname(collectionname: &str, index_def: &str) -> Self {
218        Self {
219            collectionname: collectionname.to_string(),
220            index: index_def.to_string(),
221            options: "".to_string(),
222            name: "".to_string(),
223        }
224    }
225    /// Converts the `CreateIndexRequest` to an `Envelope`.
226    pub fn to_envelope(&self) -> Envelope {
227        let any_message = prost_types::Any {
228            type_url: "type.googleapis.com/openiap.CreateIndexRequest".to_string(),
229            value: {
230                let mut buf = Vec::new();
231                prost::Message::encode(self, &mut buf).unwrap_or(());
232                buf
233            },
234        };
235        Envelope {
236            command: "createindex".into(),
237            data: Some(any_message.clone()),
238            ..Default::default() 
239        }
240    }
241}
242impl DropIndexRequest {
243    /// Creates a new `DropIndexRequest` with the given `collectionname` and `indexname`.
244    pub fn bycollectionname(collectionname: &str, indexname: &str) -> Self {
245        Self {
246            collectionname: collectionname.to_string(),
247            name: indexname.to_string(),
248        }
249    }
250    /// Converts the `DropIndexRequest` to an `Envelope`.
251    pub fn to_envelope(&self) -> Envelope {
252        let any_message = prost_types::Any {
253            type_url: "type.googleapis.com/openiap.DropIndexRequest".to_string(),
254            value: {
255                let mut buf = Vec::new();
256                prost::Message::encode(self, &mut buf).unwrap_or(());
257                buf
258            },
259        };
260        Envelope {
261            command: "dropindex".into(),
262            data: Some(any_message.clone()),
263            ..Default::default() 
264        }
265    }
266}
267impl Customer {
268    /// Creates a new `Customer` with the given `name`.
269    pub fn byname(name: &str) -> Self {
270        Self {
271            name: name.to_string(),
272            ..Default::default()
273        }
274    }
275    /// Creates a new `Customer` with userid as owner (use if not logged in user)
276    pub fn byuserid(name: &str, userid: &str) -> Self {
277        Self {
278            name: name.to_string(),
279            userid: userid.to_string(),
280            ..Default::default()
281        }
282    }
283    /// Converts the `Customer` to an `Envelope`.
284    pub fn to_envelope(&self) -> Envelope {
285        let any_message = prost_types::Any {
286            type_url: "type.googleapis.com/openiap.Customer".to_string(),
287            value: {
288                let mut buf = Vec::new();
289                prost::Message::encode(self, &mut buf).unwrap_or(());
290                buf
291            },
292        };
293        Envelope {
294            command: "customer".into(),
295            data: Some(any_message.clone()),
296            ..Default::default() 
297        }
298    }
299    
300}
301impl StripeCustomer {
302    /// Creates a new `StripeCustomer` with the given `name`.
303    pub fn byname(name: &str, email: &str) -> Self {
304        Self {
305            name: name.to_string(),
306            email: email.to_string(),
307            ..Default::default()
308        }
309    }
310    /// Converts the `StripeCustomer` to an `Envelope`.
311    pub fn to_envelope(&self) -> Envelope {
312        let any_message = prost_types::Any {
313            type_url: "type.googleapis.com/openiap.StripeCustomer".to_string(),
314            value: {
315                let mut buf = Vec::new();
316                prost::Message::encode(self, &mut buf).unwrap_or(());
317                buf
318            },
319        };
320        Envelope {
321            command: "stripecustomer".into(),
322            data: Some(any_message.clone()),
323            ..Default::default() 
324        }
325    }
326    
327}
328impl EnsureCustomerRequest {
329    /// Creates a new `EnsureCustomerRequest` with the given `customerid`.
330    pub fn new(customer: Option<Customer>, ensureas: &str, stripe: Option<StripeCustomer>) -> Self {
331        Self {
332            customer,
333            ensureas: ensureas.to_string(),
334            stripe
335        }
336    }
337    /// Converts the `EnsureCustomerRequest` to an `Envelope`.
338    pub fn to_envelope(&self) -> Envelope {
339        let any_message = prost_types::Any {
340            type_url: "type.googleapis.com/openiap.EnsureCustomerRequest".to_string(),
341            value: {
342                let mut buf = Vec::new();
343                prost::Message::encode(self, &mut buf).unwrap_or(());
344                buf
345            },
346        };
347        Envelope {
348            command: "ensurecustomer".into(),
349            data: Some(any_message.clone()),
350            ..Default::default() 
351        }
352    }
353    
354}
355
356impl InvokeOpenRpaRequest {
357    /// Creates a new `InvokeOpenRpaRequest` with the given `robotid`, `workflowid` and `payload`.
358    /// if rpc is true, will not return until workflow has completed
359    pub fn new(robotid: &str, workflowid: &str, payload: &str, rpc: bool) -> Self {
360        Self {
361            robotid: robotid.to_string(),
362            workflowid: workflowid.to_string(),
363            payload: payload.to_string(),
364            rpc
365        }
366    }
367    /// Converts the `InvokeOpenRpaRequest` to an `Envelope`.
368    pub fn to_envelope(&self) -> Envelope {
369        let any_message = prost_types::Any {
370            type_url: "type.googleapis.com/openiap.InvokeOpenRpaRequest".to_string(),
371            value: {
372                let mut buf = Vec::new();
373                prost::Message::encode(self, &mut buf).unwrap_or(());
374                buf
375            },
376        };
377        Envelope {
378            command: "invokeopenrpa".into(),
379            data: Some(any_message.clone()),
380            ..Default::default() 
381        }
382    }
383    
384}
385impl  CreateWorkflowInstanceRequest {
386    /// Converts the `CreateWorkflowInstanceRequest` to an `Envelope`.
387    pub fn to_envelope(&self) -> Envelope {
388        let any_message = prost_types::Any {
389            type_url: "type.googleapis.com/openiap.CreateWorkflowInstanceRequest".to_string(),
390            value: {
391                let mut buf = Vec::new();
392                prost::Message::encode(self, &mut buf).unwrap_or(());
393                buf
394            },
395        };
396        Envelope {
397            command: "createworkflowinstance".into(),
398            data: Some(any_message.clone()),
399            ..Default::default() 
400        }
401    }
402    
403}