diff --git a/Cargo.lock b/Cargo.lock --- a/Cargo.lock +++ b/Cargo.lock @@ -5406,6 +5406,8 @@ "lapin", "once_cell", "prost", + "reqwest", + "serde", "serde_json", "tokio", "tonic 0.8.3", diff --git a/services/tunnelbroker/Cargo.toml b/services/tunnelbroker/Cargo.toml --- a/services/tunnelbroker/Cargo.toml +++ b/services/tunnelbroker/Cargo.toml @@ -31,6 +31,8 @@ chrono = { workspace = true } uuid = { workspace = true, features = ["v4"] } jsonwebtoken = "9.3.0" +reqwest = { workspace = true, features = ["json", "native-tls", "rustls-tls"] } +serde.workspace = true [build-dependencies] tonic-build = "0.8" diff --git a/services/tunnelbroker/src/main.rs b/services/tunnelbroker/src/main.rs --- a/services/tunnelbroker/src/main.rs +++ b/services/tunnelbroker/src/main.rs @@ -5,6 +5,7 @@ pub mod error; pub mod grpc; pub mod identity; +pub mod notifs; pub mod websockets; use anyhow::{anyhow, Result}; diff --git a/services/tunnelbroker/src/notifs/apns/mod.rs b/services/tunnelbroker/src/notifs/apns/mod.rs new file mode 100644 --- /dev/null +++ b/services/tunnelbroker/src/notifs/apns/mod.rs @@ -0,0 +1,5 @@ +#[derive(Clone)] +pub struct APNsClient { + http2_client: reqwest::Client, + is_prod: bool, +} diff --git a/services/tunnelbroker/src/notifs/mod.rs b/services/tunnelbroker/src/notifs/mod.rs new file mode 100644 --- /dev/null +++ b/services/tunnelbroker/src/notifs/mod.rs @@ -0,0 +1,8 @@ +use crate::notifs::apns::APNsClient; + +pub mod apns; + +#[derive(Clone)] +pub struct NotifClient { + pub(crate) apns: Option, +}