1
0

2 Ревизии 8a86b1ac7c ... 28a4f15a6a

Автор SHA1 Съобщение Дата
  Slava Barinov 28a4f15a6a [Telegram] Editing functional added преди 1 година
  Slava Barinov 8a86b1ac7c [Telegram] Editing functional added преди 1 година
променени са 1 файла, в които са добавени 32 реда и са изтрити 28 реда
  1. 32 28
      src/telegram.rs

+ 32 - 28
src/telegram.rs

@@ -713,38 +713,42 @@ async fn callback_handler(q: CallbackQuery, bot: Bot, dialogue: QIFDialogue) ->
             let response_message = format!("Editing item {}", item_id);
             if let Some(chat_id) = q.message.clone().map(|msg| msg.chat.id) {
                 bot.send_message(chat_id, response_message).await?;
-            }
 
-            let state = dialogue.get().await?;
-            if let Some(data) = state {
-                log::info!("State: {}", data);
-                if let State::Ready {
-                    filename,
-                    mut item_categories,
-                } = data
-                {
-                    let mut item_to_edit = None;
-                    let req_item: usize = item_id.parse().unwrap_or_default();
-                    for (index, (key, value)) in item_categories.iter().enumerate() {
-                        log::debug!("Index: {}, Key: {}, Value: {}", index, key, value);
-                        if index == req_item {
-                            log::info!("Editing item {}:{}", key, value);
-                            item_to_edit = Some(key.clone());
+                let state = dialogue.get().await?;
+                if let Some(data) = state {
+                    log::info!("State: {}", data);
+                    if let State::Ready {
+                        filename,
+                        item_categories,
+                    } = data
+                    {
+                        let mut item_to_edit = None;
+                        let req_item: usize = item_id.parse().unwrap_or_default();
+                        for (index, (key, value)) in item_categories.iter().enumerate() {
+                            log::debug!("Index: {}, Key: {}, Value: {}", index, key, value);
+                            if index == req_item {
+                                log::info!("Editing item {}:{}", key, value);
+                                item_to_edit = Some(key.clone());
+                            }
                         }
-                    }
 
-                    if let Some(key) = item_to_edit {
-                        let value = item_categories.remove(&key).unwrap_or_default();
-                        dialogue
-                            .update(State::CategorySelect {
-                                filename,
-                                item: value,
-                                items_left: vec![],
-                                items_processed: item_categories,
-                            })
+                        if let Some(key) = item_to_edit {
+                            bot.send_message(
+                                chat_id,
+                                format!("Input category to search for {}", &key),
+                            )
                             .await?;
-                    } else {
-                        log::error!("Attempt to edit non-existent item");
+                            dialogue
+                                .update(State::CategorySelect {
+                                    filename,
+                                    item: key,
+                                    items_left: vec![],
+                                    items_processed: item_categories,
+                                })
+                                .await?;
+                        } else {
+                            log::error!("Attempt to edit non-existent item");
+                        }
                     }
                 }
             }