1use crate::low_level::apis::{lfs_api, Error};
2use crate::models;
3
4use super::RepoClient;
5
6#[derive(Clone, Debug)]
8pub struct LfsClient<'a> {
9 pub(super) repo: &'a RepoClient<'a>,
10}
11
12impl LfsClient<'_> {
13 #[tracing::instrument(skip(self, request), fields(org = self.repo.org.org, repo = self.repo.repo), err(Debug))]
19 pub async fn upload(
20 &self,
21 request: models::PostByOrgByRepoLfsObjectsRequest,
22 ) -> Result<
23 models::PostByOrgByRepoLfsObjects200Response,
24 Error<lfs_api::PostByOrgByRepoLfsObjectsError>,
25 > {
26 lfs_api::post_by_org_by_repo_lfs_objects(
27 self.repo.org.config,
28 self.repo.org.org,
29 self.repo.repo,
30 Some(request),
31 )
32 .await
33 }
34
35 #[tracing::instrument(skip(self, request), fields(org = self.repo.org.org, repo = self.repo.repo), err(Debug))]
41 pub async fn download(
42 &self,
43 request: models::PostByOrgByRepoLfsObjectsDownloadRequest,
44 ) -> Result<
45 models::PostByOrgByRepoLfsObjects200Response,
46 Error<lfs_api::PostByOrgByRepoLfsObjectsDownloadError>,
47 > {
48 lfs_api::post_by_org_by_repo_lfs_objects_download(
49 self.repo.org.config,
50 self.repo.org.org,
51 self.repo.repo,
52 Some(request),
53 )
54 .await
55 }
56}