Skip to content

Commit 9a82ea2

Browse files
committed
feat: added query parameters to aw-client-rust's get_events, fixed clippy complaints
1 parent 602ddb2 commit 9a82ea2

File tree

3 files changed

+40
-18
lines changed

3 files changed

+40
-18
lines changed

aw-client-rust/src/lib.rs

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
extern crate aw_models;
12
extern crate gethostname;
23
extern crate reqwest;
3-
#[macro_use]
4-
extern crate aw_models;
54
extern crate serde_json;
65

76
use std::collections::HashMap;
87
use std::vec::Vec;
98

9+
use chrono::{DateTime, Utc};
1010
use serde_json::Map;
1111

1212
pub use aw_models::{Bucket, BucketMetadata, Event};
@@ -67,15 +67,37 @@ impl AwClient {
6767
Ok(())
6868
}
6969

70-
pub fn get_events(&self, bucketname: &str) -> Result<Vec<Event>, reqwest::Error> {
71-
let url = format!("{}/api/0/buckets/{}/events", self.baseurl, bucketname);
72-
Ok(self.client.get(&url).send()?.json()?)
70+
pub fn get_events(
71+
&self,
72+
bucketname: &str,
73+
start: Option<DateTime<Utc>>,
74+
stop: Option<DateTime<Utc>>,
75+
limit: Option<u64>,
76+
) -> Result<Vec<Event>, reqwest::Error> {
77+
let mut url = reqwest::Url::parse(
78+
format!("{}/api/0/buckets/{}/events", self.baseurl, bucketname).as_str(),
79+
)
80+
.unwrap();
81+
82+
// Must be a better way to build URLs
83+
if let Some(s) = start {
84+
url.query_pairs_mut()
85+
.append_pair("start", s.to_rfc3339().as_str());
86+
};
87+
if let Some(s) = stop {
88+
url.query_pairs_mut()
89+
.append_pair("end", s.to_rfc3339().as_str());
90+
};
91+
if let Some(s) = limit {
92+
url.query_pairs_mut()
93+
.append_pair("limit", s.to_string().as_str());
94+
};
95+
self.client.get(url).send()?.json()
7396
}
7497

7598
pub fn insert_event(&self, bucketname: &str, event: &Event) -> Result<(), reqwest::Error> {
7699
let url = format!("{}/api/0/buckets/{}/events", self.baseurl, bucketname);
77-
let mut eventlist = Vec::new();
78-
eventlist.push(event.clone());
100+
let eventlist = vec![event.clone()];
79101
self.client.post(&url).json(&eventlist).send()?;
80102
Ok(())
81103
}

aw-server/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ fn main() {
3131
opts.optflag("h", "help", "print this help menu");
3232
let matches = match opts.parse(&args[1..]) {
3333
Ok(m) => m,
34-
Err(f) => panic!(f.to_string()),
34+
Err(f) => panic!("{}", f.to_string()),
3535
};
3636
if matches.opt_present("h") {
3737
print_usage(&program, opts);

aw-sync/src/sync.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,9 @@ impl AccessMethod for Datastore {
4343
self.get_bucket(bucket_id)
4444
}
4545
fn create_bucket(&self, bucket: &Bucket) -> Result<(), DatastoreError> {
46-
let res = self.create_bucket(bucket)?;
46+
self.create_bucket(bucket)?;
4747
self.force_commit().unwrap();
48-
Ok(res)
48+
Ok(())
4949
}
5050
fn get_events(
5151
&self,
@@ -85,23 +85,23 @@ impl AccessMethod for AwClient {
8585
end: Option<DateTime<Utc>>,
8686
limit: Option<u64>,
8787
) -> Result<Vec<Event>, String> {
88-
Ok(self.get_events(bucket_id).unwrap())
88+
Ok(self.get_events(bucket_id, start, end, limit).unwrap())
8989
}
90-
fn insert_events(&self, bucket_id: &str, events: Vec<Event>) -> Result<Vec<Event>, String> {
90+
fn insert_events(&self, _bucket_id: &str, _events: Vec<Event>) -> Result<Vec<Event>, String> {
9191
//Ok(self.insert_events(bucket_id, &events[..]).unwrap())
9292
Err("Not implemented".to_string())
9393
}
94-
fn get_event_count(&self, bucket_id: &str) -> Result<i64, String> {
94+
fn get_event_count(&self, _bucket_id: &str) -> Result<i64, String> {
9595
//Ok(self.get_event_count(bucket_id, None, None).unwrap())
9696
Err("Not implemented".to_string())
9797
}
9898
fn create_bucket(&self, bucket: &Bucket) -> Result<(), DatastoreError> {
99-
Ok(self
100-
.create_bucket(bucket.id.as_str(), bucket._type.as_str())
101-
.unwrap())
99+
self.create_bucket(bucket.id.as_str(), bucket._type.as_str())
100+
.unwrap();
101+
Ok(())
102102
//Err(DatastoreError::InternalError("Not implemented".to_string()))
103103
}
104-
fn heartbeat(&self, bucket_id: &str, event: Event, duration: f64) -> Result<Event, String> {
104+
fn heartbeat(&self, _bucket_id: &str, _event: Event, _duration: f64) -> Result<Event, String> {
105105
Err("Not implemented".to_string())
106106
}
107107
}
@@ -216,7 +216,7 @@ fn get_or_create_sync_bucket(bucket_from: &Bucket, ds_to: &dyn AccessMethod) ->
216216
ds_to.create_bucket(&bucket_new).unwrap();
217217
ds_to.get_bucket(new_id.as_str()).unwrap()
218218
}
219-
Err(e) => panic!(e),
219+
Err(e) => panic!("{:?}", e),
220220
}
221221
}
222222

0 commit comments

Comments
 (0)