use super::WhatsAppState;
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum WaApproval {
Yes,
Always,
Yolo,
No,
}
impl WhatsAppState {
pub async fn register_pending_approval(
&self,
phone: String,
tx: tokio::sync::oneshot::Sender<WaApproval>,
) {
self.pending_approvals.lock().await.insert(phone, tx);
}
pub async fn resolve_pending_approval(
&self,
phone: &str,
choice: WaApproval,
) -> Option<WaApproval> {
if let Some(tx) = self.pending_approvals.lock().await.remove(phone) {
let _ = tx.send(choice);
Some(choice)
} else {
None
}
}
}