added delete function

This commit is contained in:
Waradu 2024-10-19 22:52:32 +02:00
parent 67788708fd
commit 04846fc51a
No known key found for this signature in database
GPG key ID: F85AAC8BA8B8DAAD
4 changed files with 38 additions and 8 deletions

2
Cargo.lock generated
View file

@ -1084,7 +1084,7 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
[[package]] [[package]]
name = "streamshare" name = "streamshare"
version = "1.0.0" version = "1.1.0"
dependencies = [ dependencies = [
"futures", "futures",
"reqwest", "reqwest",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "streamshare" name = "streamshare"
version = "1.0.0" version = "1.1.0"
edition = "2021" edition = "2021"
description = "Upload to streamshare library" description = "Upload to streamshare library"
license = "MIT" license = "MIT"

View file

@ -4,6 +4,7 @@ Upload files to [streamshare](https://streamshare.wireway.ch)
#### Example: #### Example:
Upload:
```rust ```rust
match upload(&file_path).await { match upload(&file_path).await {
Ok((file_identifier, _deletion_token)) => { Ok((file_identifier, _deletion_token)) => {
@ -18,3 +19,11 @@ match upload(&file_path).await {
Err(e) => eprintln!("Error: {}", e), Err(e) => eprintln!("Error: {}", e),
} }
``` ```
Delete:
```rust
match streamshare::delete(identifier, deltoken).await {
Ok(_) => println!("File deleted successfully"),
Err(e) => eprintln!("Error deleting file: {}", e),
}
```

View file

@ -1,11 +1,14 @@
use tokio::fs; use futures::{SinkExt, StreamExt};
use tokio::io::AsyncReadExt;
use std::path::Path;
use reqwest::Client; use reqwest::Client;
use serde::Deserialize; use serde::Deserialize;
use std::path::Path;
use tokio::fs;
use tokio::fs::File; use tokio::fs::File;
use tokio_tungstenite::{connect_async, tungstenite::{self, Message}}; use tokio::io::AsyncReadExt;
use futures::{SinkExt, StreamExt}; use tokio_tungstenite::{
connect_async,
tungstenite::{self, Message},
};
#[derive(Deserialize)] #[derive(Deserialize)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
@ -81,5 +84,23 @@ pub async fn upload(file_path: &str) -> Result<(String, String), Box<dyn std::er
})) }))
.await?; .await?;
Ok((create_response.file_identifier, create_response.deletion_token)) Ok((
create_response.file_identifier,
create_response.deletion_token,
))
}
pub async fn delete(identifier: &str, deltoken: &str) -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new();
let delete_url = format!(
"https://streamshare.wireway.ch/api/delete/{}/{}",
identifier, deltoken
);
let res = client.delete(&delete_url).send().await?;
if res.status().is_success() {
Ok(())
} else {
Err(format!("Failed to delete file: {}", res.status()).into())
}
} }