Skip to content
Clone

feat(issues): add milestone usecase helpers

zhenyi committed
parent 8d216a0 commit 6f4c360 Browse files

1 file changed

+30 −0

Added lib/issues/features/milestone/usecase/helpers.rs View lib/issues/features/milestone/usecase/helpers.rs
@@ -0,0 +1,30 @@
1use db::conn::sea_orm::*;
2use db::issue::milestone as milestone_entity;
3use uuid::Uuid;
4
5use crate::error::{IssueError, IssueResult};
6use crate::features::IssueService;
7
8use super::super::super::issue::usecase::load_issue_collection;
9
10pub fn require_authenticated(actor: Uuid) -> IssueResult<()> {
11 if actor.is_nil() {
12 return Err(IssueError::Unauthorized("authentication required".into()));
13 }
14 Ok(())
15}
16
17pub async fn load_milestone(
18 svc: &IssueService,
19 channel_id: Uuid,
20 milestone_id: Uuid,
21) -> IssueResult<milestone_entity::Model> {
22 let collection = load_issue_collection(svc, channel_id).await?;
23 let db = svc.db.reader();
24 let m = milestone_entity::Entity::find_by_id(milestone_id)
25 .filter(milestone_entity::COLUMN.collection_id.eq(collection.id))
26 .one(&db)
27 .await?
28 .ok_or_else(|| IssueError::NotFound(format!("milestone {milestone_id}")))?;
29 Ok(m)
30}
No newline at end of file