summaryrefslogtreecommitdiff
path: root/src/traits.rs
diff options
context:
space:
mode:
authorjakka <jakka@jakka.su>2025-09-18 17:12:57 +0300
committerjakka <jakka@jakka.su>2025-09-18 17:12:57 +0300
commit6b0a6c0ca36c181d55c78a5dca46f1890c9cce38 (patch)
tree31f47d540ee8f36a2a093b65161f655ba4a72455 /src/traits.rs
parentbdc2e645c2d174881f7278139de95b141328431e (diff)
cleaned up documentation. added the rest of file importing and deleting api functions
Diffstat (limited to 'src/traits.rs')
-rw-r--r--src/traits.rs41
1 files changed, 31 insertions, 10 deletions
diff --git a/src/traits.rs b/src/traits.rs
index d3390a5..6cdf094 100644
--- a/src/traits.rs
+++ b/src/traits.rs
@@ -5,37 +5,58 @@ use async_trait::async_trait;
type Result<T> = std::result::Result<T, HydrusError>;
-/// trait for accessing and managing keys and services
+/// Trait for accessing and managing keys and services.
#[async_trait]
pub trait AccessManagement {
- /// request new api key
+ /// Register a new external program with the client. This requires the 'add from api request' mini-dialog under services->review services to be open, otherwise it will 403.
async fn request_new_permissions(
&self,
name: &str,
permissions: &[HydrusPermissions],
) -> Result<String>;
- /// request new session key
+ /// Get a new session key.
async fn get_session_key(&self) -> Result<String>;
- /// verify session or api key
+ /// Check your access key is valid.
async fn verify_access_key(&self, key: &str) -> Result<KeyInfo>;
- /// get service info by providing service name
+ /// Ask the client about a specific service by providing its name.
async fn get_service_name(&self, name: &str) -> Result<Service>;
- /// get service info by providing service key
+ /// Ask the client about a specific service by providing its key.
async fn get_service_key(&self, key: &str) -> Result<Service>;
- /// get all service info
+ /// Ask the client about its services.
async fn get_services(&self) -> Result<HashMap<String, Service>>;
}
-/// trait for importing and deleting files
+/// Trait for importing and deleting files.
#[async_trait]
pub trait ImportingAndDeletingFiles {
- /// import file into hydrus by providing a local (hydrus-local) file path
+ /// Tell the client to import a file by providing a local (hydrus-local) file path.
async fn add_file_via_path(
&self,
path: PathBuf,
delete: Option<bool>,
domains: Option<FileDomain>,
) -> Result<AddFileResponse>;
- /// import file into hydrus by sending the file
+ /// Tell the client to import a file by sending the file.
async fn add_file_via_file(&self, file: PathBuf) -> Result<AddFileResponse>;
+ /// Tell the client to send files to the trash.
+ async fn delete_files(
+ &self,
+ file: HydrusFile,
+ domain: Option<FileDomain>,
+ reason: Option<String>,
+ ) -> Result<()>;
+ /// Tell the client to restore files that were previously deleted to their old file service(s).
+ async fn undelete_files(&self, file: HydrusFile, domain: Option<FileDomain>) -> Result<()>;
+ /// Tell the client to forget that it once deleted files.
+ async fn clear_file_deletion_records(&self, file: HydrusFile) -> Result<()>;
+ /// Copy files from one local file domain to another.
+ async fn migrate_files(&self, file: HydrusFile, domain: FileDomain) -> Result<()>;
+ /// Tell the client to archive inboxed files.
+ async fn archive_files(&self, file: HydrusFile) -> Result<()>;
+ /// Tell the client re-inbox archived files.
+ async fn unarchive_files(&self, file: HydrusFile) -> Result<()>;
+ /// Generate hashes for an arbitrary file by providing a local path to the file.
+ async fn generate_hashes_for_path(&self, file: PathBuf) -> Result<HashResponse>;
+ /// Generate hashes for an arbitrary file by sending the file.
+ async fn generate_hashes_for_file(&self, file: PathBuf) -> Result<HashResponse>;
}