Skip to content
Clone
a06673b
30 lines 929 B Rust
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<milestone_entity::Model> {
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)
}