Skip to main content

context69_sdk/client/
user_directory.rs

1use context69_contracts::UserDirectoryEntryResponse;
2use reqwest::Method;
3
4use super::Context69Client;
5use crate::Error;
6
7pub struct UserDirectoryApi<'a> {
8    client: &'a Context69Client,
9}
10
11impl<'a> UserDirectoryApi<'a> {
12    pub(crate) fn new(client: &'a Context69Client) -> Self {
13        Self { client }
14    }
15
16    pub async fn search(
17        &self,
18        query: &str,
19        limit: usize,
20    ) -> Result<Vec<UserDirectoryEntryResponse>, Error> {
21        let mut url = self.client.url("/v1/user-directory")?;
22        {
23            let mut pairs = url.query_pairs_mut();
24            pairs.append_pair("query", query);
25            pairs.append_pair("limit", &limit.to_string());
26        }
27        self.client
28            .execute_json(self.client.authorized_url_request(Method::GET, url).await?)
29            .await
30    }
31}