foru_ms_sdk 0.0.40

SDK for the Foru.ms API
Documentation
//! Service clients and API endpoints
//!
//! This module contains client implementations for:
//!
//! - **Auth**
//! - **Tags**
//! - **Threads**
//! - **Posts**
//! - **PrivateMessages**
//! - **Users**
//! - **Roles**
//! - **Reports**
//! - **Notifications**
//! - **Webhooks**
//! - **Integrations**
//! - **SsOs**

use crate::{ApiError, ClientConfig};

pub mod auth;
pub mod integrations;
pub mod notifications;
pub mod posts;
pub mod private_messages;
pub mod reports;
pub mod roles;
pub mod ss_os;
pub mod tags;
pub mod threads;
pub mod users;
pub mod webhooks;
pub struct ForumClient {
    pub config: ClientConfig,
    pub auth: AuthClient,
    pub tags: TagsClient,
    pub threads: ThreadsClient,
    pub posts: PostsClient,
    pub private_messages: PrivateMessagesClient,
    pub users: UsersClient,
    pub roles: RolesClient,
    pub reports: ReportsClient,
    pub notifications: NotificationsClient,
    pub webhooks: WebhooksClient,
    pub integrations: IntegrationsClient,
    pub ss_os: SsOsClient,
}

impl ForumClient {
    pub fn new(config: ClientConfig) -> Result<Self, ApiError> {
        Ok(Self {
            config: config.clone(),
            auth: AuthClient::new(config.clone())?,
            tags: TagsClient::new(config.clone())?,
            threads: ThreadsClient::new(config.clone())?,
            posts: PostsClient::new(config.clone())?,
            private_messages: PrivateMessagesClient::new(config.clone())?,
            users: UsersClient::new(config.clone())?,
            roles: RolesClient::new(config.clone())?,
            reports: ReportsClient::new(config.clone())?,
            notifications: NotificationsClient::new(config.clone())?,
            webhooks: WebhooksClient::new(config.clone())?,
            integrations: IntegrationsClient::new(config.clone())?,
            ss_os: SsOsClient::new(config.clone())?,
        })
    }
}

pub use auth::AuthClient;
pub use integrations::IntegrationsClient;
pub use notifications::NotificationsClient;
pub use posts::PostsClient;
pub use private_messages::PrivateMessagesClient;
pub use reports::ReportsClient;
pub use roles::RolesClient;
pub use ss_os::SsOsClient;
pub use tags::TagsClient;
pub use threads::ThreadsClient;
pub use users::UsersClient;
pub use webhooks::WebhooksClient;