mirror of
https://github.com/storytold/artcraft.git
synced 2026-11-04 09:28:11 +00:00
send events for sora too
This commit is contained in:
1 parent
81cbcf28b2
commit
26c856ed43
4 files changed
+35
-23
No files matched your search
+4
-4
@@ -4,6 +4,7 @@ use crate::core::commands::enqueue::image_edit::gpt_image_1::handle_gpt_image_1_
|
||||
use crate::core::commands::enqueue::task_enqueue_success::TaskEnqueueSuccess;
|
||||
use crate::core::commands::response::failure_response_wrapper::{CommandErrorResponseWrapper, CommandErrorStatus};
|
||||
use crate::core::events::basic_sendable_event_trait::BasicSendableEvent;
|
||||
use crate::core::events::functional_events::show_provider_login_modal_event::ShowProviderLoginModalEvent;
|
||||
use crate::core::events::generation_events::common::{GenerationAction, GenerationModel, GenerationServiceProvider};
|
||||
use crate::core::events::generation_events::generation_enqueue_failure_event::GenerationEnqueueFailureEvent;
|
||||
use crate::core::events::generation_events::generation_enqueue_success_event::GenerationEnqueueSuccessEvent;
|
||||
@@ -55,14 +56,16 @@ pub async fn handle_gpt_image_1_edit_sora(
|
||||
sora_task_queue: &SoraTaskQueue,
|
||||
) -> Result<TaskEnqueueSuccess, InternalContextualEditImageError> {
|
||||
|
||||
let sora_creds = match sora_creds_manager.get_credentials() {
|
||||
let mut creds = match sora_creds_manager.get_credentials() {
|
||||
Ok(Some(creds)) => creds,
|
||||
Ok(None) => {
|
||||
warn!("No Sora credentials found.");
|
||||
ShowProviderLoginModalEvent::send_for_provider(GenerationProvider::Sora, &app);
|
||||
return Err(InternalContextualEditImageError::NeedsSoraCredentials);
|
||||
}
|
||||
Err(err) => {
|
||||
error!("Failed to get Sora credentials: {:?}", err);
|
||||
ShowProviderLoginModalEvent::send_for_provider(GenerationProvider::Sora, &app);
|
||||
return Err(InternalContextualEditImageError::AnyhowError(err));
|
||||
}
|
||||
};
|
||||
@@ -111,9 +114,6 @@ pub async fn handle_gpt_image_1_edit_sora(
|
||||
files_to_upload_to_sora.push(filename);
|
||||
}
|
||||
|
||||
|
||||
let mut creds = sora_creds_manager.get_credentials_required()?;
|
||||
|
||||
let credential_updated = maybe_upgrade_or_renew_session(&mut creds)
|
||||
.await
|
||||
.map_err(|err| {
|
||||
|
||||
+15
-6
@@ -2,6 +2,7 @@ use crate::core::commands::enqueue::task_enqueue_success::TaskEnqueueSuccess;
|
||||
use crate::core::commands::enqueue::text_to_image::enqueue_text_to_image_command::{EnqueueTextToImageRequest, TextToImageSize};
|
||||
use crate::core::commands::enqueue::text_to_image::internal_image_error::InternalImageError;
|
||||
use crate::core::events::basic_sendable_event_trait::BasicSendableEvent;
|
||||
use crate::core::events::functional_events::show_provider_login_modal_event::ShowProviderLoginModalEvent;
|
||||
use crate::core::events::generation_events::common::{GenerationAction, GenerationModel, GenerationServiceProvider};
|
||||
use crate::core::events::generation_events::generation_enqueue_failure_event::GenerationEnqueueFailureEvent;
|
||||
use crate::core::model::image_models::ImageModel;
|
||||
@@ -9,6 +10,7 @@ use crate::services::sora::state::sora_credential_manager::SoraCredentialManager
|
||||
use crate::services::sora::state::sora_task_queue::SoraTaskQueue;
|
||||
use enums::common::generation_provider::GenerationProvider;
|
||||
use enums::tauri::tasks::task_type::TaskType;
|
||||
use errors::AnyhowResult;
|
||||
use fal_client::requests::queue::image_gen::enqueue_flux_pro_11_ultra_text_to_image::{enqueue_flux_pro_11_ultra_text_to_image, FluxPro11UltraTextToImageArgs};
|
||||
use log::{error, info};
|
||||
use openai_sora_client::recipes::maybe_upgrade_or_renew_session::maybe_upgrade_or_renew_session;
|
||||
@@ -26,12 +28,19 @@ pub async fn handle_gpt_image_1_sora(
|
||||
sora_task_queue: &SoraTaskQueue,
|
||||
) -> Result<TaskEnqueueSuccess, InternalImageError> {
|
||||
|
||||
let mut creds = sora_creds_manager
|
||||
.get_credentials_required()
|
||||
.map_err(|err| {
|
||||
error!("EnqueueTextToImage Sora creds required: {:?}", err);
|
||||
InternalImageError::NeedsFalApiKey
|
||||
})?;
|
||||
let mut creds = match sora_creds_manager.get_credentials() {
|
||||
Ok(Some(creds)) => creds,
|
||||
Ok(None) => {
|
||||
error!("Sora credentials not found.");
|
||||
ShowProviderLoginModalEvent::send_for_provider(GenerationProvider::Sora, &app);
|
||||
return Err(InternalImageError::NeedsSoraCredentials);
|
||||
}
|
||||
Err(err) => {
|
||||
error!("Error reading Sora credentials: {:?}", err);
|
||||
ShowProviderLoginModalEvent::send_for_provider(GenerationProvider::Sora, &app);
|
||||
return Err(InternalImageError::NeedsSoraCredentials);
|
||||
}
|
||||
};
|
||||
|
||||
let credential_updated = maybe_upgrade_or_renew_session(&mut creds)
|
||||
.await
|
||||
|
||||
+3
-12
@@ -47,12 +47,13 @@ pub async fn handle_midjourney(
|
||||
let creds = match mj_creds_manager.maybe_copy_cookie_store() {
|
||||
Ok(Some(creds)) => creds,
|
||||
Ok(None) => {
|
||||
show_login_screen(&app);
|
||||
error!("Midjourney credentials not found.");
|
||||
ShowProviderLoginModalEvent::send_for_provider(GenerationProvider::Midjourney, &app);
|
||||
return Err(InternalImageError::NeedsMidjourneyCredentials);
|
||||
}
|
||||
Err(err) => {
|
||||
error!("Error reading Midjourney credentials: {:?}", err);
|
||||
show_login_screen(&app);
|
||||
ShowProviderLoginModalEvent::send_for_provider(GenerationProvider::Midjourney, &app);
|
||||
return Err(InternalImageError::NeedsMidjourneyCredentials);
|
||||
},
|
||||
};
|
||||
@@ -143,13 +144,3 @@ fn handle_midjourney_errors(
|
||||
|
||||
Err(InternalImageError::MidjourneyJobEnqueueFailed)
|
||||
}
|
||||
|
||||
fn show_login_screen(app: &AppHandle) {
|
||||
let event = ShowProviderLoginModalEvent {
|
||||
provider: GenerationProvider::Midjourney,
|
||||
};
|
||||
|
||||
if let Err(err) = event.send(&app) {
|
||||
error!("Failed to send ShowProviderLoginModalEvent: {:?}", err); // Fail open
|
||||
}
|
||||
}
|
||||
+13
-1
@@ -1,7 +1,10 @@
|
||||
use crate::core::events::basic_sendable_event_trait::{BasicEventStatus, BasicSendableEvent};
|
||||
use crate::core::events::sendable_event_error::SendableEventError;
|
||||
use enums::common::generation_provider::GenerationProvider;
|
||||
use enums::tauri::ux::tauri_event_name::TauriEventName;
|
||||
use log::error;
|
||||
use serde_derive::Serialize;
|
||||
use tauri::AppHandle;
|
||||
|
||||
/// Send a signal to the frontend to show a modal that suggests service setup.
|
||||
#[derive(Clone, Debug, Serialize)]
|
||||
@@ -10,7 +13,16 @@ pub struct ShowProviderLoginModalEvent {
|
||||
pub provider: GenerationProvider,
|
||||
}
|
||||
|
||||
impl BasicSendableEvent for ShowProviderLoginModalEvent{
|
||||
impl ShowProviderLoginModalEvent {
|
||||
pub fn send_for_provider(provider: GenerationProvider, app: &AppHandle) {
|
||||
let event = Self { provider };
|
||||
if let Err(err) = event.send(&app) {
|
||||
error!("Failed to send ShowProviderLoginModalEvent: {:?}", err); // Fail open
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl BasicSendableEvent for ShowProviderLoginModalEvent {
|
||||
const FRONTEND_EVENT_NAME: TauriEventName = TauriEventName::ShowProviderLoginModalEvent;
|
||||
const EVENT_STATUS: BasicEventStatus = BasicEventStatus::Failure;
|
||||
}
|
||||
Reference in new issue
Block a user