refactor: create presence crate and add tests

This commit is contained in:
Paul Makles
2023-04-22 20:01:23 +01:00
parent c817c2dd40
commit 12d963d2bd
15 changed files with 136 additions and 88 deletions

View File

@@ -26,3 +26,6 @@ serde = "1.0.136"
futures = "0.3.21"
async-tungstenite = { version = "0.17.0", features = ["async-std-runtime"] }
async-std = { version = "1.8.0", features = ["tokio1", "tokio02", "attributes"] }
# core
revolt-presence = { path = "../core/presence" }

View File

@@ -1,7 +1,7 @@
use std::env;
use async_std::net::TcpListener;
use revolt_quark::presence::presence_clear_region;
use revolt_presence::clear_region;
#[macro_use]
extern crate log;
@@ -18,7 +18,7 @@ async fn main() {
database::connect().await;
// Clean up the current region information.
presence_clear_region(None).await;
clear_region(None).await;
// Setup a TCP listener to accept WebSocket connections on.
// By default, we bind to port 9000 on all interfaces.

View File

@@ -1,6 +1,7 @@
use std::net::SocketAddr;
use futures::{channel::oneshot, pin_mut, select, FutureExt, SinkExt, StreamExt, TryStreamExt};
use revolt_presence::{create_session, delete_session};
use revolt_quark::{
events::{
client::EventV1,
@@ -8,7 +9,6 @@ use revolt_quark::{
state::{State, SubscriptionStateChange},
},
models::{user::UserHint, User},
presence::{presence_create_session, presence_delete_session},
redis_kiss, Database,
};
@@ -69,8 +69,7 @@ pub fn spawn_client(db: &'static Database, stream: TcpStream, addr: SocketAddr)
let user_id = state.cache.user_id.clone();
// Create presence session.
let (first_session, session_id) =
presence_create_session(&user_id, 0).await;
let (first_session, session_id) = create_session(&user_id, 0).await;
// Notify socket we have authenticated.
write
@@ -225,7 +224,7 @@ pub fn spawn_client(db: &'static Database, stream: TcpStream, addr: SocketAddr)
}
// Clean up presence session.
let last_session = presence_delete_session(&user_id, session_id).await;
let last_session = delete_session(&user_id, session_id).await;
// If this was the last session, notify other users that we just went offline.
if last_session {