consolidate sharry module

This commit is contained in:
Jörn-Michael Miehe 2025-06-27 08:34:13 +00:00
parent c10d86ff65
commit bc4c15d17c
7 changed files with 38 additions and 49 deletions

View file

@ -11,7 +11,7 @@ use log::LevelFilter;
use crate::{ use crate::{
file::{Checked, FileTrait}, file::{Checked, FileTrait},
sharry::{AliasID, NewShareRequest, Uri}, sharry::{AliasID, Uri, json::NewShareRequest},
}; };
#[derive(Parser)] #[derive(Parser)]

View file

@ -50,7 +50,7 @@ impl sharry::Client for ureq::Agent {
&self, &self,
uri: &Uri, uri: &Uri,
alias_id: &AliasID, alias_id: &AliasID,
data: sharry::NewShareRequest, data: sharry::json::NewShareRequest,
) -> crate::Result<ShareID> { ) -> crate::Result<ShareID> {
let res = { let res = {
let endpoint = uri.share_create(); let endpoint = uri.share_create();
@ -65,7 +65,7 @@ impl sharry::Client for ureq::Agent {
crate::Error::res_status_check(res.status(), ureq::http::StatusCode::OK)?; crate::Error::res_status_check(res.status(), ureq::http::StatusCode::OK)?;
res.body_mut() res.body_mut()
.read_json::<sharry::NewShareResponse>() .read_json::<sharry::json::NewShareResponse>()
.map_err(crate::Error::response)? .map_err(crate::Error::response)?
}; };
@ -94,7 +94,7 @@ impl sharry::Client for ureq::Agent {
crate::Error::res_status_check(res.status(), ureq::http::StatusCode::OK)?; crate::Error::res_status_check(res.status(), ureq::http::StatusCode::OK)?;
res.body_mut() res.body_mut()
.read_json::<sharry::NotifyShareResponse>() .read_json::<sharry::json::NotifyShareResponse>()
.map_err(crate::Error::response)? .map_err(crate::Error::response)?
}; };

View file

@ -1,33 +0,0 @@
use crate::file;
use super::{
AliasID, ShareID,
api::{FileID, NewShareRequest, Uri},
};
pub trait Client {
fn share_create(
&self,
uri: &Uri,
alias_id: &AliasID,
data: NewShareRequest,
) -> crate::Result<ShareID>;
fn share_notify(&self, uri: &Uri, alias_id: &AliasID, share_id: &ShareID) -> crate::Result<()>;
fn file_create(
&self,
uri: &Uri,
alias_id: &AliasID,
share_id: &ShareID,
file: &file::Checked,
) -> crate::Result<FileID>;
fn file_patch(
&self,
uri: &Uri,
alias_id: &AliasID,
share_id: &ShareID,
chunk: &file::Chunk,
) -> crate::Result<()>;
}

View file

@ -1,11 +1,5 @@
mod ids;
mod uri;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
pub use ids::{AliasID, FileID, ShareID};
pub use uri::Uri;
#[derive(Serialize, Debug)] #[derive(Serialize, Debug)]
#[allow(non_snake_case)] #[allow(non_snake_case)]
pub struct NewShareRequest { pub struct NewShareRequest {

View file

@ -1,7 +1,35 @@
mod api; mod ids;
mod client; pub mod json;
mod uri;
pub use api::{ pub use ids::{AliasID, FileID, ShareID};
AliasID, FileID, NewShareRequest, NewShareResponse, NotifyShareResponse, ShareID, Uri, pub use uri::Uri;
};
pub use client::Client; use crate::file;
pub trait Client {
fn share_create(
&self,
uri: &Uri,
alias_id: &AliasID,
data: json::NewShareRequest,
) -> crate::Result<ShareID>;
fn share_notify(&self, uri: &Uri, alias_id: &AliasID, share_id: &ShareID) -> crate::Result<()>;
fn file_create(
&self,
uri: &Uri,
alias_id: &AliasID,
share_id: &ShareID,
file: &file::Checked,
) -> crate::Result<FileID>;
fn file_patch(
&self,
uri: &Uri,
alias_id: &AliasID,
share_id: &ShareID,
chunk: &file::Chunk,
) -> crate::Result<()>;
}