use expo_push_notification_client::{
Expo, ExpoClientOptions, ExpoPushMessage, ExpoPushReceipt, ExpoPushTicket,
};
#[ignore = "avoid calling the expo api"]
#[tokio::test]
async fn test() -> anyhow::Result<()> {
let expo = Expo::new(ExpoClientOptions::default());
let tokens = ["ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]"];
let tickets = expo
.send_push_notifications(ExpoPushMessage::builder(tokens).build()?)
.await?;
let mut ids = vec![];
for ticket in tickets {
match ticket {
ExpoPushTicket::Ok(ticket) => {
println!("receipt id: {}", ticket.id);
ids.push(ticket.id);
}
ExpoPushTicket::Error(e) => {
eprintln!("send error: {:?}", e);
}
}
}
let receipts = expo.get_push_notification_receipts(ids.clone()).await?;
for id in ids {
match receipts.get(&id) {
Some(receipt) => match receipt {
ExpoPushReceipt::Ok => {
println!("receipt ok for id: {}", id);
}
ExpoPushReceipt::Error(e) => {
eprintln!("get receipt error: {:?}", e);
}
},
None => {
eprintln!("receipt not found for id: {}", id);
}
}
}
Ok(())
}