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(()) }