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::{
file::{Checked, FileTrait},
sharry::{AliasID, NewShareRequest, Uri},
sharry::{AliasID, Uri, json::NewShareRequest},
};
#[derive(Parser)]

View file

@ -50,7 +50,7 @@ impl sharry::Client for ureq::Agent {
&self,
uri: &Uri,
alias_id: &AliasID,
data: sharry::NewShareRequest,
data: sharry::json::NewShareRequest,
) -> crate::Result<ShareID> {
let res = {
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)?;
res.body_mut()
.read_json::<sharry::NewShareResponse>()
.read_json::<sharry::json::NewShareResponse>()
.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)?;
res.body_mut()
.read_json::<sharry::NotifyShareResponse>()
.read_json::<sharry::json::NotifyShareResponse>()
.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};
pub use ids::{AliasID, FileID, ShareID};
pub use uri::Uri;
#[derive(Serialize, Debug)]
#[allow(non_snake_case)]
pub struct NewShareRequest {

View file

@ -1,7 +1,35 @@
mod api;
mod client;
mod ids;
pub mod json;
mod uri;
pub use api::{
AliasID, FileID, NewShareRequest, NewShareResponse, NotifyShareResponse, ShareID, Uri,
};
pub use client::Client;
pub use ids::{AliasID, FileID, ShareID};
pub use uri::Uri;
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<()>;
}