diff --git a/Cargo.lock b/Cargo.lock index 7b39a7f..9ed46a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,21 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "aho-corasick" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" -dependencies = [ - "memchr", -] - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "autocfg" version = "1.1.0" @@ -59,22 +44,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "config" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369" -dependencies = [ - "lazy_static", - "nom", - "rust-ini", - "serde 1.0.163", - "serde-hjson", - "serde_json", - "toml", - "yaml-rust", -] - [[package]] name = "core-foundation" version = "0.9.3" @@ -392,31 +361,12 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -[[package]] -name = "lexical-core" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" -dependencies = [ - "arrayvec", - "bitflags", - "cfg-if", - "ryu", - "static_assertions", -] - [[package]] name = "libc" version = "0.2.144" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.3.8" @@ -494,41 +444,11 @@ dependencies = [ name = "next-sync" version = "0.1.0" dependencies = [ - "config", "dotenv", "reqwest", "tokio", ] -[[package]] -name = "nom" -version = "5.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" -dependencies = [ - "lexical-core", - "memchr", - "version_check", -] - -[[package]] -name = "num-traits" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -dependencies = [ - "num-traits 0.2.15", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", -] - [[package]] name = "num_cpus" version = "1.15.0" @@ -672,23 +592,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "regex" -version = "1.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81ca098a9821bd52d6b24fd8b10bd081f47d39c22778cafaa75a2857a62c6390" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" - [[package]] name = "reqwest" version = "0.11.18" @@ -714,7 +617,7 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "serde 1.0.163", + "serde", "serde_json", "serde_urlencoded", "tokio", @@ -727,12 +630,6 @@ dependencies = [ "winreg", ] -[[package]] -name = "rust-ini" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" - [[package]] name = "rustix" version = "0.37.19" @@ -791,30 +688,12 @@ dependencies = [ "libc", ] -[[package]] -name = "serde" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" - [[package]] name = "serde" version = "1.0.163" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" -[[package]] -name = "serde-hjson" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" -dependencies = [ - "lazy_static", - "num-traits 0.1.43", - "regex", - "serde 0.8.23", -] - [[package]] name = "serde_json" version = "1.0.96" @@ -823,7 +702,7 @@ checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" dependencies = [ "itoa", "ryu", - "serde 1.0.163", + "serde", ] [[package]] @@ -835,7 +714,7 @@ dependencies = [ "form_urlencoded", "itoa", "ryu", - "serde 1.0.163", + "serde", ] [[package]] @@ -872,12 +751,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "syn" version = "2.0.18" @@ -971,15 +844,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde 1.0.163", -] - [[package]] name = "tower-service" version = "0.3.2" @@ -1334,12 +1198,3 @@ checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" dependencies = [ "winapi", ] - -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] diff --git a/src/main.rs b/src/main.rs index 5e559b4..90719d0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,6 @@ use reqwest::Client; +use std::fs::File; +use std::io::Read; use reqwest::header::{HeaderValue, CONTENT_TYPE, HeaderMap}; use std::error::Error; use std::env; @@ -54,9 +56,44 @@ async fn send_propfind_request() -> Result<(), Box> { Ok(()) } +async fn upload_file(path: &str) -> Result<(), Box> { + dotenv().ok(); + + let mut api_endpoint = env::var("HOST").unwrap().to_owned(); + api_endpoint.push_str("/remote.php/dav/files/"); + let username = env::var("USERNAME").unwrap(); + api_endpoint.push_str(&username); + api_endpoint.push_str("/test/ok"); + let password = env::var("PASSWORD").unwrap(); + + let mut file = File::open("./file.test")?; + let mut buffer = Vec::new(); + file.read_to_end(&mut buffer)?; + + // Create a reqwest client + let client = Client::new(); + + // Send the request + let response = client + .request(reqwest::Method::PUT, api_endpoint) + .basic_auth(username, Some(password)) + .body(buffer) + .send() + .await?; + + // Handle the response + if response.status().is_success() { + let body = response.text().await?; + println!("Response body: {}", body); + } else { + println!("Request failed with status code: {}", response.status()); + } + Ok(()) +} + fn main() { tokio::runtime::Runtime::new().unwrap().block_on(async { - if let Err(err) = send_propfind_request().await { + if let Err(err) = upload_file("tkt").await { eprintln!("Error: {}", err); } });