chore: backup before migration to new repo
This commit is contained in:
@@ -5,6 +5,21 @@ use std::path::PathBuf;
|
||||
|
||||
const DEFAULT_API_URL: &str = "http://localhost:3002";
|
||||
|
||||
const DEV_API_URL: &str = "http://localhost:3003";
|
||||
|
||||
fn get_api_url() -> String {
|
||||
std::env::var("MOMENTRY_API_URL").unwrap_or_else(|_| {
|
||||
std::env::var("MOMENTRY_SERVER_PORT")
|
||||
.ok()
|
||||
.map(|port| format!("http://localhost:{}", port))
|
||||
.unwrap_or_else(|| DEFAULT_API_URL.to_string())
|
||||
})
|
||||
}
|
||||
|
||||
fn get_api_key() -> Option<String> {
|
||||
std::env::var("MOMENTRY_API_KEY").ok()
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct ApiClient {
|
||||
client: Client,
|
||||
@@ -83,7 +98,7 @@ pub struct VideosResponse {
|
||||
|
||||
impl ApiClient {
|
||||
pub fn new() -> Self {
|
||||
let url = std::env::var("MOMENTRY_API_URL").unwrap_or_else(|_| DEFAULT_API_URL.to_string());
|
||||
let url = get_api_url();
|
||||
Self {
|
||||
client: Client::new(),
|
||||
base_url: url,
|
||||
@@ -103,7 +118,11 @@ impl ApiClient {
|
||||
let request = RegisterRequest {
|
||||
path: path.to_string(),
|
||||
};
|
||||
let response = self.client.post(&url).json(&request).send().await?;
|
||||
let mut request_builder = self.client.post(&url).json(&request);
|
||||
if let Some(key) = get_api_key() {
|
||||
request_builder = request_builder.header("X-API-Key", key);
|
||||
}
|
||||
let response = request_builder.send().await?;
|
||||
let status = response.status();
|
||||
let result = response.json::<RegisterResponse>().await?;
|
||||
if !status.is_success() {
|
||||
@@ -124,7 +143,11 @@ impl ApiClient {
|
||||
limit,
|
||||
uuid: uuid.map(|s| s.to_string()),
|
||||
};
|
||||
let response = self.client.post(&url).json(&request).send().await?;
|
||||
let mut request_builder = self.client.post(&url).json(&request);
|
||||
if let Some(key) = get_api_key() {
|
||||
request_builder = request_builder.header("X-API-Key", key);
|
||||
}
|
||||
let response = request_builder.send().await?;
|
||||
let status = response.status();
|
||||
let result = response.json::<SearchResponse>().await?;
|
||||
if !status.is_success() {
|
||||
@@ -135,18 +158,30 @@ impl ApiClient {
|
||||
|
||||
pub async fn lookup_video(&self, uuid: &str) -> Result<LookupResponse> {
|
||||
let url = format!("{}/api/v1/lookup?uuid={}", self.base_url, uuid);
|
||||
let response = self.client.get(&url).send().await?;
|
||||
let mut request = self.client.get(&url);
|
||||
if let Some(key) = get_api_key() {
|
||||
request = request.header("X-API-Key", key);
|
||||
}
|
||||
let response = request.send().await?;
|
||||
let status = response.status();
|
||||
let result = response.json::<LookupResponse>().await?;
|
||||
if !status.is_success() {
|
||||
if status == 200 {
|
||||
let result = response.json::<LookupResponse>().await?;
|
||||
if result.uuid.is_empty() {
|
||||
anyhow::bail!("影片不存在: {}", uuid);
|
||||
}
|
||||
Ok(result)
|
||||
} else {
|
||||
anyhow::bail!("API request failed with status: {}", status);
|
||||
}
|
||||
Ok(result)
|
||||
}
|
||||
|
||||
pub async fn list_videos(&self) -> Result<Vec<VideoInfo>> {
|
||||
let url = format!("{}/api/v1/videos", self.base_url);
|
||||
let response = self.client.get(&url).send().await?;
|
||||
let mut request = self.client.get(&url);
|
||||
if let Some(key) = get_api_key() {
|
||||
request = request.header("X-API-Key", key);
|
||||
}
|
||||
let response = request.send().await?;
|
||||
let status = response.status();
|
||||
let result = response.json::<VideosResponse>().await?;
|
||||
if !status.is_success() {
|
||||
|
||||
Reference in New Issue
Block a user