use crate::common::errors::{OpenAIToolError, Result};
use std::time::Duration;
pub fn create_http_client(timeout: Option<Duration>) -> Result<request::Client> {
let mut builder = request::Client::builder();
if let Some(duration) = timeout {
builder = builder.timeout(duration);
}
builder.build().map_err(|e| OpenAIToolError::Error(format!("Failed to create HTTP client: {}", e)))
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_create_http_client_without_timeout() {
let result = create_http_client(None);
assert!(result.is_ok());
}
#[test]
fn test_create_http_client_with_timeout() {
let result = create_http_client(Some(Duration::from_secs(30)));
assert!(result.is_ok());
}
#[test]
fn test_create_http_client_with_millisecond_timeout() {
let result = create_http_client(Some(Duration::from_millis(500)));
assert!(result.is_ok());
}
}