use serde::{Deserialize, Serialize};
use super::types::{
ApiToken, Category, Dependency, GitHubConfig, GitLabConfig, Keyword, Meta, OwnerInvitation,
PublishWarnings, Team, User, Version,
};
#[derive(Deserialize)]
pub(crate) struct OwnersResponse {
pub users: Vec<User>,
}
#[derive(Deserialize)]
pub(crate) struct AuthorsResponse {
pub meta: AuthorsMeta,
}
#[derive(Deserialize)]
pub(crate) struct AuthorsMeta {
pub names: Vec<String>,
}
#[derive(Deserialize)]
pub(crate) struct UserResponse {
pub user: User,
}
#[derive(Deserialize)]
pub(crate) struct VersionResponse {
pub version: Version,
}
#[derive(Deserialize)]
pub(crate) struct CategoryResponse {
pub category: Category,
}
#[derive(Deserialize)]
pub(crate) struct KeywordResponse {
pub keyword: Keyword,
}
#[derive(Deserialize)]
pub(crate) struct ReverseDependenciesRaw {
pub dependencies: Vec<Dependency>,
pub versions: Vec<RawVersion>,
pub meta: Meta,
}
#[derive(Deserialize)]
pub(crate) struct RawVersion {
pub id: u64,
#[serde(rename = "crate")]
pub krate: String,
pub num: String,
}
#[derive(Deserialize)]
pub(crate) struct DependenciesResponse {
pub dependencies: Vec<Dependency>,
}
#[derive(Deserialize)]
pub(crate) struct TeamResponse {
pub team: Team,
}
#[derive(Deserialize)]
pub(crate) struct UserStatsResponse {
pub total_downloads: u64,
}
use super::types::CategorySlug;
#[derive(Deserialize)]
pub(crate) struct CategorySlugsResponse {
pub category_slugs: Vec<CategorySlug>,
}
#[derive(Deserialize)]
pub(crate) struct SiteMetadataResponse {
pub deployed_sha: Option<String>,
#[serde(default)]
pub commit: Option<String>,
}
#[derive(Serialize)]
pub(crate) struct OwnersRequest {
pub users: Vec<String>,
}
#[derive(Deserialize)]
pub(crate) struct OwnerInvitationsResponse {
pub crate_owner_invitations: Vec<OwnerInvitation>,
}
#[derive(Serialize)]
pub(crate) struct HandleInvitationRequest {
pub accepted: bool,
pub crate_id: u64,
}
#[derive(Deserialize)]
pub(crate) struct InvitationTokenResponse {
pub crate_owner_invitation: InvitationTokenData,
}
#[derive(Deserialize)]
#[allow(dead_code)]
pub(crate) struct InvitationTokenData {
pub accepted: bool,
pub crate_id: u64,
}
#[derive(Serialize)]
pub(crate) struct UpdateCrateRequest {
#[serde(rename = "crate")]
pub crate_data: super::types::CrateSettings,
}
#[derive(Serialize)]
pub(crate) struct UpdateVersionRequest {
pub version: super::types::VersionSettings,
}
#[derive(Serialize)]
pub(crate) struct UpdateUserRequest {
pub user: UpdateUserData,
}
#[derive(Serialize)]
pub(crate) struct UpdateUserData {
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
}
#[derive(Deserialize)]
pub(crate) struct MyUpdatesResponse {
pub versions: Vec<Version>,
pub meta: MyUpdatesMeta,
}
#[derive(Deserialize)]
pub(crate) struct MyUpdatesMeta {
#[serde(default)]
pub more: bool,
}
#[derive(Deserialize)]
pub(crate) struct TokensResponse {
pub api_tokens: Vec<ApiToken>,
}
#[derive(Deserialize)]
pub(crate) struct TokenResponse {
pub api_token: ApiToken,
}
#[derive(Serialize)]
pub(crate) struct CreateTokenRequest {
pub api_token: CreateTokenData,
}
#[derive(Serialize)]
pub(crate) struct CreateTokenData {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub crate_scopes: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub endpoint_scopes: Option<Vec<String>>,
}
#[derive(Deserialize)]
pub(crate) struct PublishResponse {
pub warnings: PublishWarnings,
}
#[derive(Deserialize)]
pub(crate) struct GitHubConfigsResponse {
pub github_configs: Vec<GitHubConfig>,
}
#[derive(Serialize)]
pub(crate) struct CreateGitHubConfigRequest {
pub github_config: super::types::NewGitHubConfig,
}
#[derive(Deserialize)]
pub(crate) struct GitHubConfigResponse {
pub github_config: GitHubConfig,
}
#[derive(Deserialize)]
pub(crate) struct GitLabConfigsResponse {
pub gitlab_configs: Vec<GitLabConfig>,
}
#[derive(Serialize)]
pub(crate) struct CreateGitLabConfigRequest {
pub gitlab_config: super::types::NewGitLabConfig,
}
#[derive(Deserialize)]
pub(crate) struct GitLabConfigResponse {
pub gitlab_config: GitLabConfig,
}
#[derive(Serialize)]
pub(crate) struct OidcExchangeRequest {
pub jwt: String,
}
#[derive(Deserialize)]
pub(crate) struct OidcExchangeResponse {
pub token: String,
}