pub struct ConnectionManager { /* private fields */ }Expand description
Connection manager
Implementations§
Source§impl ConnectionManager
impl ConnectionManager
Sourcepub fn new(client: Arc<ComposioClient>) -> Self
pub fn new(client: Arc<ComposioClient>) -> Self
Create a new connection manager instance
§Arguments
client- Composio client instance
§Example
use composio_sdk::{ComposioClient, meta_tools::ConnectionManager};
use std::sync::Arc;
let client = ComposioClient::builder()
.api_key("your-api-key")
.build()?;
let manager = ConnectionManager::new(Arc::new(client));Sourcepub async fn list_connections(
&self,
session_id: &str,
) -> Result<Vec<ConnectedAccount>, ComposioError>
pub async fn list_connections( &self, session_id: &str, ) -> Result<Vec<ConnectedAccount>, ComposioError>
List all connected accounts for a session
§Arguments
session_id- Session ID
§Returns
Vector of connected accounts
§Example
let manager = ConnectionManager::new(client);
let accounts = manager.list_connections("session_123").await?;
for account in accounts {
println!("{}: {:?}", account.toolkit, account.status);
}Sourcepub async fn create_auth_link(
&self,
session_id: &str,
toolkit: &str,
callback_url: Option<&str>,
) -> Result<AuthLink, ComposioError>
pub async fn create_auth_link( &self, session_id: &str, toolkit: &str, callback_url: Option<&str>, ) -> Result<AuthLink, ComposioError>
Create authorization link for a toolkit
§Arguments
session_id- Session IDtoolkit- Toolkit slug (e.g., “github”, “gmail”)callback_url- Optional callback URL after OAuth
§Returns
Authorization link with redirect URL
§Example
let manager = ConnectionManager::new(client);
let link = manager.create_auth_link(
"session_123",
"github",
Some("https://myapp.com/callback"),
).await?;
println!("Redirect user to: {}", link.redirect_url);Sourcepub async fn is_connected(
&self,
session_id: &str,
toolkit: &str,
) -> Result<bool, ComposioError>
pub async fn is_connected( &self, session_id: &str, toolkit: &str, ) -> Result<bool, ComposioError>
Check if a toolkit is connected
§Arguments
session_id- Session IDtoolkit- Toolkit slug
§Returns
True if toolkit is connected and active
§Example
let manager = ConnectionManager::new(client);
let is_connected = manager.is_connected("session_123", "github").await?;
if !is_connected {
println!("GitHub is not connected. Please authenticate.");
}Sourcepub async fn get_connection_status(
&self,
session_id: &str,
toolkit: &str,
) -> Result<Option<ConnectionStatus>, ComposioError>
pub async fn get_connection_status( &self, session_id: &str, toolkit: &str, ) -> Result<Option<ConnectionStatus>, ComposioError>
Get connection status for a specific toolkit
§Arguments
session_id- Session IDtoolkit- Toolkit slug
§Returns
Connection status or None if not found
§Example
let manager = ConnectionManager::new(client);
let status = manager.get_connection_status("session_123", "github").await?;
match status {
Some(status) => println!("GitHub status: {:?}", status),
None => println!("GitHub not connected"),
}Auto Trait Implementations§
impl Freeze for ConnectionManager
impl !RefUnwindSafe for ConnectionManager
impl Send for ConnectionManager
impl Sync for ConnectionManager
impl Unpin for ConnectionManager
impl UnsafeUnpin for ConnectionManager
impl !UnwindSafe for ConnectionManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more