use uuid::Uuid; use crate::error::IssueResult; use crate::features::IssueService; use super::usecase; use super::{ CloseIssueOption, CreateIssueOption, IssuePage, IssueView, ListIssueQuery, UpdateIssueOption, }; impl IssueService { pub async fn create_issue( &self, actor: Uuid, channel_id: Uuid, input: CreateIssueOption, ) -> IssueResult { usecase::create_issue(self, actor, channel_id, input).await } pub async fn get_issue( &self, actor: Uuid, channel_id: Uuid, issue_id: Uuid, ) -> IssueResult { usecase::get_issue(self, actor, channel_id, issue_id).await } pub async fn list_issues( &self, actor: Uuid, channel_id: Uuid, q: ListIssueQuery, ) -> IssueResult { usecase::list_issues(self, actor, channel_id, q).await } pub async fn update_issue( &self, actor: Uuid, channel_id: Uuid, issue_id: Uuid, input: UpdateIssueOption, ) -> IssueResult { usecase::update_issue(self, actor, channel_id, issue_id, input).await } pub async fn close_issue( &self, actor: Uuid, channel_id: Uuid, issue_id: Uuid, input: CloseIssueOption, ) -> IssueResult { usecase::close_issue(self, actor, channel_id, issue_id, input).await } pub async fn delete_issue( &self, actor: Uuid, channel_id: Uuid, issue_id: Uuid, ) -> IssueResult<()> { usecase::delete_issue(self, actor, channel_id, issue_id).await } }