Ver Fonte

Поменял разделитель и добавил доп сообщения-инструкции

colon1al há 4 meses atrás
pai
commit
c86118ada9
1 ficheiros alterados com 34 adições e 8 exclusões
  1. 34 8
      msg_handler/src/lib.rs

+ 34 - 8
msg_handler/src/lib.rs

@@ -28,11 +28,12 @@ fn msg_router(msg: &TelegramMessage) -> MsgType{
     let regex_message = Regex::new(
         r"token:(?P<token>[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12})"
     ).unwrap();
+    let delimiter = '.';
     let msg_text = msg.text.as_str();
     match msg_text {
         msg_text if msg_text == "/start" => MsgType::Start,
         msg_text if regex_message.is_match(msg_text) => MsgType::Register,
-        msg_text if msg_text.split('!').count() > 1 => MsgType::ItemPrice,
+        msg_text if msg_text.split(delimiter).count() > 1 => MsgType::ItemPrice,
         _ => MsgType::Undefined,
     }
 
@@ -109,10 +110,10 @@ pub async fn handle_message(
                 Some(_user) => {
                     match handle_item_price(msg, tg_bot, db, gs_hub, sheet_id).await {
                         Ok(range) => match range {
-                            Some(range) => {
+                            Some(_range) => {
                                 match tg_bot.send_message(
                                     msg.chat.id,
-                                    format!("Добавлена строка {range}, {}", msg.text).as_str(),
+                                    format!("Данные внесены").as_str(),//format!("Добавлена строка {range}, {}", msg.text).as_str(),
                                     None
                                 ).await { Ok(_) => (), Err(err) => error!("Error sending msg {err}")}
                             }, None => ()
@@ -123,7 +124,25 @@ pub async fn handle_message(
                 None => ()
             }
         }
-        MsgType::Undefined => {},
+        MsgType::Undefined => {
+            match usr {
+                Some(_) => {
+                    let text =match get_from_key_value(db, "guide_msg").await {
+                        Ok(val) => val,
+                        Err(err) => {
+                            error!("Error getting from key_value {err}");
+                            String::from("Произошла ошибка обратитесь к администратору MH_UD_GKV")
+                        }
+                    };
+                    match tg_bot.send_message(
+                        msg.chat.id,
+                        text.as_str(),
+                        None
+                    ).await { Ok(_) => (), Err(err) => error!("Error sending msg {err}")}
+                },
+                None => ()
+            }
+        },
     }
 }
 
@@ -185,12 +204,19 @@ pub async fn handle_item_price(
     gs_hub: &Sheets<hyper_rustls::HttpsConnector<hyper_util::client::legacy::connect::HttpConnector>>,
     sheet_id: &str
 ) -> Result<Option<String>, DbErr> {
-    let delimiter = '!';
+    let delimiter = '.';
     let splitted_text: Vec<&str> = msg.text.split(delimiter).map(|txt| txt.trim()).collect();
-    if splitted_text.len() != 2 {
+    if splitted_text.len() < 2 {
+        let text =match get_from_key_value(db, "guide_msg").await {
+            Ok(val) => val,
+            Err(err) => {
+                error!("Error getting from key_value {err}");
+                String::from("Произошла ошибка обратитесь к администратору HIP_GKV")
+            }
+        };
         match tg_bot.send_message(
             msg.chat.id,
-            "Используйте формат ```предмет ! цена```",
+            text.as_str(),
             None
         ).await {
             Ok(_) => return Ok(None),
@@ -211,7 +237,7 @@ pub async fn handle_item_price(
         }
     };
     create_new_item_price(
-        db, splitted_text[0].to_string(), Some(splitted_text[1].to_string()),
+        db, splitted_text[0].to_string(), Some(splitted_text[1..].join(".").to_string()),
         current_user.id
     ).await?;
     let updated_range = add_item_price_to_google_sheet(