#![allow(clippy::all)]
#![allow(missing_docs)]
#![allow(unused_imports)]
#![allow(unused_mut)]
use reqwest::Method;
use serde::Serialize;
use crate::error::{ApiError, Result};
use crate::http::HttpInner;
use crate::models;
#[derive(Debug, Clone)]
pub struct RepoContributorClient {
inner: HttpInner,
}
impl RepoContributorClient {
pub fn new(inner: HttpInner) -> Self {
Self { inner }
}
pub async fn get_repo_contributor_trend(
&self,
slug: String,
query: &GetRepoContributorTrendQuery,
) -> Result<crate::models::RepoContribTrend> {
let path = format!("/{}/-/contributor/trend", slug);
let mut url = self.inner.url(&path)?;
{
let mut pairs = url.query_pairs_mut();
if let Some(v) = query.limit {
pairs.append_pair("limit", &v.to_string());
}
if let Some(v) = query.exclude_external_users {
pairs.append_pair("exclude_external_users", &v.to_string());
}
drop(pairs);
}
self.inner
.execute::<crate::models::RepoContribTrend>(Method::GET, url)
.await
}
}
#[derive(Debug, Clone, Default, Serialize)]
pub struct GetRepoContributorTrendQuery {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclude_external_users: Option<bool>,
}
impl GetRepoContributorTrendQuery {
pub fn new() -> Self {
Self::default()
}
pub fn limit(mut self, v: impl Into<i64>) -> Self {
self.limit = Some(v.into());
self
}
pub fn exclude_external_users(mut self, v: impl Into<bool>) -> Self {
self.exclude_external_users = Some(v.into());
self
}
}