use revolt_database::util::reference::Reference; use revolt_database::{Database, User, AMQP}; use revolt_models::v0; use revolt_result::{create_error, Result}; use rocket::serde::json::Json; use rocket::State; /// # Accept Friend Request /// /// Accept another user's friend request. #[openapi(tag = "Relationships")] #[put("//friend")] pub async fn add( db: &State, amqp: &State, mut user: User, target: Reference<'_>, ) -> Result> { let mut target = target.as_user(db).await?; if user.bot.is_some() || target.bot.is_some() { return Err(create_error!(IsBot)); } user.add_friend(db, amqp, &mut target).await?; Ok(Json(target.into(db, &user).await)) }