use db::conn::sea_orm::*; use db::issue::issue_user as issue_user_entity; use uuid::Uuid; use crate::error::{IssueError, IssueResult}; use crate::features::IssueService; pub fn require_authenticated(actor: Uuid) -> IssueResult<()> { if actor.is_nil() { return Err(IssueError::Unauthorized("authentication required".into())); } Ok(()) } pub async fn load_issue_user( svc: &IssueService, issue_id: Uuid, uid: Uuid, ) -> IssueResult { let db = svc.db.reader(); let r = issue_user_entity::Entity::find() .filter(issue_user_entity::COLUMN.issue_id.eq(issue_id)) .filter(issue_user_entity::COLUMN.uid.eq(uid)) .one(&db) .await? .ok_or_else(|| IssueError::NotFound(format!("issue-user {issue_id}/{uid}")))?; Ok(r) }