Invites: Include server and channel ID.
Permissions: Small fix, consider self as User.
This commit is contained in:
@@ -30,7 +30,7 @@ impl_op_ex_commutative!(+ |a: &u32, b: &UserPermission| -> u32 { *a | *b as u32
|
||||
|
||||
pub fn get_relationship(a: &User, b: &str) -> RelationshipStatus {
|
||||
if a.id == b {
|
||||
return RelationshipStatus::Friend;
|
||||
return RelationshipStatus::User;
|
||||
}
|
||||
|
||||
if let Some(relations) = &a.relations {
|
||||
@@ -55,7 +55,8 @@ impl<'a> PermissionCalculator<'a> {
|
||||
.map(|v| v.to_owned())
|
||||
.unwrap_or_else(|| get_relationship(&self.perspective, &target))
|
||||
{
|
||||
RelationshipStatus::Friend => return Ok(u32::MAX),
|
||||
RelationshipStatus::Friend |
|
||||
RelationshipStatus::User => return Ok(u32::MAX),
|
||||
RelationshipStatus::Blocked | RelationshipStatus::BlockedOther => {
|
||||
return Ok(UserPermission::Access as u32)
|
||||
}
|
||||
@@ -64,7 +65,7 @@ impl<'a> PermissionCalculator<'a> {
|
||||
// ! INFO: if we add boolean switch for permission to
|
||||
// ! message people who have mutual, we need to get
|
||||
// ! rid of this return statement.
|
||||
return Ok(permissions);
|
||||
// return Ok(permissions);
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
@@ -8,11 +8,13 @@ use serde::Serialize;
|
||||
#[serde(tag = "type")]
|
||||
pub enum InviteResponse {
|
||||
Server {
|
||||
server_id: String,
|
||||
server_name: String,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
server_icon: Option<File>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
server_banner: Option<File>,
|
||||
channel_id: String,
|
||||
channel_name: String,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
channel_description: Option<String>,
|
||||
@@ -34,6 +36,7 @@ pub async fn req(target: Ref) -> Result<JsonValue> {
|
||||
let creator = Ref::from_unchecked(creator).fetch_user().await?;
|
||||
|
||||
if let Channel::TextChannel {
|
||||
id,
|
||||
server,
|
||||
name,
|
||||
description,
|
||||
@@ -43,9 +46,11 @@ pub async fn req(target: Ref) -> Result<JsonValue> {
|
||||
let server = Ref::from_unchecked(server).fetch_server().await?;
|
||||
|
||||
Ok(json!(InviteResponse::Server {
|
||||
server_id: server.id,
|
||||
server_name: server.name,
|
||||
server_icon: server.icon,
|
||||
server_banner: server.banner,
|
||||
channel_id: id,
|
||||
channel_name: name,
|
||||
channel_description: description,
|
||||
user_name: creator.username,
|
||||
|
||||
Reference in New Issue
Block a user