feat(gateway): split off cache into separate package, rename package to 'gateway'

This commit is contained in:
spiral
2022-05-10 07:04:33 -04:00
parent 433603feaa
commit abb01aaf2c
12 changed files with 1733 additions and 33 deletions

View File

@@ -1,73 +0,0 @@
use twilight_gateway::Event;
pub async fn handle_event<'a>(
event: Event,
rconn: redis::Client
) -> anyhow::Result<()> {
match event {
// todo: SaveDMChannelStub (?)
// todo: save user profiles for some reason (from message create, etc)
// todo(dotnet): remove relying on cache.OwnUserId
Event::GuildCreate(guild) => {
// save guild itself
// save all roles in guild
// save guild-role map
// save all channels in guild
// save all threads in guild (as channels lol)
// save guild-channel map
// save self guild member
// c# code also saves users in guildCreate.Members, but I'm pretty sure that doesn't have anything now because intents
}
Event::GuildUpdate(guild) => {
// save guild itself
}
Event::GuildDelete(guild) => {
// delete guild
// this probably should also delete all channels/roles/etc of the guild
}
Event::MemberUpdate(member) => {
// save self guild member
}
Event::ChannelCreate(channel) => {
// save channel
// update guild-channel map
}
Event::ChannelUpdate(channel) => {
// save channel
}
Event::ChannelDelete(channel) => {
// delete channel
// update guild-channel map
}
Event::RoleCreate(role) => {
// save role
// update guild-role map
}
Event::RoleUpdate(role) => {
// save role
}
Event::RoleDelete(role) => {
// delete role
// update guild-role map
}
Event::ThreadCreate(thread) => {
// save channel
// update guild-channel map
}
Event::ThreadUpdate(thread) => {
// save thread
}
Event::ThreadDelete(thread) => {
// delete channel
// update guild-channel map
}
Event::ThreadListSync(tls) => {
// save channels
}
_ => {}
}
Ok(())
}

View File

@@ -7,8 +7,6 @@ use tracing::info;
use twilight_gateway::Event;
use twilight_http::Client as HttpClient;
use crate::cache;
lazy_static::lazy_static! {
static ref ALLOWED_EVENTS: Vec<&'static str> = [
"INTERACTION_CREATE",
@@ -27,7 +25,7 @@ pub async fn handle_event<'a>(
_db: Pool,
rconn: redis::Client
) -> anyhow::Result<()> {
cache::handle_event(event.clone(), rconn.clone()).await?;
myriad::cache::handle_event(event.clone(), rconn.clone()).await?;
match event {
Event::GatewayInvalidateSession(resumable) => {

View File

@@ -9,7 +9,6 @@ use twilight_gateway::{
};
use twilight_http::Client as HttpClient;
mod cache;
mod config;
mod evt;
mod db;