summaryrefslogtreecommitdiff
path: root/exes/webhook/src
diff options
context:
space:
mode:
authorMatthieuCoder <matthieu@matthieu-dev.xyz>2023-01-03 00:14:27 +0400
committerMatthieuCoder <matthieu@matthieu-dev.xyz>2023-01-03 00:14:27 +0400
commit91a27342dbee8ca0478f862df93bf502337f4c6e (patch)
treeaf5f4818d300934d8c9ea14896fe756fea13d578 /exes/webhook/src
parentc3e47ff0b1b06ff26830e78b7e37e212d1e47200 (diff)
add all in one binary
Diffstat (limited to 'exes/webhook/src')
-rw-r--r--exes/webhook/src/config.rs2
-rw-r--r--exes/webhook/src/lib.rs54
-rw-r--r--exes/webhook/src/main.rs54
3 files changed, 57 insertions, 53 deletions
diff --git a/exes/webhook/src/config.rs b/exes/webhook/src/config.rs
index e98de13..56a9b78 100644
--- a/exes/webhook/src/config.rs
+++ b/exes/webhook/src/config.rs
@@ -4,7 +4,7 @@ use ed25519_dalek::PublicKey;
use serde::{Deserialize, Deserializer};
fn default_listening_address() -> SocketAddr {
- SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::UNSPECIFIED, 8080))
+ SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::UNSPECIFIED, 8091))
}
#[derive(Debug, Deserialize, Clone, Copy)]
diff --git a/exes/webhook/src/lib.rs b/exes/webhook/src/lib.rs
new file mode 100644
index 0000000..13a4e60
--- /dev/null
+++ b/exes/webhook/src/lib.rs
@@ -0,0 +1,54 @@
+mod config;
+mod handler;
+use std::{future::Future, pin::Pin};
+
+use crate::{
+ config::WebhookConfig,
+ handler::{handler::WebhookService, make_service::MakeSvc},
+};
+use hyper::Server;
+use leash::{AnyhowResultFuture, Component};
+use shared::{config::Settings, log::info, nats_crate::Client};
+use tokio::sync::oneshot;
+
+#[derive(Clone, Copy)]
+pub struct WebhookServer {}
+
+impl Component for WebhookServer {
+ type Config = WebhookConfig;
+ const SERVICE_NAME: &'static str = "webhook";
+
+ fn start(
+ &self,
+ settings: Settings<Self::Config>,
+ stop: oneshot::Receiver<()>,
+ ) -> AnyhowResultFuture<()> {
+ Box::pin(async move {
+ info!("Starting server on {}", settings.server.listening_adress);
+
+ let bind = settings.server.listening_adress;
+ info!("NAts connected!");
+ let nats =
+ Into::<Pin<Box<dyn Future<Output = anyhow::Result<Client>> + Send>>>::into(settings.nats)
+
+ .await?;
+
+ let make_service = MakeSvc::new(WebhookService {
+ config: settings.config,
+ nats: nats.clone(),
+ });
+
+ let server = Server::bind(&bind).serve(make_service);
+
+ server.with_graceful_shutdown(async {
+ stop.await.expect("should not fail");
+ }).await?;
+
+ Ok(())
+ })
+ }
+
+ fn new() -> Self {
+ Self {}
+ }
+} \ No newline at end of file
diff --git a/exes/webhook/src/main.rs b/exes/webhook/src/main.rs
index 0215e51..f531725 100644
--- a/exes/webhook/src/main.rs
+++ b/exes/webhook/src/main.rs
@@ -1,54 +1,4 @@
-mod config;
-mod handler;
-use std::{future::Future, pin::Pin};
-
-use crate::{
- config::WebhookConfig,
- handler::{handler::WebhookService, make_service::MakeSvc},
-};
-use hyper::Server;
-use leash::{ignite, AnyhowResultFuture, Component};
-use shared::{config::Settings, log::info, nats_crate::Client};
-use tokio::sync::oneshot;
-
-#[derive(Clone, Copy)]
-struct WebhookServer {}
-
-impl Component for WebhookServer {
- type Config = WebhookConfig;
- const SERVICE_NAME: &'static str = "webhook";
-
- fn start(
- &self,
- settings: Settings<Self::Config>,
- stop: oneshot::Receiver<()>,
- ) -> AnyhowResultFuture<()> {
- Box::pin(async move {
- info!("Starting server on {}", settings.server.listening_adress);
-
- let bind = settings.server.listening_adress;
- let nats =
- Into::<Pin<Box<dyn Future<Output = anyhow::Result<Client>>>>>::into(settings.nats)
- .await?;
-
- let make_service = MakeSvc::new(WebhookService {
- config: settings.config,
- nats: nats.clone(),
- });
-
- let server = Server::bind(&bind).serve(make_service);
-
- server.with_graceful_shutdown(async {
- stop.await.expect("should not fail");
- }).await?;
-
- Ok(())
- })
- }
-
- fn new() -> Self {
- Self {}
- }
-}
+use leash::ignite;
+use webhook::WebhookServer;
ignite!(WebhookServer);