use uuid::Uuid; use crate::error::RepoResult; use crate::features::RepoService; use super::types::{ CreateReleaseOption, EditReleaseOption, ListReleaseQuery, ReleasePage, ReleaseView, }; use super::usecase; impl RepoService { pub async fn list_releases( &self, actor: Uuid, repo_id: Uuid, q: ListReleaseQuery, ) -> RepoResult { usecase::list_releases(self, actor, repo_id, q).await } pub async fn get_release( &self, actor: Uuid, repo_id: Uuid, release_id: Uuid, ) -> RepoResult { usecase::get_release(self, actor, repo_id, release_id).await } pub async fn get_latest_release(&self, actor: Uuid, repo_id: Uuid) -> RepoResult { usecase::get_latest_release(self, actor, repo_id).await } pub async fn get_release_by_tag( &self, actor: Uuid, repo_id: Uuid, tag: &str, ) -> RepoResult { usecase::get_release_by_tag(self, actor, repo_id, tag).await } pub async fn create_release( &self, actor: Uuid, repo_id: Uuid, input: CreateReleaseOption, ) -> RepoResult { usecase::create_release(self, actor, repo_id, input).await } pub async fn edit_release( &self, actor: Uuid, repo_id: Uuid, release_id: Uuid, input: EditReleaseOption, ) -> RepoResult { usecase::edit_release(self, actor, repo_id, release_id, input).await } pub async fn delete_release( &self, actor: Uuid, repo_id: Uuid, release_id: Uuid, ) -> RepoResult<()> { usecase::delete_release(self, actor, repo_id, release_id).await } pub async fn delete_release_by_tag( &self, actor: Uuid, repo_id: Uuid, tag: &str, ) -> RepoResult<()> { usecase::delete_release_by_tag(self, actor, repo_id, tag).await } }