Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F3509361
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/services/tunnelbroker/rust-lib/src/notifications/apns.rs b/services/tunnelbroker/rust-lib/src/notifications/apns.rs
index 49cefba89..5d77e9517 100644
--- a/services/tunnelbroker/rust-lib/src/notifications/apns.rs
+++ b/services/tunnelbroker/rust-lib/src/notifications/apns.rs
@@ -1,56 +1,56 @@
use crate::ffi::apns_status;
use a2::{
Client, Endpoint, Error,
ErrorReason::{BadDeviceToken, Unregistered},
NotificationBuilder, NotificationOptions, PlainNotificationBuilder,
};
-use anyhow::{anyhow, Result};
+use anyhow::{bail, Result};
use std::fs::File;
pub async fn send_by_a2_client(
certificate_path: &str,
certificate_password: &str,
device_token: &str,
topic: &str,
message: &str,
sandbox: bool,
) -> Result<apns_status> {
let mut certificate = File::open(certificate_path)?;
let endpoint = if sandbox {
Endpoint::Sandbox
} else {
Endpoint::Production
};
let client =
Client::certificate(&mut certificate, certificate_password, endpoint)?;
let options = NotificationOptions {
apns_topic: Some(topic),
..Default::default()
};
let builder = PlainNotificationBuilder::new(message);
let mut payload = builder.build(device_token, options);
payload.aps.content_available = Some(1);
match client.send(payload).await {
Ok(_) => Ok(apns_status::Ok),
Err(Error::ResponseError(response)) => {
if let Some(error_body) = response.error {
match error_body.reason {
- // We are returning `Ok` with the error types here to distinguish the exact
+ // We are returning `Ok` with the error types here to distinguish the exact
// error type in a C++ side
BadDeviceToken => Ok(apns_status::BadDeviceToken),
Unregistered => Ok(apns_status::Unregistered),
- _ => Err(anyhow!(
+ _ => bail!(
"Notification was not accepted by APNs, reason: {:?}",
error_body.reason
- )),
+ ),
}
} else {
- Err(anyhow!(
+ bail!(
"Unhandled response error from APNs, response: {:?}",
response
- ))
+ )
}
}
Err(error) => Err(anyhow::Error::new(error)),
}
}
diff --git a/services/tunnelbroker/rust-lib/src/notifications/fcm.rs b/services/tunnelbroker/rust-lib/src/notifications/fcm.rs
index 5f40b1997..74d176bec 100644
--- a/services/tunnelbroker/rust-lib/src/notifications/fcm.rs
+++ b/services/tunnelbroker/rust-lib/src/notifications/fcm.rs
@@ -1,48 +1,44 @@
use crate::ffi::fcm_status;
-use anyhow::{anyhow, Result};
+use anyhow::{bail, ensure, Result};
use fcm::{
response::ErrorReason::{InvalidRegistration, NotRegistered},
Client, MessageBuilder, NotificationBuilder,
};
pub async fn send_by_fcm_client(
fcm_api_key: &str,
device_registration_id: &str,
message_title: &str,
message_body: &str,
) -> Result<fcm_status> {
let client = Client::new();
let mut notification_builder = NotificationBuilder::new();
notification_builder.title(message_title);
notification_builder.body(message_body);
let notification = notification_builder.finalize();
let mut message_builder =
MessageBuilder::new(fcm_api_key, device_registration_id);
message_builder.notification(notification);
let result = client.send(message_builder.finalize()).await?;
match result.results {
Some(results) => {
- if results.len() == 0 {
- return Err(anyhow!("FCM client returned zero size results"));
- }
+ ensure!(results.len() > 0, "FCM client returned zero size results");
if let Some(result_error) = results[0].error {
match result_error {
// We are returning `Ok` with the error types here to distinguish the exact
// error type in a C++ side
InvalidRegistration => return Ok(fcm_status::InvalidRegistration),
NotRegistered => return Ok(fcm_status::NotRegistered),
- _ => {
- return Err(anyhow!(
- "Notification was not accepted by FCM, reason: {:?}",
- result_error
- ))
- }
+ _ => bail!(
+ "Notification was not accepted by FCM, reason: {:?}",
+ result_error,
+ ),
}
}
}
- None => return Err(anyhow!("FCM client has no results set")),
+ None => bail!("FCM client has no results set"),
}
Ok(fcm_status::Ok)
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Dec 23, 3:49 AM (16 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2690315
Default Alt Text
(4 KB)
Attached To
Mode
rCOMM Comm
Attached
Detach File
Event Timeline
Log In to Comment