a06673b
use db::conn::sea_orm::*;
use uuid::Uuid;
use crate::error::{IssueError, IssueResult};
use crate::features::IssueService;
use super::helpers::{load_reaction, require_authenticated};
pub async fn delete_reaction(
svc: &IssueService,
actor: Uuid,
reaction_id: Uuid,
) -> IssueResult<()> {
require_authenticated(actor)?;
let cur = load_reaction(svc, reaction_id).await?;
if cur.user_id != actor {
return Err(IssueError::Forbidden(
"only the reaction owner can delete".into(),
));
}
let db = svc.db.writer();
let active: db::issue::issue_reactions::ActiveModel = cur.into();
active.delete(&db).await?;
Ok(())
}