ddd
This commit is contained in:
@@ -3,7 +3,7 @@ use sqlx::migrate::Migrator;
|
|||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
config,
|
config,
|
||||||
entity::{self, Channel},
|
entity,
|
||||||
};
|
};
|
||||||
|
|
||||||
static MIGRATOR: Migrator = sqlx::migrate!("./migrations");
|
static MIGRATOR: Migrator = sqlx::migrate!("./migrations");
|
||||||
@@ -137,7 +137,7 @@ impl Database {
|
|||||||
&self,
|
&self,
|
||||||
channel_id: entity::ShortId,
|
channel_id: entity::ShortId,
|
||||||
message_id: entity::LongId,
|
message_id: entity::LongId,
|
||||||
) -> Result<Channel> {
|
) -> Result<entity::Channel> {
|
||||||
sqlx::query("UPDATE channel SET last_message_id = $1 WHERE id = $2")
|
sqlx::query("UPDATE channel SET last_message_id = $1 WHERE id = $2")
|
||||||
.bind(message_id)
|
.bind(message_id)
|
||||||
.bind(channel_id)
|
.bind(channel_id)
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|||||||
connected_users: Default::default(),
|
connected_users: Default::default(),
|
||||||
};
|
};
|
||||||
|
|
||||||
tokio::spawn(notifier::run(context.clone()));
|
|
||||||
|
|
||||||
web::run(context).await?;
|
web::run(context).await?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|||||||
@@ -61,13 +61,13 @@ pub async fn broadcast_message(
|
|||||||
) {
|
) {
|
||||||
let connected_users = state.connected_users.read().await;
|
let connected_users = state.connected_users.read().await;
|
||||||
|
|
||||||
let recievers =
|
let receivers =
|
||||||
connected_users
|
connected_users
|
||||||
.iter()
|
.iter()
|
||||||
.filter_map(|(key, conn)| if predicate(key) { Some(conn) } else { None });
|
.filter_map(|(key, conn)| if predicate(key) { Some(conn) } else { None });
|
||||||
|
|
||||||
for reciever in recievers {
|
for receiver in receivers {
|
||||||
_ = reciever
|
_ = receiver
|
||||||
.send(message.clone())
|
.send(message.clone())
|
||||||
.inspect_err(|err| tracing::error!("Failed to send message: {}", err));
|
.inspect_err(|err| tracing::error!("Failed to send message: {}", err));
|
||||||
}
|
}
|
||||||
@@ -90,7 +90,7 @@ async fn handle_socket(websocket: WebSocket, state: AppState, context: context::
|
|||||||
};
|
};
|
||||||
let (mut sender, _) = websocket.split();
|
let (mut sender, _) = websocket.split();
|
||||||
|
|
||||||
let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel::<Message>();
|
let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel();
|
||||||
|
|
||||||
{
|
{
|
||||||
let mut connected_users = state.connected_users.write().await;
|
let mut connected_users = state.connected_users.write().await;
|
||||||
|
|||||||
Reference in New Issue
Block a user