Make vrcapi async

This commit is contained in:
C0D3 M4513R
2024-05-14 19:13:00 +02:00
parent 8ab0a0bc9f
commit 4f7444e16c
2 changed files with 13 additions and 6 deletions

View File

@@ -1,12 +1,13 @@
pub use vrchatapi::apis; pub use vrchatapi::apis;
fn main() { #[tokio::main]
async fn main() {
let mut config = apis::configuration::Configuration::default(); let mut config = apis::configuration::Configuration::default();
config.basic_auth = Some((String::from("username"), Some(String::from("password")))); config.basic_auth = Some((String::from("username"), Some(String::from("password"))));
let me = apis::authentication_api::get_current_user(&config).unwrap(); let me = apis::authentication_api::get_current_user(&config).await.unwrap();
println!("Username: {}", me.username); println!("Username: {}", me.username.unwrap());
let online = apis::system_api::get_current_online_users(&config).unwrap(); let online = apis::system_api::get_current_online_users(&config).await.unwrap();
println!("Current Online Users: {}", online); println!("Current Online Users: {}", online);
} }

View File

@@ -1,11 +1,11 @@
#!/bin/bash #!/usr/bin/env bash
# Generate Client # Generate Client
rm src/apis src/models docs -rf rm src/apis src/models docs -rf
./node_modules/\@openapitools/openapi-generator-cli/main.js generate \ ./node_modules/\@openapitools/openapi-generator-cli/main.js generate \
-g rust \ -g rust \
--additional-properties=packageName=vrchatapi,supportAsync=false \ --additional-properties=packageName=vrchatapi,supportAsync=true \
--git-user-id=vrchatapi \ --git-user-id=vrchatapi \
--git-repo-id=vrchatapi-rust \ --git-repo-id=vrchatapi-rust \
-o . \ -o . \
@@ -23,8 +23,14 @@ find src -type f -exec sed -i '/The version of the OpenAPI document/d' {} \;
# Cookie storage # Cookie storage
sed -i 's/Client::new()/Client::builder().cookie_store(true).build().unwrap()/g' src/apis/configuration.rs sed -i 's/Client::new()/Client::builder().cookie_store(true).build().unwrap()/g' src/apis/configuration.rs
sed -i 's/features = \["json", "multipart"\]/features = \["json", "cookies", "multipart"\]/g' Cargo.toml
#Fix example
printf "\n[dev-dependencies]\ntokio = { version = '1', features = ['macros', 'rt-multi-thread'] }" >> Cargo.toml
# https://github.com/OpenAPITools/openapi-generator/issues/14171 # https://github.com/OpenAPITools/openapi-generator/issues/14171
# Replace Option<GroupSearchSort> with Option<crate::models::GroupSearchSort> in src/apis
sed -i 's/Option<GroupSearchSort>/Option<crate::models::GroupSearchSort>/g' src/apis/*.rs
# Replace Option<SortOption with Option<crate::models::SortOption in src/apis # Replace Option<SortOption with Option<crate::models::SortOption in src/apis
sed -i 's/Option<SortOption>/Option<crate::models::SortOption>/g' src/apis/*.rs sed -i 's/Option<SortOption>/Option<crate::models::SortOption>/g' src/apis/*.rs
# Replace Option<ReleaseStatus with Option<crate::models::ReleaseStatus in src/apis # Replace Option<ReleaseStatus with Option<crate::models::ReleaseStatus in src/apis