pub use crate::client_trait_common::{HttpRequest, TeamSelect};
use crate::Error;
use std::io::Read;
use std::sync::Arc;
pub trait HttpClient: Sync {
type Request: HttpRequest + Send;
fn execute(&self, request: Self::Request, body: &[u8]) -> Result<HttpRequestResultRaw, Error>;
fn new_request(&self, url: &str) -> Self::Request;
fn update_token(&self, _old_token: Arc<String>) -> Result<bool, Error> {
Ok(false)
}
fn token(&self) -> Option<Arc<String>> {
None
}
fn path_root(&self) -> Option<&str> {
None
}
fn team_select(&self) -> Option<&TeamSelect> {
None
}
}
pub trait NoauthClient: HttpClient {}
pub trait UserAuthClient: HttpClient {}
pub trait TeamAuthClient: HttpClient {}
pub trait AppAuthClient: HttpClient {}
pub struct HttpRequestResultRaw {
pub status: u16,
pub result_header: Option<String>,
pub content_length: Option<u64>,
pub body: Box<dyn Read + Send>,
}
pub struct HttpRequestResult<T> {
pub result: T,
pub content_length: Option<u64>,
pub body: Option<Box<dyn Read>>,
}