summaryrefslogtreecommitdiff
path: root/exes/gateway
diff options
context:
space:
mode:
authorMatthieuCoder <matthieu@matthieu-dev.xyz>2022-12-31 22:48:40 +0400
committerMatthieuCoder <matthieu@matthieu-dev.xyz>2022-12-31 22:48:40 +0400
commit46fd26962ef55f8b557f7e36d3aee915a819c88c (patch)
tree18038653ee532831aca0000afa7849924c2c63cc /exes/gateway
parent0fcc68291a5f7526dbeffe33f4a84a649200e847 (diff)
add base of cache component
Diffstat (limited to 'exes/gateway')
-rw-r--r--exes/gateway/Cargo.toml3
-rw-r--r--exes/gateway/src/main.rs10
2 files changed, 8 insertions, 5 deletions
diff --git a/exes/gateway/Cargo.toml b/exes/gateway/Cargo.toml
index 27269c1..7ef3d98 100644
--- a/exes/gateway/Cargo.toml
+++ b/exes/gateway/Cargo.toml
@@ -10,4 +10,5 @@ twilight-gateway = { version = "0.14" }
twilight-model = "0.14"
serde = { version = "1.0.8", features = ["derive"] }
futures = "0.3"
-serde_json = { version = "1.0" } \ No newline at end of file
+serde_json = { version = "1.0" }
+bytes = "*" \ No newline at end of file
diff --git a/exes/gateway/src/main.rs b/exes/gateway/src/main.rs
index 93ca022..6968fe4 100644
--- a/exes/gateway/src/main.rs
+++ b/exes/gateway/src/main.rs
@@ -2,7 +2,7 @@ use config::Config;
use shared::{
config::Settings,
log::{debug, info},
- nats_crate::Connection,
+ nats_crate::Client,
payloads::{CachePayload, DispatchEventTagged, Tracing},
};
use std::{convert::TryFrom, error::Error};
@@ -15,7 +15,7 @@ use twilight_model::gateway::event::DispatchEvent;
async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
let settings: Settings<Config> = Settings::new("gateway").unwrap();
let (shard, mut events) = Shard::new(settings.config.token, settings.config.intents);
- let nats: Connection = settings.nats.into();
+ let nats: Client = settings.nats.to_client().await?;
shard.start().await?;
@@ -26,7 +26,7 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
}
_ => {
- let name = event.kind().name().unwrap();
+ let name = event.kind().name();
if let Ok(dispatch_event) = DispatchEvent::try_from(event) {
let data = CachePayload {
tracing: Tracing {
@@ -39,7 +39,9 @@ async fn main() -> Result<(), Box<dyn Error + Send + Sync>> {
};
let value = serde_json::to_string(&data)?;
debug!("nats send: {}", value);
- nats.publish(&format!("nova.cache.dispatch.{}", name), value)?;
+ let bytes = bytes::Bytes::from(value);
+ nats.publish(format!("nova.cache.dispatch.{}", name.unwrap()), bytes)
+ .await?;
}
}
}