use db::conn::sea_orm::*; use db::issue::milestone as milestone_entity; use uuid::Uuid; use crate::error::{IssueError, IssueResult}; use crate::features::IssueService; use super::super::super::issue::usecase::load_issue_collection; pub fn require_authenticated(actor: Uuid) -> IssueResult<()> { if actor.is_nil() { return Err(IssueError::Unauthorized("authentication required".into())); } Ok(()) } pub async fn load_milestone( svc: &IssueService, channel_id: Uuid, milestone_id: Uuid, ) -> IssueResult { let collection = load_issue_collection(svc, channel_id).await?; let db = svc.db.reader(); let m = milestone_entity::Entity::find_by_id(milestone_id) .filter(milestone_entity::COLUMN.collection_id.eq(collection.id)) .one(&db) .await? .ok_or_else(|| IssueError::NotFound(format!("milestone {milestone_id}")))?; Ok(m) }