mirror of
https://github.com/stoatchat/stoatchat.git
synced 2026-07-14 05:26:59 +00:00
Fix issues with incoming PRs.
This commit is contained in:
@@ -35,7 +35,7 @@ pub struct Relationship {
|
||||
pub status: RelationshipStatus,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug, Clone)]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
|
||||
pub enum Presence {
|
||||
Online,
|
||||
Idle,
|
||||
@@ -153,12 +153,11 @@ impl User {
|
||||
}
|
||||
|
||||
// If the user's status is `Presence::Invisible`, return it as `Presence::Offline`
|
||||
if let Some(mut status) = user.status {
|
||||
if let Some(presence) = status.presence {
|
||||
if presence == Presence::Invisible {
|
||||
status.presence = Some(Presence::Offline);
|
||||
user.status = Some(status);
|
||||
user.online = Some(False);
|
||||
if let Some(status) = &user.status {
|
||||
if let Some(presence) = &status.presence {
|
||||
if presence == &Presence::Invisible {
|
||||
user.status = None;
|
||||
user.online = Some(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -129,11 +129,16 @@ async fn accept(stream: TcpStream) {
|
||||
}
|
||||
} {
|
||||
if let Ok(user) = (Ref { id: id.clone() }).fetch_user().await {
|
||||
let is_invisible = if let Some(status) = user.status {
|
||||
if let Some(presence) = status.presence {
|
||||
presence == Presence::Invisible
|
||||
let is_invisible = if let Some(status) = &user.status {
|
||||
if let Some(presence) = &status.presence {
|
||||
presence == &Presence::Invisible
|
||||
} else {
|
||||
false
|
||||
}
|
||||
} else {
|
||||
false
|
||||
};
|
||||
|
||||
let was_online = is_online(&id);
|
||||
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@ pub async fn edit_bot(user: User, target: Ref, data: Json<Data>) -> Result<Empty
|
||||
&& data.interactions_url.is_none()
|
||||
&& data.remove.is_none()
|
||||
{
|
||||
return Ok(());
|
||||
return Ok(EmptyResponse {});
|
||||
}
|
||||
|
||||
let bot = target.fetch_bot().await?;
|
||||
|
||||
@@ -59,7 +59,8 @@ pub async fn invite_bot(user: User, target: Ref, dest: Json<Destination>) -> Res
|
||||
Err(Error::MissingPermission)?
|
||||
}
|
||||
|
||||
channel.add_to_group(bot.id, user.id).await
|
||||
channel.add_to_group(bot.id, user.id).await?;
|
||||
Ok(EmptyResponse {})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -70,7 +70,8 @@ pub async fn req(user: User, target: Ref) -> Result<EmptyResponse> {
|
||||
|
||||
target.publish_update(json!({ "owner": new_owner })).await?;
|
||||
} else {
|
||||
return target.delete().await;
|
||||
target.delete().await?;
|
||||
return Ok(EmptyResponse {});
|
||||
}
|
||||
} else {
|
||||
get_collection("channels")
|
||||
@@ -108,7 +109,8 @@ pub async fn req(user: User, target: Ref) -> Result<EmptyResponse> {
|
||||
Channel::TextChannel { .. } |
|
||||
Channel::VoiceChannel { .. } => {
|
||||
if perm.get_manage_channel() {
|
||||
target.delete().await
|
||||
target.delete().await?;
|
||||
Ok(EmptyResponse {})
|
||||
} else {
|
||||
Err(Error::MissingPermission)
|
||||
}
|
||||
|
||||
@@ -19,6 +19,6 @@ pub async fn req(user: User, target: Ref, member: Ref) -> Result<EmptyResponse>
|
||||
Err(Error::MissingPermission)?
|
||||
}
|
||||
|
||||
channel.add_to_group(member.id, user.id).await;
|
||||
channel.add_to_group(member.id, user.id).await?;
|
||||
Ok(EmptyResponse {})
|
||||
}
|
||||
|
||||
@@ -24,6 +24,6 @@ pub async fn req(user: User, target: Ref, msg: Ref) -> Result<EmptyResponse> {
|
||||
}
|
||||
}
|
||||
|
||||
message.delete().await;
|
||||
message.delete().await?;
|
||||
Ok(EmptyResponse {})
|
||||
}
|
||||
|
||||
@@ -73,6 +73,6 @@ pub async fn req(user: User, target: Ref, msg: Ref, edit: Json<Data>) -> Result<
|
||||
with: "message",
|
||||
})?;
|
||||
|
||||
message.publish_update(update).await;
|
||||
message.publish_update(update).await?;
|
||||
Ok(EmptyResponse {})
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ pub async fn req(user: User, target: Ref) -> Result<EmptyResponse> {
|
||||
let target = target.fetch_invite().await?;
|
||||
|
||||
if target.creator() == &user.id {
|
||||
target.delete().await
|
||||
target.delete().await?;
|
||||
} else {
|
||||
match &target {
|
||||
Invite::Server { server, .. } => {
|
||||
@@ -20,10 +20,11 @@ pub async fn req(user: User, target: Ref) -> Result<EmptyResponse> {
|
||||
return Err(Error::MissingPermission);
|
||||
}
|
||||
|
||||
target.delete().await;
|
||||
Ok(EmptyResponse {})
|
||||
target.delete().await?;
|
||||
}
|
||||
_ => unreachable!(),
|
||||
}
|
||||
}
|
||||
|
||||
Ok(EmptyResponse {})
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
use crate::database::*;
|
||||
use crate::util::result::{Error, Result};
|
||||
use crate::util::result::{EmptyResponse, Error, Result};
|
||||
|
||||
use mongodb::bson::{doc, to_document};
|
||||
use rauth::auth::Session;
|
||||
use rocket::serde::json::Json;
|
||||
use serde::{Deserialize, Serialize, EmptyResponse};
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
#[derive(Serialize, Deserialize)]
|
||||
pub struct Subscription {
|
||||
|
||||
@@ -57,6 +57,6 @@ pub async fn req(user: User, server: Ref, target: Ref, data: Json<Data>) -> Resu
|
||||
with: "server_ban",
|
||||
})?;
|
||||
|
||||
server.remove_member(&target.id, RemoveMember::Ban).await;
|
||||
server.remove_member(&target.id, RemoveMember::Ban).await?;
|
||||
Ok(EmptyResponse {})
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ pub async fn req(user: User, server: Ref, target: String, data: Json<Data>) -> R
|
||||
.map_err(|error| Error::FailedValidation { error })?;
|
||||
|
||||
if data.nickname.is_none() && data.avatar.is_none() && data.roles.is_none() && data.remove.is_none() {
|
||||
return Ok(());
|
||||
return Ok(EmptyResponse {});
|
||||
}
|
||||
|
||||
let server = server.fetch_server().await?;
|
||||
|
||||
@@ -27,7 +27,7 @@ pub async fn req(user: User, target: Ref, member: String) -> Result<EmptyRespons
|
||||
|
||||
target
|
||||
.remove_member(&member.id.user, RemoveMember::Kick)
|
||||
.await;
|
||||
.await?;
|
||||
|
||||
Ok(EmptyResponse {})
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ pub async fn req(user: User, target: Ref, role_id: String, data: Json<Data>) ->
|
||||
|
||||
if data.name.is_none() && data.colour.is_none() && data.hoist.is_none() && data.rank.is_none() && data.remove.is_none()
|
||||
{
|
||||
return Ok(());
|
||||
return Ok(EmptyResponse {});
|
||||
}
|
||||
|
||||
let target = target.fetch_server().await?;
|
||||
|
||||
@@ -18,6 +18,6 @@ pub async fn req(user: User, target: Ref) -> Result<EmptyResponse> {
|
||||
Err(Error::MissingPermission)?
|
||||
}
|
||||
|
||||
target.mark_as_read(&user.id).await;
|
||||
target.mark_as_read(&user.id).await?;
|
||||
Ok(EmptyResponse {})
|
||||
}
|
||||
|
||||
@@ -16,8 +16,10 @@ pub async fn req(user: User, target: Ref) -> Result<EmptyResponse> {
|
||||
}
|
||||
|
||||
if user.id == target.owner {
|
||||
target.delete().await
|
||||
target.delete().await?;
|
||||
} else {
|
||||
target.remove_member(&user.id, RemoveMember::Leave).await
|
||||
target.remove_member(&user.id, RemoveMember::Leave).await?;
|
||||
}
|
||||
|
||||
Ok(EmptyResponse {})
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ use rocket::serde::json::Value;
|
||||
|
||||
#[get("/<target>")]
|
||||
pub async fn req(user: User, target: Ref) -> Result<Value> {
|
||||
let mut target = target.fetch_user().await?;
|
||||
let target = target.fetch_user().await?;
|
||||
|
||||
let perm = permissions::PermissionCalculator::new(&user)
|
||||
.with_user(&target)
|
||||
|
||||
@@ -71,8 +71,8 @@ pub enum Error {
|
||||
pub struct EmptyResponse;
|
||||
pub type Result<T, E = Error> = std::result::Result<T, E>;
|
||||
|
||||
impl<'r> Responder<'r> for EmptyResponse {
|
||||
fn respond_to(self, req: &Request) -> response::Result<'r> {
|
||||
impl<'r> Responder<'r, 'static> for EmptyResponse {
|
||||
fn respond_to(self, _: &'r Request<'_>) -> response::Result<'static> {
|
||||
Response::build()
|
||||
.status(rocket::http::Status { code: 204 })
|
||||
.ok()
|
||||
|
||||
Reference in New Issue
Block a user