use shared::structs::Config;
use std::time::Duration;
use tokio::net::{TcpStream, ToSocketAddrs};
use transport::{wsPath, Transport};
use ws::listen;
use csdsclient::CSDSClient;
#[allow(dead_code)]
pub struct SDK {
config: Config,
accountId: u32,
refreshSessionInterval: u32,
csdsClient: CSDSClient,
userId: u32,
subscribeExConversations: fn(),
subscribeAgentsState: fn(),
subscribeRoutingTasks: fn(),
subscribeMessagingEvents: fn(),
updateRoutingTaskSubscription: fn(),
unsubscribeExConversations: fn(),
setAgentState: fn(),
getClock: fn(),
getUserProfile: fn(),
updateRingState: fn(),
agentRequestConversation: fn(),
updateConversationField: fn(),
generateURLForDownloadFile: fn(),
generateURLForUploadFile: fn(),
publishEvent: fn(),
reconnect: fn(),
dispose: fn(),
connect: fn(),
startPeriodicRefreshSession: fn(),
refreshSession: fn(),
getBearerToken: fn(),
}
impl SDK {
pub fn new(&mut self, conf: Config) -> Self {
Self {
csdsClient = new CSDSClient(conf),
config,
refreshSessionInterval: conf.refreshSessionInterval || 60000 * 1000, accountId: conf.accountId,
}
}
fn registerRequests() {}
fn connect(&mut self) {
handleCSDS("Connect#CSDS");
init();
}
fn handleCSDS(&mut self, location: String) -> Result<()> {
let domains = self.csdsClient.getAll(location)?;
domains
}
fn handleLogin(domains, location: String) -> Result<()> {
}
fn init(config: Config) {
}
fn login(&mut self, conf: Config, domains: Domain) {
assert_ne!(domains.agentVep, "", "Couldn't fetch domains");
let conf = self.config;
if conf.token {
self.userId = conf.userId; self.oldAgentId = format!({}.{}, conf.accountId, conf.userId); return Ok(());
}
let loginData = Config {
domain: domains.agentVep,
..conf,
}
}
}
struct Domain {
agentVep: String,
}