forked from jmug/stoatchat
Merge remote-tracking branch 'revoltchat/master' into webhooks
This commit is contained in:
@@ -14,7 +14,7 @@ pub fn setup_logging(release: &'static str) -> sentry::ClientInitGuard {
|
||||
info!("Starting {release}");
|
||||
|
||||
sentry::init((
|
||||
"https://62fd0e02c5354905b4e286757f4beb16@sentry.insert.moe/4",
|
||||
"https://d1d2a6f15c6245a987c532bbbcb30a04@glitchtip.insert.moe/2",
|
||||
sentry::ClientOptions {
|
||||
release: Some(release.into()),
|
||||
..Default::default()
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
use futures::future::join;
|
||||
use revolt_presence::is_online;
|
||||
use rocket::request::FromParam;
|
||||
use schemars::schema::{InstanceType, Schema, SchemaObject, SingleOrVec};
|
||||
use schemars::JsonSchema;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::models::{Bot, Channel, Emoji, Invite, Member, Message, Server, ServerBan, User, Webhook, Report};
|
||||
use crate::presence::presence_is_online;
|
||||
use crate::models::{
|
||||
Bot, Channel, Emoji, Invite, Member, Message, Report, Server, ServerBan, User, Webhook
|
||||
};
|
||||
use crate::{Database, Error, Result};
|
||||
|
||||
/// Reference to some object in the database
|
||||
@@ -23,7 +25,7 @@ impl Ref {
|
||||
|
||||
/// Fetch user from Ref
|
||||
pub async fn as_user(&self, db: &Database) -> Result<User> {
|
||||
let (user, online) = join(db.fetch_user(&self.id), presence_is_online(&self.id)).await;
|
||||
let (user, online) = join(db.fetch_user(&self.id), is_online(&self.id)).await;
|
||||
let mut user = user?;
|
||||
user.online = Some(online);
|
||||
Ok(user)
|
||||
|
||||
@@ -19,6 +19,12 @@ pub enum Error {
|
||||
/// This error was not labeled :(
|
||||
LabelMe,
|
||||
|
||||
/// Core crate error
|
||||
Core {
|
||||
#[serde(flatten)]
|
||||
error: revolt_result::Error,
|
||||
},
|
||||
|
||||
// ? Onboarding related errors
|
||||
AlreadyOnboarded,
|
||||
|
||||
@@ -39,13 +45,13 @@ pub enum Error {
|
||||
CannotEditMessage,
|
||||
CannotJoinCall,
|
||||
TooManyAttachments {
|
||||
max: usize
|
||||
max: usize,
|
||||
},
|
||||
TooManyReplies {
|
||||
max: usize
|
||||
max: usize,
|
||||
},
|
||||
TooManyChannels {
|
||||
max: usize
|
||||
max: usize,
|
||||
},
|
||||
EmptyMessage,
|
||||
PayloadTooLarge,
|
||||
@@ -64,10 +70,10 @@ pub enum Error {
|
||||
max: usize,
|
||||
},
|
||||
TooManyEmoji {
|
||||
max: usize
|
||||
max: usize,
|
||||
},
|
||||
TooManyRoles {
|
||||
max: usize
|
||||
max: usize,
|
||||
},
|
||||
|
||||
// ? Bot related errors
|
||||
@@ -135,6 +141,11 @@ impl Error {
|
||||
error: validation_error,
|
||||
})
|
||||
}
|
||||
|
||||
/// Create a error from core error
|
||||
pub fn from_core(error: revolt_result::Error) -> Error {
|
||||
Error::Core { error }
|
||||
}
|
||||
}
|
||||
|
||||
/// Result type with custom Error
|
||||
@@ -145,6 +156,7 @@ impl<'r> Responder<'r, 'static> for Error {
|
||||
fn respond_to(self, _: &'r Request<'_>) -> response::Result<'static> {
|
||||
let status = match self {
|
||||
Error::LabelMe => Status::InternalServerError,
|
||||
Error::Core { .. } => Status::InternalServerError,
|
||||
|
||||
Error::AlreadyOnboarded => Status::Forbidden,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user