forked from jmug/stoatchat
refactor(delta): port routes to core webhook models
This commit is contained in:
@@ -1,18 +1,19 @@
|
||||
use revolt_quark::{Db, Ref, Result, EmptyResponse, Error};
|
||||
use revolt_database::Database;
|
||||
use revolt_result::Result;
|
||||
use rocket::State;
|
||||
use rocket_empty::EmptyResponse;
|
||||
|
||||
/// # Deletes a webhook
|
||||
///
|
||||
/// deletes a webhook with a token
|
||||
/// Deletes a webhook with a token
|
||||
#[openapi(tag = "Webhooks")]
|
||||
#[delete("/<target>/<token>")]
|
||||
pub async fn webhook_delete_token(db: &Db, target: Ref, token: String) -> Result<EmptyResponse> {
|
||||
let webhook = target.as_webhook(db).await?;
|
||||
|
||||
(webhook.token.as_deref() == Some(&token))
|
||||
.then_some(())
|
||||
.ok_or(Error::InvalidCredentials)?;
|
||||
|
||||
webhook.delete(db).await?;
|
||||
|
||||
Ok(EmptyResponse)
|
||||
#[delete("/<webhook_id>/<token>")]
|
||||
pub async fn webhook_delete_token(
|
||||
db: &State<Database>,
|
||||
webhook_id: String,
|
||||
token: String,
|
||||
) -> Result<EmptyResponse> {
|
||||
let webhook = db.fetch_webhook(&webhook_id).await?;
|
||||
webhook.assert_token(&token)?;
|
||||
webhook.delete(db).await.map(|_| EmptyResponse)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user