Skip to main content

Client

Struct Client 

Source
pub struct Client { /* private fields */ }
Expand description

some endpoints return JSON with status codes, some plain text, some error with 200 status code, etc. for now just try to parse and hope for the best. Montala stated they are working on an OpenAPI spec for the api which should allow for much better handling in the future. So, for now, responses can be:

  • JSON arrays
  • JSON objects
  • Plain true/false strings
  • Raw integers (resource IDs)
  • “FAILED: …” strings for certain errors, even with 200 status code
  • “Invalid signature” strings, even with 200 status code

Implementations§

Source§

impl Client

Source

pub fn builder() -> ClientBuilder<NoUrl, NoAuth>

Examples found in repository?
examples/upload.rs (line 15)
7async fn main() {
8    dotenvy::from_path("examples/.env").ok();
9
10    let base_url = std::env::var("RS_BASE_URL").expect("RS_BASE_URL not set");
11    let user = std::env::var("RS_USER").expect("RS_USER not set");
12    let _password = std::env::var("RS_PASS").expect("RS_PASS not set");
13    let key = std::env::var("RS_KEY").expect("RS_KEY not set");
14
15    let client = Client::builder()
16        .base_url(&base_url)
17        .expect("Error when setting base_url")
18        .user_key(&user, &key)
19        // .session_key(&user, &password)
20        .build()
21        .await
22        .expect("Error when building client");
23
24    let result = client
25        .resource()
26        .upload_multipart(
27            UploadMultipartRequest::new(91287, false, false),
28            Path::new("pexels.jpg"),
29        )
30        .await;
31
32    match result {
33        Ok(response) => println!("{:#?}", response),
34        Err(e) => println!("Error: {}", e),
35    }
36}
More examples
Hide additional examples
examples/basic.rs (line 16)
8async fn main() {
9    dotenvy::from_path("examples/.env").ok();
10
11    let base_url = std::env::var("RS_BASE_URL").expect("RS_BASE_URL not set");
12    let user = std::env::var("RS_USER").expect("RS_USER not set");
13    let _password = std::env::var("RS_PASS").expect("RS_PASS not set");
14    let key = std::env::var("RS_KEY").expect("RS_KEY not set");
15
16    let client = Client::builder()
17        .base_url(&base_url)
18        .expect("Error when setting base_url")
19        .user_key(&user, &key)
20        // .session_key(&user, &password)
21        .build()
22        .await
23        .expect("Error when building client");
24
25    let search_result = client
26        .search()
27        .do_search(DoSearchRequest::new("909").sort(SortOrder::Asc))
28        .await;
29
30    match search_result {
31        Ok(response) => println!("{:#?}", response),
32        Err(e) => println!("Error: {}", e),
33    }
34
35    let system_result = client
36        .system()
37        .get_daily_stat_summary(GetDailyStatSummaryRequest::new().days(31))
38        .await;
39
40    match system_result {
41        Ok(response) => println!("{:#?}", response),
42        Err(e) => println!("Error: {}", e),
43    }
44
45    let message_result = client
46        .message()
47        .get_user_message(GetUserMessageRequest::new(12))
48        .await;
49
50    match message_result {
51        Ok(response) => println!("{:#?}", response),
52        Err(e) => println!("Error: {}", e),
53    }
54}
Source

pub fn search(&self) -> SearchApi<'_>

Examples found in repository?
examples/basic.rs (line 26)
8async fn main() {
9    dotenvy::from_path("examples/.env").ok();
10
11    let base_url = std::env::var("RS_BASE_URL").expect("RS_BASE_URL not set");
12    let user = std::env::var("RS_USER").expect("RS_USER not set");
13    let _password = std::env::var("RS_PASS").expect("RS_PASS not set");
14    let key = std::env::var("RS_KEY").expect("RS_KEY not set");
15
16    let client = Client::builder()
17        .base_url(&base_url)
18        .expect("Error when setting base_url")
19        .user_key(&user, &key)
20        // .session_key(&user, &password)
21        .build()
22        .await
23        .expect("Error when building client");
24
25    let search_result = client
26        .search()
27        .do_search(DoSearchRequest::new("909").sort(SortOrder::Asc))
28        .await;
29
30    match search_result {
31        Ok(response) => println!("{:#?}", response),
32        Err(e) => println!("Error: {}", e),
33    }
34
35    let system_result = client
36        .system()
37        .get_daily_stat_summary(GetDailyStatSummaryRequest::new().days(31))
38        .await;
39
40    match system_result {
41        Ok(response) => println!("{:#?}", response),
42        Err(e) => println!("Error: {}", e),
43    }
44
45    let message_result = client
46        .message()
47        .get_user_message(GetUserMessageRequest::new(12))
48        .await;
49
50    match message_result {
51        Ok(response) => println!("{:#?}", response),
52        Err(e) => println!("Error: {}", e),
53    }
54}
Source

pub fn system(&self) -> SystemApi<'_>

Examples found in repository?
examples/basic.rs (line 36)
8async fn main() {
9    dotenvy::from_path("examples/.env").ok();
10
11    let base_url = std::env::var("RS_BASE_URL").expect("RS_BASE_URL not set");
12    let user = std::env::var("RS_USER").expect("RS_USER not set");
13    let _password = std::env::var("RS_PASS").expect("RS_PASS not set");
14    let key = std::env::var("RS_KEY").expect("RS_KEY not set");
15
16    let client = Client::builder()
17        .base_url(&base_url)
18        .expect("Error when setting base_url")
19        .user_key(&user, &key)
20        // .session_key(&user, &password)
21        .build()
22        .await
23        .expect("Error when building client");
24
25    let search_result = client
26        .search()
27        .do_search(DoSearchRequest::new("909").sort(SortOrder::Asc))
28        .await;
29
30    match search_result {
31        Ok(response) => println!("{:#?}", response),
32        Err(e) => println!("Error: {}", e),
33    }
34
35    let system_result = client
36        .system()
37        .get_daily_stat_summary(GetDailyStatSummaryRequest::new().days(31))
38        .await;
39
40    match system_result {
41        Ok(response) => println!("{:#?}", response),
42        Err(e) => println!("Error: {}", e),
43    }
44
45    let message_result = client
46        .message()
47        .get_user_message(GetUserMessageRequest::new(12))
48        .await;
49
50    match message_result {
51        Ok(response) => println!("{:#?}", response),
52        Err(e) => println!("Error: {}", e),
53    }
54}
Source

pub fn message(&self) -> MessageApi<'_>

Examples found in repository?
examples/basic.rs (line 46)
8async fn main() {
9    dotenvy::from_path("examples/.env").ok();
10
11    let base_url = std::env::var("RS_BASE_URL").expect("RS_BASE_URL not set");
12    let user = std::env::var("RS_USER").expect("RS_USER not set");
13    let _password = std::env::var("RS_PASS").expect("RS_PASS not set");
14    let key = std::env::var("RS_KEY").expect("RS_KEY not set");
15
16    let client = Client::builder()
17        .base_url(&base_url)
18        .expect("Error when setting base_url")
19        .user_key(&user, &key)
20        // .session_key(&user, &password)
21        .build()
22        .await
23        .expect("Error when building client");
24
25    let search_result = client
26        .search()
27        .do_search(DoSearchRequest::new("909").sort(SortOrder::Asc))
28        .await;
29
30    match search_result {
31        Ok(response) => println!("{:#?}", response),
32        Err(e) => println!("Error: {}", e),
33    }
34
35    let system_result = client
36        .system()
37        .get_daily_stat_summary(GetDailyStatSummaryRequest::new().days(31))
38        .await;
39
40    match system_result {
41        Ok(response) => println!("{:#?}", response),
42        Err(e) => println!("Error: {}", e),
43    }
44
45    let message_result = client
46        .message()
47        .get_user_message(GetUserMessageRequest::new(12))
48        .await;
49
50    match message_result {
51        Ok(response) => println!("{:#?}", response),
52        Err(e) => println!("Error: {}", e),
53    }
54}
Source

pub fn metadata(&self) -> MetadataApi<'_>

Source

pub fn user(&self) -> UserApi<'_>

Source

pub fn collection(&self) -> CollectionApi<'_>

Source

pub fn resource(&self) -> ResourceApi<'_>

Examples found in repository?
examples/upload.rs (line 25)
7async fn main() {
8    dotenvy::from_path("examples/.env").ok();
9
10    let base_url = std::env::var("RS_BASE_URL").expect("RS_BASE_URL not set");
11    let user = std::env::var("RS_USER").expect("RS_USER not set");
12    let _password = std::env::var("RS_PASS").expect("RS_PASS not set");
13    let key = std::env::var("RS_KEY").expect("RS_KEY not set");
14
15    let client = Client::builder()
16        .base_url(&base_url)
17        .expect("Error when setting base_url")
18        .user_key(&user, &key)
19        // .session_key(&user, &password)
20        .build()
21        .await
22        .expect("Error when building client");
23
24    let result = client
25        .resource()
26        .upload_multipart(
27            UploadMultipartRequest::new(91287, false, false),
28            Path::new("pexels.jpg"),
29        )
30        .await;
31
32    match result {
33        Ok(response) => println!("{:#?}", response),
34        Err(e) => println!("Error: {}", e),
35    }
36}

Trait Implementations§

Source§

impl Debug for Client

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more