diff --git a/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/mod.rs b/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/mod.rs index ebc3d92b9e..1508a767ab 100644 --- a/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/mod.rs +++ b/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/mod.rs @@ -1 +1,2 @@ pub mod prepare_image_upload; +mod request_types; diff --git a/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/prepare_image_upload.rs b/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/prepare_image_upload.rs index 4ea76df5e2..08ee8dd375 100644 --- a/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/prepare_image_upload.rs +++ b/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/prepare_image_upload.rs @@ -1,10 +1,11 @@ +use crate::creds::seedance2pro_session::Seedance2ProSession; use crate::error::seedance2pro_client_error::Seedance2ProClientError; use crate::error::seedance2pro_error::Seedance2ProError; use crate::error::seedance2pro_generic_api_error::Seedance2ProGenericApiError; +use crate::requests::prepare_image_upload::request_types::*; use chrono::Utc; use log::info; use rand::Rng; -use serde_derive::{Deserialize, Serialize}; use wreq::Client; use wreq_util::Emulation; @@ -22,39 +23,8 @@ fn generate_material_path() -> String { format!("materials/{}/{}-{}.png", date_part, timestamp_millis, hex_part) } -#[derive(Serialize)] -struct BatchRequest { - #[serde(rename = "0")] - zero: BatchRequestInner, -} - -#[derive(Serialize)] -struct BatchRequestInner { - json: BatchRequestJson, -} - -#[derive(Serialize)] -struct BatchRequestJson { - path: String, -} - -#[derive(Deserialize, Debug)] -struct BatchResponseItem { - result: BatchResponseResult, -} - -#[derive(Deserialize, Debug)] -struct BatchResponseResult { - data: BatchResponseData, -} - -#[derive(Deserialize, Debug)] -struct BatchResponseData { - json: String, -} - pub struct PrepareImageUploadArgs<'a> { - pub cookie: &'a str, + pub session: &'a Seedance2ProSession, } pub struct PrepareImageUploadResponse { @@ -83,6 +53,8 @@ pub async fn prepare_image_upload(args: PrepareImageUploadArgs<'_>) -> Result) -> Result) -> Result AnyhowResult<()> { setup_test_logging(LevelFilter::Trace); - let cookie = get_test_cookies()?; + let cookies = get_test_cookies()?; + let session = Seedance2ProSession::from_cookies_string(cookies); let args = PrepareImageUploadArgs { - cookie: &cookie, + session: &session, }; let result = prepare_image_upload(args).await?; println!("Upload URL: {}", result.upload_url); @@ -159,6 +133,8 @@ mod tests { assert!(!result.upload_url.is_empty()); assert!(result.upload_url.contains("cloudflarestorage.com")); assert!(result.material_path.starts_with("materials/")); + + assert_eq!(1, 2); // NB: Intentional failure to check the response. Ok(()) } } diff --git a/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/request_types.rs b/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/request_types.rs new file mode 100644 index 0000000000..6736d58829 --- /dev/null +++ b/crates/api_clients/seedance2pro/src/requests/prepare_image_upload/request_types.rs @@ -0,0 +1,32 @@ +use serde_derive::{Deserialize, Serialize}; + +#[derive(Serialize)] +pub(super) struct BatchRequest { + #[serde(rename = "0")] + pub zero: BatchRequestInner, +} + +#[derive(Serialize)] +pub(super) struct BatchRequestInner { + pub json: BatchRequestJson, +} + +#[derive(Serialize)] +pub(super) struct BatchRequestJson { + pub path: String, +} + +#[derive(Deserialize, Debug)] +pub(super) struct BatchResponseItem { + pub result: BatchResponseResult, +} + +#[derive(Deserialize, Debug)] +pub(super) struct BatchResponseResult { + pub data: BatchResponseData, +} + +#[derive(Deserialize, Debug)] +pub(super) struct BatchResponseData { + pub json: String, +} diff --git a/crates/api_clients/seedance2pro/src/requests/upload_image/upload_image.rs b/crates/api_clients/seedance2pro/src/requests/upload_image/upload_image.rs index 05718d1e1f..33d7456068 100644 --- a/crates/api_clients/seedance2pro/src/requests/upload_image/upload_image.rs +++ b/crates/api_clients/seedance2pro/src/requests/upload_image/upload_image.rs @@ -83,6 +83,7 @@ pub async fn upload_image(args: UploadImageArgs) -> Result