feat(issues): add issue_repo_rel usecase list
zhenyi committed
Added lib/issues/features/issue_repo_rel/usecase/list.rs lib/issues/features/issue_repo_rel/usecase/list.rs +25 −0 View lib/issues/features/issue_repo_rel/usecase/list.rs
@@ -0,0 +1,25 @@
1use db::conn::sea_orm::*;
2use db::issue::issue_relation_repo as repo_rel_entity;
3use uuid::Uuid;
4
5use crate::error::IssueResult;
6use crate::features::IssueService;
7
8use super::super::types::RepoRelView;
9use super::helpers::require_authenticated;
10
11pub async fn list_repo_rels(
12 svc: &IssueService,
13 actor: Uuid,
14 channel_id: Uuid,
15 issue_id: Uuid,
16) -> IssueResult<Vec<RepoRelView>> {
17 require_authenticated(actor)?;
18 crate::features::issue::usecase::load_issue(svc, channel_id, issue_id).await?;
19 let db = svc.db.reader();
20 let rows = repo_rel_entity::Entity::find()
21 .filter(repo_rel_entity::COLUMN.issue_id.eq(issue_id))
22 .all(&db)
23 .await?;
24 Ok(rows.into_iter().map(RepoRelView::from).collect())
25}