feat(issues): add issue_user usecase helpers
zhenyi committed
Added lib/issues/features/issue_user/usecase/helpers.rs lib/issues/features/issue_user/usecase/helpers.rs +28 −0 View lib/issues/features/issue_user/usecase/helpers.rs
@@ -0,0 +1,28 @@
1use db::conn::sea_orm::*;
2use db::issue::issue_user as issue_user_entity;
3use uuid::Uuid;
4
5use crate::error::{IssueError, IssueResult};
6use crate::features::IssueService;
7
8pub fn require_authenticated(actor: Uuid) -> IssueResult<()> {
9 if actor.is_nil() {
10 return Err(IssueError::Unauthorized("authentication required".into()));
11 }
12 Ok(())
13}
14
15pub async fn load_issue_user(
16 svc: &IssueService,
17 issue_id: Uuid,
18 uid: Uuid,
19) -> IssueResult<issue_user_entity::Model> {
20 let db = svc.db.reader();
21 let r = issue_user_entity::Entity::find()
22 .filter(issue_user_entity::COLUMN.issue_id.eq(issue_id))
23 .filter(issue_user_entity::COLUMN.uid.eq(uid))
24 .one(&db)
25 .await?
26 .ok_or_else(|| IssueError::NotFound(format!("issue-user {issue_id}/{uid}")))?;
27 Ok(r)
28}