Skip to content
Clone
d5939db
25 lines 669 B Rust
use db::conn::sea_orm::*;
use uuid::Uuid;
use crate::error::IssueResult;
use crate::features::IssueService;
use super::helpers::{load_pin, require_authenticated};
pub async fn delete_pin(
svc: &IssueService,
actor: Uuid,
_channel_id: Uuid,
collection_id: Uuid,
pin_id: Uuid,
) -> IssueResult<()> {
require_authenticated(actor)?;
let cur = load_pin(svc, pin_id).await?;
if cur.collection_id != collection_id {
return Err(crate::error::IssueError::NotFound(format!("pin {pin_id}")));
}
let db = svc.db.writer();
let active: db::issue::issue_pin::ActiveModel = cur.into();
active.delete(&db).await?;
Ok(())
}