a06673b
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<ReleasePage> {
usecase::list_releases(self, actor, repo_id, q).await
}
pub async fn get_release(
&self,
actor: Uuid,
repo_id: Uuid,
release_id: Uuid,
) -> RepoResult<ReleaseView> {
usecase::get_release(self, actor, repo_id, release_id).await
}
pub async fn get_latest_release(&self, actor: Uuid, repo_id: Uuid) -> RepoResult<ReleaseView> {
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<ReleaseView> {
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<ReleaseView> {
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<ReleaseView> {
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
}
}