gitea_sdk/api/users/
stars.rs

1use build_it::Builder;
2use serde::Serialize;
3
4use crate::{error::Result, model::repos::Repository, Client};
5
6#[derive(Default, Debug, Serialize, Builder)]
7#[build_it(into)]
8pub struct ListStarredBuilder {
9    #[build_it(skip)]
10    #[serde(skip)]
11    username: String,
12
13    /// Page number of results to return (1-based).
14    #[serde(skip_serializing_if = "Option::is_none")]
15    page: Option<u64>,
16
17    /// Page size of results.
18    #[serde(skip_serializing_if = "Option::is_none")]
19    limit: Option<u64>,
20}
21
22impl ListStarredBuilder {
23    pub fn new(username: impl ToString) -> Self {
24        Self {
25            username: username.to_string(),
26            ..Default::default()
27        }
28    }
29
30    /// Sends the request to get the user's stars.
31    pub async fn send(&self, client: &Client) -> Result<Vec<Repository>> {
32        let req = client
33            .get(format!("/users/{}/starred", self.username))
34            .query(self)
35            .build()?;
36        let res = client.make_request(req).await?;
37        client.parse_response(res).await
38    }
39}