rust-cnb 0.1.2

[DEPRECATED - use `cnb` crate instead] rust-cnb with Generated API client
Documentation
//! API 客户端主入口

use crate::error::{ApiError, Result};
use reqwest::Client;
use crate::git_settings;
use crate::pulls;
use crate::git;
use crate::event;
use crate::build;
use crate::repo_labels;
use crate::assets;
use crate::users;
use crate::releases;
use crate::organizations;
use crate::workspace;
use crate::missions;
use crate::repositories;
use crate::knowledge_base;
use crate::wiki;
use crate::followers;
use crate::starring;
use crate::issues;
use crate::activities;
use crate::ai;
use crate::badge;
use crate::security;
use crate::artifactory;

/// API 客户端
pub struct ApiClient {
    base_url: String,
    client: Client,
    git_settings: git_settings::GitSettingsClient,
    pulls: pulls::PullsClient,
    git: git::GitClient,
    event: event::EventClient,
    build: build::BuildClient,
    repo_labels: repo_labels::RepoLabelsClient,
    assets: assets::AssetsClient,
    users: users::UsersClient,
    releases: releases::ReleasesClient,
    organizations: organizations::OrganizationsClient,
    workspace: workspace::WorkspaceClient,
    missions: missions::MissionsClient,
    repositories: repositories::RepositoriesClient,
    knowledge_base: knowledge_base::KnowledgeBaseClient,
    wiki: wiki::WikiClient,
    followers: followers::FollowersClient,
    starring: starring::StarringClient,
    issues: issues::IssuesClient,
    activities: activities::ActivitiesClient,
    ai: ai::AiClient,
    badge: badge::BadgeClient,
    security: security::SecurityClient,
    artifactory: artifactory::ArtifactoryClient,
}

impl ApiClient {
    /// 创建新的 API 客户端
    pub fn new(base_url: String) -> Self {
        let client = Client::new();
        Self {
            git_settings: git_settings::GitSettingsClient::new(base_url.clone(), client.clone()),
            pulls: pulls::PullsClient::new(base_url.clone(), client.clone()),
            git: git::GitClient::new(base_url.clone(), client.clone()),
            event: event::EventClient::new(base_url.clone(), client.clone()),
            build: build::BuildClient::new(base_url.clone(), client.clone()),
            repo_labels: repo_labels::RepoLabelsClient::new(base_url.clone(), client.clone()),
            assets: assets::AssetsClient::new(base_url.clone(), client.clone()),
            users: users::UsersClient::new(base_url.clone(), client.clone()),
            releases: releases::ReleasesClient::new(base_url.clone(), client.clone()),
            organizations: organizations::OrganizationsClient::new(base_url.clone(), client.clone()),
            workspace: workspace::WorkspaceClient::new(base_url.clone(), client.clone()),
            missions: missions::MissionsClient::new(base_url.clone(), client.clone()),
            repositories: repositories::RepositoriesClient::new(base_url.clone(), client.clone()),
            knowledge_base: knowledge_base::KnowledgeBaseClient::new(base_url.clone(), client.clone()),
            wiki: wiki::WikiClient::new(base_url.clone(), client.clone()),
            followers: followers::FollowersClient::new(base_url.clone(), client.clone()),
            starring: starring::StarringClient::new(base_url.clone(), client.clone()),
            issues: issues::IssuesClient::new(base_url.clone(), client.clone()),
            activities: activities::ActivitiesClient::new(base_url.clone(), client.clone()),
            ai: ai::AiClient::new(base_url.clone(), client.clone()),
            badge: badge::BadgeClient::new(base_url.clone(), client.clone()),
            security: security::SecurityClient::new(base_url.clone(), client.clone()),
            artifactory: artifactory::ArtifactoryClient::new(base_url.clone(), client.clone()),
            base_url,
            client,
        }
    }

    /// 设置认证信息
    pub fn with_auth(self, token: &str) -> Self {
        // 这里可以扩展认证逻辑
        self
    }

    /// 获取 GitSettings 相关的 API 客户端
    pub fn git_settings(&self) -> &git_settings::GitSettingsClient {
        &self.git_settings
    }
    /// 获取 Pulls 相关的 API 客户端
    pub fn pulls(&self) -> &pulls::PullsClient {
        &self.pulls
    }
    /// 获取 Git 相关的 API 客户端
    pub fn git(&self) -> &git::GitClient {
        &self.git
    }
    /// 获取 Event 相关的 API 客户端
    pub fn event(&self) -> &event::EventClient {
        &self.event
    }
    /// 获取 Build 相关的 API 客户端
    pub fn build(&self) -> &build::BuildClient {
        &self.build
    }
    /// 获取 RepoLabels 相关的 API 客户端
    pub fn repo_labels(&self) -> &repo_labels::RepoLabelsClient {
        &self.repo_labels
    }
    /// 获取 Assets 相关的 API 客户端
    pub fn assets(&self) -> &assets::AssetsClient {
        &self.assets
    }
    /// 获取 Users 相关的 API 客户端
    pub fn users(&self) -> &users::UsersClient {
        &self.users
    }
    /// 获取 Releases 相关的 API 客户端
    pub fn releases(&self) -> &releases::ReleasesClient {
        &self.releases
    }
    /// 获取 Organizations 相关的 API 客户端
    pub fn organizations(&self) -> &organizations::OrganizationsClient {
        &self.organizations
    }
    /// 获取 Workspace 相关的 API 客户端
    pub fn workspace(&self) -> &workspace::WorkspaceClient {
        &self.workspace
    }
    /// 获取 Missions 相关的 API 客户端
    pub fn missions(&self) -> &missions::MissionsClient {
        &self.missions
    }
    /// 获取 Repositories 相关的 API 客户端
    pub fn repositories(&self) -> &repositories::RepositoriesClient {
        &self.repositories
    }
    /// 获取 KnowledgeBase 相关的 API 客户端
    pub fn knowledge_base(&self) -> &knowledge_base::KnowledgeBaseClient {
        &self.knowledge_base
    }
    /// 获取 Wiki 相关的 API 客户端
    pub fn wiki(&self) -> &wiki::WikiClient {
        &self.wiki
    }
    /// 获取 Followers 相关的 API 客户端
    pub fn followers(&self) -> &followers::FollowersClient {
        &self.followers
    }
    /// 获取 Starring 相关的 API 客户端
    pub fn starring(&self) -> &starring::StarringClient {
        &self.starring
    }
    /// 获取 Issues 相关的 API 客户端
    pub fn issues(&self) -> &issues::IssuesClient {
        &self.issues
    }
    /// 获取 Activities 相关的 API 客户端
    pub fn activities(&self) -> &activities::ActivitiesClient {
        &self.activities
    }
    /// 获取 Ai 相关的 API 客户端
    pub fn ai(&self) -> &ai::AiClient {
        &self.ai
    }
    /// 获取 Badge 相关的 API 客户端
    pub fn badge(&self) -> &badge::BadgeClient {
        &self.badge
    }
    /// 获取 Security 相关的 API 客户端
    pub fn security(&self) -> &security::SecurityClient {
        &self.security
    }
    /// 获取 Artifactory 相关的 API 客户端
    pub fn artifactory(&self) -> &artifactory::ArtifactoryClient {
        &self.artifactory
    }
}