mirror of
https://github.com/storytold/artcraft.git
synced 2026-10-24 18:59:28 -04:00
Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
94e1c09622 | ||
|
|
df32e69c4c | ||
|
|
beac08b2f6 |
Generated
+5
-6
@@ -790,7 +790,7 @@ dependencies = [
|
||||
"log",
|
||||
"muapi_client",
|
||||
"reqwest 0.12.23",
|
||||
"seedance2pro",
|
||||
"seedance2pro_client",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"strum 0.28.0",
|
||||
@@ -10489,7 +10489,7 @@ dependencies = [
|
||||
"log",
|
||||
"mysql_queries",
|
||||
"reqwest 0.12.23",
|
||||
"seedance2pro",
|
||||
"seedance2pro_client",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"serde_json",
|
||||
@@ -10501,7 +10501,7 @@ dependencies = [
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "seedance2pro"
|
||||
name = "seedance2pro_client"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
@@ -11576,7 +11576,6 @@ dependencies = [
|
||||
"easyenv",
|
||||
"elasticsearch",
|
||||
"elasticsearch_schema",
|
||||
"email_sender",
|
||||
"enums",
|
||||
"enums_public",
|
||||
"errors",
|
||||
@@ -11620,7 +11619,7 @@ dependencies = [
|
||||
"reusable_types",
|
||||
"rust-s3",
|
||||
"rustls 0.23.36",
|
||||
"seedance2pro",
|
||||
"seedance2pro_client",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
"serde_json",
|
||||
@@ -11802,7 +11801,7 @@ dependencies = [
|
||||
"easyenv",
|
||||
"errors",
|
||||
"log",
|
||||
"seedance2pro",
|
||||
"seedance2pro_client",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ members = [
|
||||
"crates/api_clients/openai_sora_client",
|
||||
"crates/api_clients/openart_client",
|
||||
"crates/api_clients/muapi_client",
|
||||
"crates/api_clients/seedance2pro",
|
||||
"crates/api_clients/seedance2pro_client",
|
||||
"crates/api_clients/runwayml_client",
|
||||
"crates/api_clients/thumbnail_generator",
|
||||
"crates/api_clients/world_labs_api",
|
||||
@@ -252,7 +252,7 @@ muapi_client = { path = "crates/api_clients/muapi_client" }
|
||||
mysql_queries = { path = "crates/schema/database/mysql_queries" }
|
||||
openai_sora_client = { path = "crates/api_clients/openai_sora_client" }
|
||||
primitives = { path = "crates/lib/data/primitives" }
|
||||
seedance2pro = { path = "crates/api_clients/seedance2pro" }
|
||||
seedance2pro_client = { path = "crates/api_clients/seedance2pro_client" }
|
||||
shared_service_components = { path = "crates/lib/shared_service_components" }
|
||||
sqlite_tasks = { path = "crates/schema/database/sqlite_tasks" }
|
||||
subprocess_common = { path = "crates/lib/subprocess_common" }
|
||||
|
||||
@@ -20,7 +20,7 @@ artcraft_api_defs.workspace = true
|
||||
artcraft_client.workspace = true
|
||||
fal_client.workspace = true
|
||||
muapi_client.workspace = true
|
||||
seedance2pro.workspace = true
|
||||
seedance2pro_client.workspace = true
|
||||
tokens.workspace = true
|
||||
url_utils.workspace = true
|
||||
world_labs_api.workspace = true
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
use seedance2pro::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession;
|
||||
|
||||
pub struct RouterSeedance2ProClient {
|
||||
pub(crate) session: Seedance2ProSession,
|
||||
|
||||
@@ -3,7 +3,7 @@ use std::fmt::{Display, Formatter};
|
||||
use artcraft_client::error::storyteller_error::StorytellerError;
|
||||
use fal_client::error::fal_error_plus::FalErrorPlus;
|
||||
use muapi_client::error::muapi_error::MuapiError;
|
||||
use seedance2pro::error::seedance2pro_error::Seedance2ProError;
|
||||
use seedance2pro_client::error::seedance2pro_error::Seedance2ProError;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub enum ProviderError {
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
use artcraft_api_defs::generate::video::multi_function::seedance_2p0_multi_function_video_gen::Seedance2p0BatchCount;
|
||||
use seedance2pro::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro::requests::generate_video::generate_video::{BatchCount, GenerateVideoArgs, Resolution};
|
||||
use seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro_client::requests::generate_video::generate_video::{BatchCount, GenerateVideoArgs, Resolution};
|
||||
|
||||
use crate::generate::generate_video::plan::artcraft::plan_generate_video_artcraft_seedance2p0::PlanArtcraftSeedance2p0;
|
||||
use crate::generate::generate_video::video_generation_cost_estimate::VideoGenerationCostEstimate;
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
use seedance2pro::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro::requests::generate_video::generate_video::{GenerateVideoArgs, Resolution};
|
||||
use seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro_client::requests::generate_video::generate_video::{GenerateVideoArgs, Resolution};
|
||||
|
||||
use crate::generate::generate_video::plan::seedance2pro::plan_generate_video_seedance2pro_seedance2p0::PlanSeedance2proSeedance2p0;
|
||||
use crate::generate::generate_video::video_generation_cost_estimate::VideoGenerationCostEstimate;
|
||||
|
||||
+6
-6
@@ -6,13 +6,13 @@ use crate::generate::generate_video::generate_video_response::{
|
||||
};
|
||||
use crate::generate::generate_video::plan::seedance2pro::plan_generate_video_seedance2pro_seedance2p0::PlanSeedance2proSeedance2p0;
|
||||
use crate::utils::download_file::download_file;
|
||||
use seedance2pro::requests::generate_video::generate_video::{
|
||||
use seedance2pro_client::requests::generate_video::generate_video::{
|
||||
generate_video, GenerateVideoArgs,
|
||||
};
|
||||
use seedance2pro::requests::prepare_file_upload::prepare_file_upload::{
|
||||
use seedance2pro_client::requests::prepare_file_upload::prepare_file_upload::{
|
||||
prepare_file_upload, PrepareFileUploadArgs,
|
||||
};
|
||||
use seedance2pro::requests::upload_file::upload_file::{
|
||||
use seedance2pro_client::requests::upload_file::upload_file::{
|
||||
upload_file, UploadFileArgs,
|
||||
};
|
||||
use url_utils::extension::extract_extension_from_url::{
|
||||
@@ -58,7 +58,7 @@ pub async fn execute_seedance2pro_seedance2p0(
|
||||
|
||||
/// Downloads a file from a source URL and re-uploads it to seedance2pro CDN.
|
||||
async fn upload_to_seedance2pro(
|
||||
session: &seedance2pro::creds::seedance2pro_session::Seedance2ProSession,
|
||||
session: &seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession,
|
||||
source_url: &str,
|
||||
) -> Result<String, ArtcraftRouterError> {
|
||||
let extension = extract_extension_from_url_str(source_url, &ExtractExtensions::All)
|
||||
@@ -85,7 +85,7 @@ async fn upload_to_seedance2pro(
|
||||
}
|
||||
|
||||
async fn upload_optional_url(
|
||||
session: &seedance2pro::creds::seedance2pro_session::Seedance2ProSession,
|
||||
session: &seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession,
|
||||
url: Option<&str>,
|
||||
) -> Result<Option<String>, ArtcraftRouterError> {
|
||||
match url {
|
||||
@@ -95,7 +95,7 @@ async fn upload_optional_url(
|
||||
}
|
||||
|
||||
async fn upload_optional_url_list(
|
||||
session: &seedance2pro::creds::seedance2pro_session::Seedance2ProSession,
|
||||
session: &seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession,
|
||||
urls: Option<&[String]>,
|
||||
) -> Result<Option<Vec<String>>, ArtcraftRouterError> {
|
||||
match urls {
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ use crate::errors::artcraft_router_error::ArtcraftRouterError;
|
||||
use crate::errors::client_error::ClientError;
|
||||
use crate::generate::generate_video::generate_video_request::GenerateVideoRequest;
|
||||
use crate::generate::generate_video::video_generation_plan::VideoGenerationPlan;
|
||||
use seedance2pro::requests::generate_video::generate_video::{BatchCount, Resolution};
|
||||
use seedance2pro_client::requests::generate_video::generate_video::{BatchCount, Resolution};
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct PlanSeedance2proSeedance2p0 {
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
[package]
|
||||
name = "seedance2pro"
|
||||
name = "seedance2pro_client"
|
||||
edition = "2024"
|
||||
version = "0.0.1"
|
||||
publish = false
|
||||
@@ -8,7 +8,7 @@ publish = false
|
||||
normal = ["workspace-build-acceleration"]
|
||||
|
||||
[lib]
|
||||
name = "seedance2pro"
|
||||
name = "seedance2pro_client"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
@@ -12,7 +12,7 @@ easyenv.workspace = true
|
||||
|
||||
# Internal
|
||||
errors.workspace = true
|
||||
seedance2pro.workspace = true
|
||||
seedance2pro_client.workspace = true
|
||||
|
||||
# External
|
||||
anyhow.workspace = true
|
||||
|
||||
+3
-3
@@ -2,9 +2,9 @@ use std::collections::BTreeMap;
|
||||
|
||||
use anyhow::anyhow;
|
||||
use log::info;
|
||||
use seedance2pro::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro::requests::poll_orders::failure_type::FailureType;
|
||||
use seedance2pro::requests::poll_orders::poll_orders::{poll_orders, PollOrdersArgs, TaskStatus};
|
||||
use seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro_client::requests::poll_orders::failure_type::FailureType;
|
||||
use seedance2pro_client::requests::poll_orders::poll_orders::{poll_orders, PollOrdersArgs, TaskStatus};
|
||||
|
||||
use super::super::state::Seedance2ProState;
|
||||
|
||||
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
use anyhow::anyhow;
|
||||
use clap::Args;
|
||||
use log::info;
|
||||
use seedance2pro::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro::requests::poll_orders::poll_orders::{poll_orders, PollOrdersArgs};
|
||||
use seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro_client::requests::poll_orders::poll_orders::{poll_orders, PollOrdersArgs};
|
||||
|
||||
use super::super::state::Seedance2ProState;
|
||||
|
||||
@@ -48,7 +48,7 @@ pub async fn run(state: &Seedance2ProState, args: FindJobArgs) -> anyhow::Result
|
||||
std::process::exit(1);
|
||||
}
|
||||
|
||||
fn order_to_json(order: &seedance2pro::requests::poll_orders::poll_orders::OrderStatus) -> serde_json::Value {
|
||||
fn order_to_json(order: &seedance2pro_client::requests::poll_orders::poll_orders::OrderStatus) -> serde_json::Value {
|
||||
serde_json::json!({
|
||||
"order_id": order.order_id,
|
||||
"task_status": format!("{:?}", order.task_status),
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ use artcraft_client::endpoints::media_files::upload_video_media_file_from_file::
|
||||
use artcraft_client::endpoints::prompts::create_prompt::create_prompt;
|
||||
use tauri::AppHandle;
|
||||
use tempdir::TempDir;
|
||||
use url_utils::extension::extract_download_extension_from_url::{extract_download_extension_from_url, extract_download_extension_from_url_str};
|
||||
use url_utils::download_extension::extract_download_extension_from_url::{extract_download_extension_from_url, extract_download_extension_from_url_str};
|
||||
|
||||
pub struct SuccessfulGeneration {
|
||||
pub prompt: Option<String>,
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ use artcraft_client::recipes::upload_media_file_from_file::upload_media_file_fro
|
||||
use tauri::AppHandle;
|
||||
use tokens::tokens::batch_generations::BatchGenerationToken;
|
||||
use url::Url;
|
||||
use url_utils::extension::extract_download_extension_from_url::extract_download_extension_from_url_str;
|
||||
use url_utils::download_extension::extract_download_extension_from_url::extract_download_extension_from_url_str;
|
||||
use world_labs_client::api::api_types::world_id::WorldObjectId;
|
||||
use world_labs_client::api::requests::worlds::poll_world_status::{poll_world_status, PollWorldStatusArgs};
|
||||
use world_labs_client::credentials::world_labs_bearer_token::WorldLabsBearerToken;
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
|
||||
/// When downloading a remote file, it makes sense to try to match the same file extension (with reasonable safeguards).
|
||||
#[deprecated(note = "Use `Extension` in `url_utils::extension::extension` instead")]
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
||||
pub enum DownloadExtension {
|
||||
// Image
|
||||
+5
-3
@@ -1,13 +1,15 @@
|
||||
use crate::extension::download_extension::DownloadExtension;
|
||||
use crate::download_extension::DownloadExtension;
|
||||
use url::Url;
|
||||
|
||||
/// This should be used for naming files on the local file system based on their URL.
|
||||
#[deprecated(note = "Use `extract_extension_from_url_str` in `url_utils::extension::extract_extension_from_url` instead")]
|
||||
pub fn extract_download_extension_from_url_str(url: &str) -> Option<DownloadExtension> {
|
||||
let parsed_url = Url::parse(url).ok()?;
|
||||
extract_download_extension_from_url(&parsed_url)
|
||||
}
|
||||
|
||||
/// This should be used for naming files on the local file system based on their URL.
|
||||
#[deprecated(note = "Use `extract_extension_from_url` in `url_utils::extension::extract_extension_from_url` instead")]
|
||||
pub fn extract_download_extension_from_url(url: &Url) -> Option<DownloadExtension> {
|
||||
let path = url.path();
|
||||
let extension = std::path::Path::new(path)
|
||||
@@ -18,8 +20,8 @@ pub fn extract_download_extension_from_url(url: &Url) -> Option<DownloadExtensio
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::extension::download_extension::DownloadExtension;
|
||||
use crate::extension::extract_download_extension_from_url::extract_download_extension_from_url_str;
|
||||
use crate::download_extension::DownloadExtension;
|
||||
use crate::download_extension::extract_download_extension_from_url::extract_download_extension_from_url_str;
|
||||
|
||||
#[test]
|
||||
fn success_case() {
|
||||
@@ -0,0 +1,4 @@
|
||||
mod download_extension;
|
||||
pub mod extract_download_extension_from_url;
|
||||
|
||||
pub use download_extension::DownloadExtension;
|
||||
@@ -1,4 +1,2 @@
|
||||
pub mod download_extension;
|
||||
pub mod extension;
|
||||
pub mod extract_download_extension_from_url;
|
||||
pub mod extract_extension_from_url;
|
||||
@@ -1 +1,2 @@
|
||||
pub mod extension;
|
||||
pub mod extension;
|
||||
pub mod download_extension;
|
||||
@@ -32,7 +32,7 @@ errors.workspace = true
|
||||
hashing = { path = "../../../lib/files/hashing" }
|
||||
jobs_common = { path = "../../../lib/jobs_common" }
|
||||
mysql_queries = { path = "../../../schema/database/mysql_queries" }
|
||||
seedance2pro = { path = "../../../api_clients/seedance2pro" }
|
||||
seedance2pro_client = { path = "../../../api_clients/seedance2pro_client" }
|
||||
server_environment = { path = "../../../lib/server_environment" }
|
||||
tokens.workspace = true
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use cloud_storage::bucket_client::BucketClient;
|
||||
use concurrency::relaxed_atomic_bool::RelaxedAtomicBool;
|
||||
use jobs_common::job_stats::JobStats;
|
||||
use seedance2pro::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use server_environment::ServerEnvironment;
|
||||
use sqlx::MySqlPool;
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ use config::shared_constants::DEFAULT_MYSQL_CONNECTION_STRING;
|
||||
use config::shared_constants::DEFAULT_RUST_LOG;
|
||||
use errors::AnyhowResult;
|
||||
use jobs_common::job_stats::JobStats;
|
||||
use seedance2pro::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use server_environment::ServerEnvironment;
|
||||
|
||||
use crate::http_server::run_http_server::{launch_http_server, CreateServerArgs};
|
||||
|
||||
@@ -3,7 +3,7 @@ use std::time::Duration;
|
||||
|
||||
use log::{error, info, warn};
|
||||
use mysql_queries::queries::generic_inference::seedance2pro::list_pending_seedance2pro_jobs::list_pending_seedance2pro_jobs;
|
||||
use seedance2pro::requests::poll_orders::poll_orders::{poll_orders, PollOrdersArgs, TaskStatus};
|
||||
use seedance2pro_client::requests::poll_orders::poll_orders::{poll_orders, PollOrdersArgs, TaskStatus};
|
||||
|
||||
use crate::process_job::process_failed_job::process_failed_job;
|
||||
use crate::process_job::process_successful_job::process_successful_job;
|
||||
|
||||
@@ -4,8 +4,8 @@ use enums::by_table::generic_inference_jobs::frontend_failure_category::Frontend
|
||||
use mysql_queries::queries::generic_inference::job::mark_job_failed_by_token::{mark_job_failed_by_token, MarkJobFailedByTokenArgs};
|
||||
use mysql_queries::queries::generic_inference::seedance2pro::list_pending_seedance2pro_jobs::PendingSeedance2ProJob;
|
||||
use mysql_queries::queries::wallets::refund::try_to_refund_ledger_entry::{try_to_refund_ledger_entry, WalletRefundOutcome};
|
||||
use seedance2pro::requests::poll_orders::failure_type::FailureType;
|
||||
use seedance2pro::requests::poll_orders::poll_orders::OrderStatus;
|
||||
use seedance2pro_client::requests::poll_orders::failure_type::FailureType;
|
||||
use seedance2pro_client::requests::poll_orders::poll_orders::OrderStatus;
|
||||
|
||||
use crate::job_dependencies::JobDependencies;
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ use hashing::sha256::sha256_hash_bytes::sha256_hash_bytes;
|
||||
use mysql_queries::queries::generic_inference::seedance2pro::list_pending_seedance2pro_jobs::PendingSeedance2ProJob;
|
||||
use mysql_queries::queries::media_files::create::insert_builder::media_file_insert_builder::MediaFileInsertBuilder;
|
||||
use mysql_queries::queries::generic_inference::web::mark_generic_inference_job_successfully_done_by_token::mark_generic_inference_job_successfully_done_by_token;
|
||||
use seedance2pro::requests::poll_orders::poll_orders::OrderStatus;
|
||||
use seedance2pro_client::requests::poll_orders::poll_orders::OrderStatus;
|
||||
use crate::job_dependencies::JobDependencies;
|
||||
|
||||
const PREFIX: &str = "artcraft_";
|
||||
|
||||
@@ -49,7 +49,6 @@ crockford = { path = "../../../lib/data/crockford" }
|
||||
datetimes = { path = "../../../lib/data/datetimes" }
|
||||
easyenv.workspace = true
|
||||
elasticsearch_schema = { path = "../../../schema/database/elasticsearch_schema" }
|
||||
email_sender= { path = "../../../lib/email_sender" }
|
||||
enums.workspace = true
|
||||
enums_public.workspace = true
|
||||
errors.workspace = true
|
||||
@@ -73,7 +72,7 @@ redis_caching = { path = "../../../lib/caching/redis_caching" }
|
||||
redis_common = { path = "../../../schema/database/redis_common" }
|
||||
redis_schema = { path = "../../../schema/database/redis_schema" }
|
||||
reusable_types = { path = "../../../schema/public/reusable_types" }
|
||||
seedance2pro.workspace = true
|
||||
seedance2pro_client.workspace = true
|
||||
server_environment = { path = "../../../lib/server_environment" }
|
||||
thumbnail_generator = { path = "../../../api_clients/thumbnail_generator" }
|
||||
tokens.workspace = true
|
||||
|
||||
+4
-4
@@ -31,14 +31,14 @@ use mysql_queries::queries::prompt_context_items::insert_batch_prompt_context_it
|
||||
insert_batch_prompt_context_items, InsertBatchArgs, PromptContextItem,
|
||||
};
|
||||
use mysql_queries::queries::prompts::insert_prompt::{insert_prompt, InsertPromptArgs};
|
||||
use seedance2pro::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro::requests::generate_video::generate_video::{
|
||||
use seedance2pro_client::creds::seedance2pro_session::Seedance2ProSession;
|
||||
use seedance2pro_client::requests::generate_video::generate_video::{
|
||||
generate_video, BatchCount, GenerateVideoArgs, Resolution,
|
||||
};
|
||||
use seedance2pro::requests::prepare_file_upload::prepare_file_upload::{
|
||||
use seedance2pro_client::requests::prepare_file_upload::prepare_file_upload::{
|
||||
prepare_file_upload, PrepareFileUploadArgs,
|
||||
};
|
||||
use seedance2pro::requests::upload_file::upload_file::{upload_file, UploadFileArgs};
|
||||
use seedance2pro_client::requests::upload_file::upload_file::{upload_file, UploadFileArgs};
|
||||
use sqlx::Acquire;
|
||||
use tokens::tokens::generic_inference_jobs::InferenceJobToken;
|
||||
use tokens::tokens::media_files::MediaFileToken;
|
||||
|
||||
-2
@@ -8,7 +8,6 @@ use sqlx::MySqlPool;
|
||||
use strum_macros::Display;
|
||||
|
||||
use crockford::crockford_entropy_lower;
|
||||
use email_sender::smtp_email_sender::SmtpEmailSender;
|
||||
use enums::by_table::email_sender_jobs::email_category::EmailCategory;
|
||||
use http_server_common::request::get_request_ip::get_request_ip;
|
||||
use http_server_common::response::serialize_as_json_error::serialize_as_json_error;
|
||||
@@ -86,7 +85,6 @@ pub async fn password_reset_request_handler(
|
||||
mysql_pool: web::Data<MySqlPool>,
|
||||
server_environment: web::Data<ServerEnvironment>,
|
||||
server_state: web::Data<Arc<ServerState>>,
|
||||
_sender: web::Data<SmtpEmailSender>,
|
||||
) -> Result<HttpResponse, PasswordResetRequestedErrorResponse> {
|
||||
|
||||
let username_or_email = request.username_or_email.trim();
|
||||
|
||||
@@ -50,7 +50,6 @@ use config::common_env::CommonEnv;
|
||||
use config::shared_constants::DEFAULT_RUST_LOG;
|
||||
use elasticsearch::http::transport::Transport;
|
||||
use elasticsearch::Elasticsearch;
|
||||
use email_sender::smtp_email_sender::SmtpEmailSender;
|
||||
use errors::AnyhowResult;
|
||||
use fal_client::creds::fal_api_key::FalApiKey;
|
||||
use log::info;
|
||||
@@ -393,12 +392,6 @@ async fn main() -> AnyhowResult<()> {
|
||||
.trim()
|
||||
.to_string();
|
||||
|
||||
// TODO(bt,2023-11-11): Password and account details should be a secret, but gotta go fast.
|
||||
let email_sender = SmtpEmailSender::new(
|
||||
"smtp.gmail.com",
|
||||
"noreply@storyteller.ai".to_string(),
|
||||
"FakeYouHanashi1".to_string())?;
|
||||
|
||||
let server_environment_typed = match server_environment {
|
||||
ServerEnvironment::Production => server_environment::ServerEnvironment::Production,
|
||||
ServerEnvironment::Development => server_environment::ServerEnvironment::Development,
|
||||
@@ -465,7 +458,6 @@ async fn main() -> AnyhowResult<()> {
|
||||
audio_uploads_bucket_root,
|
||||
sort_key_crypto,
|
||||
static_api_token_set,
|
||||
email_sender,
|
||||
fal: FalData {
|
||||
api_key: fal_api_key,
|
||||
webhook_url: fal_webhook_url,
|
||||
@@ -661,7 +653,6 @@ pub async fn serve(server_state: ServerState) -> AnyhowResult<()>
|
||||
.app_data(web::Data::new(server_state_arc.stripe.clone().client.clone()))
|
||||
.app_data(web::Data::new(server_state_arc.third_party_url_redirector))
|
||||
.app_data(web::Data::new(server_state_arc.google_sign_in_cert.clone()))
|
||||
.app_data(web::Data::new(server_state_arc.email_sender.clone()))
|
||||
.app_data(web::Data::new(old_server_environment))
|
||||
.app_data(web::Data::new(new_server_environment))
|
||||
.app_data(web::Data::from(product_lookup)) // NB: Data::from(Arc<T>) for dynamic dispatch
|
||||
|
||||
@@ -6,7 +6,6 @@ use billing_component::stripe::stripe_config::StripeConfig;
|
||||
use chrono::{DateTime, Utc};
|
||||
use cloud_storage::bucket_client::BucketClient;
|
||||
use elasticsearch::Elasticsearch;
|
||||
use email_sender::smtp_email_sender::SmtpEmailSender;
|
||||
use fal_client::creds::fal_api_key::FalApiKey;
|
||||
use memory_caching::arc_ttl_sieve::ArcTtlSieve;
|
||||
use memory_caching::single_item_ttl_cache::SingleItemTtlCache;
|
||||
@@ -106,8 +105,6 @@ pub struct ServerState {
|
||||
|
||||
pub sort_key_crypto: SortKeyCrypto,
|
||||
|
||||
pub email_sender: SmtpEmailSender,
|
||||
|
||||
pub ip_ban_list: IpBanList,
|
||||
|
||||
pub cidr_ban_set: BannedCidrSet,
|
||||
|
||||
Reference in New Issue
Block a user