Skip to main content

args_api/endpoint/user/
list_user_commits.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4use crate::{
5    endpoint::Endpoint,
6    resource::{common::Page, user::UserCommitResource},
7};
8
9pub struct ListUserCommits;
10
11impl Endpoint for ListUserCommits {
12    const PATH: &'static str = "/user/{user_name}/commits";
13    const METHOD: http::Method = http::Method::GET;
14
15    type Request = ListUserCommitsRequest;
16    type Response = ListUserCommitsResponse;
17}
18
19#[derive(ApiRequest, Debug, Default, Serialize, Deserialize)]
20pub struct ListUserCommitsRequest {
21    #[serde(default, skip_serializing_if = "Option::is_none")]
22    pub from: Option<DateTime<Utc>>,
23    #[serde(default, skip_serializing_if = "Option::is_none")]
24    pub to: Option<DateTime<Utc>>,
25    #[serde(default, skip_serializing_if = "Option::is_none")]
26    pub cursor: Option<String>,
27    #[serde(default, skip_serializing_if = "Option::is_none")]
28    pub limit: Option<u32>,
29}
30
31pub type ListUserCommitsResponse = Page<UserCommitResource>;