From 28f59389edb0872d724ff9d3bdc28c5b426324c6 Mon Sep 17 00:00:00 2001 From: N08I40K Date: Wed, 16 Apr 2025 16:38:37 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FCMClient теперь не инициализируется, если отсутствует требуемая переменная окружения. --- src/app_state.rs | 10 ++++++++-- src/parser/mod.rs | 2 ++ src/routes/fcm/set_token.rs | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/app_state.rs b/src/app_state.rs index 0fc34a7..bd7b4e3 100644 --- a/src/app_state.rs +++ b/src/app_state.rs @@ -56,7 +56,7 @@ pub struct AppState { pub schedule: Mutex>, pub database: Mutex, pub vk_id: VkId, - pub fcm_client: Mutex, + pub fcm_client: Option>, // в рантайме не меняется, так что опционален мьютекс, а не данные в нём. } impl AppState { @@ -71,7 +71,13 @@ impl AppState { .unwrap_or_else(|_| panic!("Error connecting to {}", database_url)), ), vk_id: VkId::new(), - fcm_client: Mutex::new(FCMClient::new().await.expect("FCM client must be created")), + fcm_client: if env::var("GOOGLE_APPLICATION_CREDENTIALS").is_ok() { + Some(Mutex::new( + FCMClient::new().await.expect("FCM client must be created"), + )) + } else { + None + }, } } } diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 04781dc..91b9581 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -567,6 +567,8 @@ fn convert_groups_to_teachers( /// # Examples /// /// ``` +/// use schedule_parser_rusted::parser::parse_xls; +/// /// let result = parse_xls(&include_bytes!("../../schedule.xls").to_vec()); /// /// assert!(result.is_ok()); diff --git a/src/routes/fcm/set_token.rs b/src/routes/fcm/set_token.rs index 6ce1faf..d447553 100644 --- a/src/routes/fcm/set_token.rs +++ b/src/routes/fcm/set_token.rs @@ -78,6 +78,8 @@ pub async fn set_token( // Subscribe to default topics. if let Some(e) = app_state .fcm_client + .as_ref() + .unwrap() .async_scope( async |client: &mut FCMClient| -> Result<(), TopicManagementError> { let mut tokens: Vec = Vec::new();