Skip to content

Commit

Permalink
feat: Implement #to for payload
Browse files Browse the repository at this point in the history
  • Loading branch information
abdulrahman1s committed Jul 20, 2022
1 parent 2fcb8dc commit 87805f7
Show file tree
Hide file tree
Showing 25 changed files with 47 additions and 40 deletions.
1 change: 0 additions & 1 deletion src/gateway/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,5 @@ mod events;
mod payload;
mod upgrade;

pub use crate::database::redis::publish;
pub use payload::*;
pub use upgrade::upgrade;
7 changes: 7 additions & 0 deletions src/gateway/payload.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
use crate::database::redis::publish;
use crate::structures::*;
use axum::extract::ws;
use serde::{Deserialize, Serialize};
Expand Down Expand Up @@ -71,3 +72,9 @@ impl From<Payload> for ws::Message {
ws::Message::Text(serde_json::to_string(&payload).unwrap())
}
}

impl Payload {
pub async fn to(self, id: i64) {
publish(id, serde_json::to_string(&self).unwrap()).await;
}
}
2 changes: 1 addition & 1 deletion src/routes/channels/create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pub async fn create(
let group = Channel::new_group(user.id, data.name).save().await?;

for id in group.recipients.as_ref().unwrap() {
publish(*id, Payload::ChannelCreate(group.clone())).await;
Payload::ChannelCreate(group.clone()).to(*id).await;
}

Ok(Json(group))
Expand Down
2 changes: 1 addition & 1 deletion src/routes/channels/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ pub async fn delete(Extension(user): Extension<User>, Path(id): Path<i64>) -> Re

channel.remove().await?;

publish(id, Payload::ChannelDelete(id.into())).await;
Payload::ChannelDelete(id.into()).to(id).await;

Ok(())
}
2 changes: 1 addition & 1 deletion src/routes/channels/edit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ pub async fn edit(

let group = group.update_all_fields(pool()).await?;

publish(group.id, Payload::ChannelUpdate(group.clone())).await;
Payload::ChannelUpdate(group.clone()).to(group.id).await;

Ok(Json(group))
}
2 changes: 1 addition & 1 deletion src/routes/channels/kick.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ pub async fn kick(

let group = group.update_all_fields(pool()).await?;

publish(group_id, Payload::ChannelUpdate(group)).await;
Payload::ChannelUpdate(group).to(group_id).await;

Ok(())
}
15 changes: 6 additions & 9 deletions src/routes/invites/join.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,10 @@ pub async fn join(Extension(user): Extension<User>, Path(code): Path<String>) ->
.update(pool())
.await?;

publish(
user.id,
Payload::ServerCreate(server_id.server(None).await?),
)
.await;

publish(server_id, Payload::ServerMemberJoin(member)).await;
Payload::ServerCreate(server_id.server(None).await?)
.to(user.id)
.await;
Payload::ServerMemberJoin(member).to(server_id).await;

Ok(())
}
Expand All @@ -65,8 +62,8 @@ pub async fn join(Extension(user): Extension<User>, Path(code): Path<String>) ->

let group = group.update_all_fields(pool()).await?;

publish(group.id, Payload::ChannelUpdate(group.clone())).await;
publish(user.id, Payload::ChannelCreate(group)).await;
Payload::ChannelUpdate(group.clone()).to(group.id).await;
Payload::ChannelCreate(group).to(user.id).await;

Ok(())
}
Expand Down
2 changes: 1 addition & 1 deletion src/routes/messages/create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ pub async fn create(

let msg = msg.save().await?;

publish(channel_id, Payload::MessageCreate(msg.clone())).await;
Payload::MessageCreate(msg.clone()).to(channel_id).await;

Ok(Json(msg))
}
2 changes: 1 addition & 1 deletion src/routes/messages/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ pub async fn delete(

tx.commit().await?;

publish(channel_id, Payload::MessageDelete(id.into())).await;
Payload::MessageDelete(id.into()).to(channel_id).await;

Ok(())
}
2 changes: 1 addition & 1 deletion src/routes/messages/edit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ pub async fn edit(

let msg = msg.update_all_fields(pool()).await?;

publish(channel_id, Payload::MessageUpdate(msg.clone())).await;
Payload::MessageUpdate(msg.clone()).to(channel_id).await;

Ok(Json(msg))
}
2 changes: 1 addition & 1 deletion src/routes/servers/channels/create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pub async fn create(

let channel = channel.save().await?;

publish(server_id, Payload::ChannelCreate(channel.clone())).await;
Payload::ChannelCreate(channel.clone()).to(server_id).await;

Ok(Json(channel))
}
4 changes: 3 additions & 1 deletion src/routes/servers/channels/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ pub async fn delete(

channel.remove().await?;

publish(server_id, Payload::ChannelDelete((id, server_id).into())).await;
Payload::ChannelDelete((id, server_id).into())
.to(server_id)
.await;

Ok(())
}
2 changes: 1 addition & 1 deletion src/routes/servers/channels/edit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ pub async fn edit(

let channel = channel.update_all_fields(pool()).await?;

publish(server_id, Payload::ChannelUpdate(channel.clone())).await;
Payload::ChannelUpdate(channel.clone()).to(server_id).await;

Ok(Json(channel))
}
2 changes: 1 addition & 1 deletion src/routes/servers/create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pub async fn create(

tx.commit().await?;

publish(user.id, Payload::ServerCreate(server.clone())).await;
Payload::ServerCreate(server.clone()).to(user.id).await;

Ok(Json(server))
}
2 changes: 1 addition & 1 deletion src/routes/servers/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ pub async fn delete(Extension(user): Extension<User>, Path(id): Path<i64>) -> Re

server.remove().await?;

publish(id, Payload::ServerDelete(id.into())).await;
Payload::ServerDelete(id.into()).to(id).await;

Ok(())
}
2 changes: 1 addition & 1 deletion src/routes/servers/edit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ pub async fn edit(

let server = server.update_all_fields(pool()).await?;

publish(server.id, Payload::ServerUpdate(server.clone())).await;
Payload::ServerUpdate(server.clone()).to(server.id).await;

Ok(Json(server))
}
4 changes: 3 additions & 1 deletion src/routes/servers/members/edit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ pub async fn edit(

let member = member.update_all_fields(pool()).await?;

publish(server_id, Payload::ServerMemberUpdate(member.clone())).await;
Payload::ServerMemberUpdate(member.clone())
.to(server_id)
.await;

Ok(Json(member))
}
8 changes: 3 additions & 5 deletions src/routes/servers/members/kick.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,9 @@ pub async fn kick(

id.member(server_id).await?.remove().await?;

publish(
server_id,
Payload::ServerMemberLeave((id, server_id).into()),
)
.await;
Payload::ServerMemberLeave((id, server_id).into())
.to(server_id)
.await;

Ok(())
}
2 changes: 1 addition & 1 deletion src/routes/servers/roles/create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ pub async fn create(

let role = role.save().await?;

publish(server_id, Payload::RoleCreate(role.clone())).await;
Payload::RoleCreate(role.clone()).to(server_id).await;

Ok(Json(role))
}
4 changes: 3 additions & 1 deletion src/routes/servers/roles/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ pub async fn delete(

id.role(server_id).await?.remove().await?;

publish(server_id, Payload::RoleDelete((id, server_id).into())).await;
Payload::RoleDelete((id, server_id).into())
.to(server_id)
.await;

Ok(())
}
2 changes: 1 addition & 1 deletion src/routes/servers/roles/edit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ pub async fn edit(

let role = role.update_all_fields(pool()).await?;

publish(server_id, Payload::RoleUpdate(role.clone())).await;
Payload::RoleUpdate(role.clone()).to(server_id).await;

Ok(Json(role))
}
4 changes: 2 additions & 2 deletions src/routes/users/open_dm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ pub async fn open_dm(
let target = id.user().await?;
let channel = Channel::new_dm(user.id, target.id).save().await?;

publish(user.id, Payload::ChannelCreate(channel.clone())).await;
Payload::ChannelCreate(channel.clone()).to(user.id).await;

if target.id != user.id {
publish(target.id, Payload::ChannelCreate(channel.clone())).await;
Payload::ChannelCreate(channel.clone()).to(target.id).await;
}

Ok(channel.into())
Expand Down
4 changes: 2 additions & 2 deletions src/routes/users/relationships/add.rs
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ pub async fn add(Extension(mut user): Extension<User>, Path(id): Path<i64>) -> R
user.relationship = status.1.into();
target.relationship = status.0.into();

publish(user.id, Payload::UserUpdate(target.clone())).await;
publish(target.id, Payload::UserUpdate(user)).await;
Payload::UserUpdate(target.clone()).to(user.id).await;
Payload::UserUpdate(user).to(target.id).await;

Ok(())
}
4 changes: 2 additions & 2 deletions src/routes/users/relationships/block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ pub async fn block(Extension(mut user): Extension<User>, Path(id): Path<i64>) ->
user.relationship = status.1.into();
target.relationship = status.0.into();

publish(user.id, Payload::UserUpdate(target.clone())).await;
publish(target.id, Payload::UserUpdate(user)).await;
Payload::UserUpdate(target.clone()).to(user.id).await;
Payload::UserUpdate(user).to(target.id).await;

Ok(())
}
4 changes: 2 additions & 2 deletions src/routes/users/relationships/delete.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ pub async fn delete(Extension(mut user): Extension<User>, Path(id): Path<i64>) -
user.relationship = target.relations.0.get(&user.id).copied();
target.relationship = user.relations.0.get(&target.id).copied();

publish(user.id, Payload::UserUpdate(target.clone())).await;
publish(target.id, Payload::UserUpdate(user)).await;
Payload::UserUpdate(target.clone()).to(user.id).await;
Payload::UserUpdate(user).to(target.id).await;
}

Ok(())
Expand Down

0 comments on commit 87805f7

Please sign in to comment.