Expose new API objects, required to use the API (params, success, error structs/enums).

This commit is contained in:
Benoît Courtine
2020-06-09 19:24:21 +02:00
parent 250d0ede69
commit a890621306
11 changed files with 48 additions and 91 deletions

View File

@@ -40,26 +40,7 @@ pub fn urlencode<T: AsRef<str>>(s: T) -> String {
{{#apiInfo}}
{{#apis}}
mod {{{classFilename}}};
{{#operations}}
{{#operation}}
{{^supportAsync}}
{{#-first}}
pub use self::{{{classFilename}}}::{ {{{classname}}}, {{{classname}}}Client };
{{/-first}}
{{/supportAsync}}
{{#supportAsync}}
pub use self::{{{classFilename}}}::{ {{{operationId}}} };
{{/supportAsync}}
{{#vendorExtensions.x-group-parameters}}
{{#allParams}}
{{#-first}}
pub use self::{{{classFilename}}}::{{{operationIdCamelCase}}} as {{{classname}}}{{{operationIdCamelCase}}};
{{/-first}}
{{/allParams}}
{{/vendorExtensions.x-group-parameters}}
{{/operation}}
{{/operations}}
pub mod {{{classFilename}}};
{{/apis}}
{{/apiInfo}}

View File

@@ -8,7 +8,7 @@ pub struct APIClient {
{{#operations}}
{{#operation}}
{{#-last}}
{{{classFilename}}}: Box<dyn crate::apis::{{{classname}}}>,
{{{classFilename}}}: Box<dyn crate::apis::{{{classFilename}}}::{{{classname}}}>,
{{/-last}}
{{/operation}}
{{/operations}}
@@ -26,7 +26,7 @@ impl APIClient {
{{#operations}}
{{#operation}}
{{#-last}}
{{{classFilename}}}: Box::new(crate::apis::{{{classname}}}Client::new(rc.clone())),
{{{classFilename}}}: Box::new(crate::apis::{{{classFilename}}}::{{{classname}}}Client::new(rc.clone())),
{{/-last}}
{{/operation}}
{{/operations}}
@@ -40,7 +40,7 @@ impl APIClient {
{{#operations}}
{{#operation}}
{{#-last}}
pub fn {{{classFilename}}}(&self) -> &dyn crate::apis::{{{classname}}}{
pub fn {{{classFilename}}}(&self) -> &dyn crate::apis::{{{classFilename}}}::{{{classname}}}{
self.{{{classFilename}}}.as_ref()
}

View File

@@ -3,7 +3,7 @@ use std::rc::Rc;
use super::configuration::Configuration;
pub struct APIClient {
default_api: Box<dyn crate::apis::DefaultApi>,
default_api: Box<dyn crate::apis::default_api::DefaultApi>,
}
impl APIClient {
@@ -11,11 +11,11 @@ impl APIClient {
let rc = Rc::new(configuration);
APIClient {
default_api: Box::new(crate::apis::DefaultApiClient::new(rc.clone())),
default_api: Box::new(crate::apis::default_api::DefaultApiClient::new(rc.clone())),
}
}
pub fn default_api(&self) -> &dyn crate::apis::DefaultApi{
pub fn default_api(&self) -> &dyn crate::apis::default_api::DefaultApi{
self.default_api.as_ref()
}

View File

@@ -38,8 +38,7 @@ pub fn urlencode<T: AsRef<str>>(s: T) -> String {
::url::form_urlencoded::byte_serialize(s.as_ref().as_bytes()).collect()
}
mod default_api;
pub use self::default_api::{ DefaultApi, DefaultApiClient };
pub mod default_api;
pub mod client;
pub mod configuration;

View File

@@ -38,28 +38,8 @@ pub fn urlencode<T: AsRef<str>>(s: T) -> String {
::url::form_urlencoded::byte_serialize(s.as_ref().as_bytes()).collect()
}
mod pet_api;
pub use self::pet_api::{ add_pet };
pub use self::pet_api::{ delete_pet };
pub use self::pet_api::{ find_pets_by_status };
pub use self::pet_api::{ find_pets_by_tags };
pub use self::pet_api::{ get_pet_by_id };
pub use self::pet_api::{ update_pet };
pub use self::pet_api::{ update_pet_with_form };
pub use self::pet_api::{ upload_file };
mod store_api;
pub use self::store_api::{ delete_order };
pub use self::store_api::{ get_inventory };
pub use self::store_api::{ get_order_by_id };
pub use self::store_api::{ place_order };
mod user_api;
pub use self::user_api::{ create_user };
pub use self::user_api::{ create_users_with_array_input };
pub use self::user_api::{ create_users_with_list_input };
pub use self::user_api::{ delete_user };
pub use self::user_api::{ get_user_by_name };
pub use self::user_api::{ login_user };
pub use self::user_api::{ logout_user };
pub use self::user_api::{ update_user };
pub mod pet_api;
pub mod store_api;
pub mod user_api;
pub mod configuration;

View File

@@ -5,7 +5,6 @@ use petstore_reqwest_async::apis::configuration;
//use petstore_reqwest::apis::PetApiUpdatePetWithFormParams;
use petstore_reqwest_async::models::{Pet};
use std::option::Option;
use std::rc::Rc;
#[test]
fn test_pet() {
@@ -18,17 +17,10 @@ fn test_pet() {
new_pet.id = Option::Some(8787);
// add pet
let _add_result = petstore_reqwest_async::apis::add_pet(&config, new_pet);
let _add_result = petstore_reqwest_async::apis::pet_api::add_pet(&config, new_pet);
// get pet
let pet_result = petstore_reqwest_async::apis::get_pet_by_id(&config, 8787);
let pet_result = petstore_reqwest_async::apis::pet_api::get_pet_by_id(&config, 8787);
let _pet_result = match pet_result {
Ok(pet) => {
assert_eq!(pet.id, Option::Some(8787));
assert_eq!(pet.name, "Rust Pet");
assert_eq!(pet.photo_urls, vec!["https://11".to_string(), "https://22".to_string()]);
},
Err(error) => println!("error: {:?}", error),
};
// TODO Testing async functions requires some additionnal testing crates.
}

View File

@@ -3,9 +3,9 @@ use std::rc::Rc;
use super::configuration::Configuration;
pub struct APIClient {
pet_api: Box<dyn crate::apis::PetApi>,
store_api: Box<dyn crate::apis::StoreApi>,
user_api: Box<dyn crate::apis::UserApi>,
pet_api: Box<dyn crate::apis::pet_api::PetApi>,
store_api: Box<dyn crate::apis::store_api::StoreApi>,
user_api: Box<dyn crate::apis::user_api::UserApi>,
}
impl APIClient {
@@ -13,21 +13,21 @@ impl APIClient {
let rc = Rc::new(configuration);
APIClient {
pet_api: Box::new(crate::apis::PetApiClient::new(rc.clone())),
store_api: Box::new(crate::apis::StoreApiClient::new(rc.clone())),
user_api: Box::new(crate::apis::UserApiClient::new(rc.clone())),
pet_api: Box::new(crate::apis::pet_api::PetApiClient::new(rc.clone())),
store_api: Box::new(crate::apis::store_api::StoreApiClient::new(rc.clone())),
user_api: Box::new(crate::apis::user_api::UserApiClient::new(rc.clone())),
}
}
pub fn pet_api(&self) -> &dyn crate::apis::PetApi{
pub fn pet_api(&self) -> &dyn crate::apis::pet_api::PetApi{
self.pet_api.as_ref()
}
pub fn store_api(&self) -> &dyn crate::apis::StoreApi{
pub fn store_api(&self) -> &dyn crate::apis::store_api::StoreApi{
self.store_api.as_ref()
}
pub fn user_api(&self) -> &dyn crate::apis::UserApi{
pub fn user_api(&self) -> &dyn crate::apis::user_api::UserApi{
self.user_api.as_ref()
}

View File

@@ -38,12 +38,9 @@ pub fn urlencode<T: AsRef<str>>(s: T) -> String {
::url::form_urlencoded::byte_serialize(s.as_ref().as_bytes()).collect()
}
mod pet_api;
pub use self::pet_api::{ PetApi, PetApiClient };
mod store_api;
pub use self::store_api::{ StoreApi, StoreApiClient };
mod user_api;
pub use self::user_api::{ UserApi, UserApiClient };
pub mod pet_api;
pub mod store_api;
pub mod user_api;
pub mod client;
pub mod configuration;

View File

@@ -1,8 +1,7 @@
extern crate petstore_reqwest;
use petstore_reqwest::apis::PetApi;
use petstore_reqwest::apis::PetApiClient;
use petstore_reqwest::apis::pet_api::PetApi;
use petstore_reqwest::apis::pet_api::PetApiClient;
use petstore_reqwest::apis::configuration;
//use petstore_reqwest::apis::PetApiUpdatePetWithFormParams;
use petstore_reqwest::models::{Pet};
use std::option::Option;
use std::rc::Rc;
@@ -23,12 +22,22 @@ fn test_pet() {
// get pet
let pet_result = pet_api_client.get_pet_by_id(8787);
let _pet_result = match pet_result {
Ok(pet) => {
assert_eq!(pet.id, Option::Some(8787));
assert_eq!(pet.name, "Rust Pet");
assert_eq!(pet.photo_urls, vec!["https://11".to_string(), "https://22".to_string()]);
match pet_result {
Ok(resp) => {
match resp.entity {
Some(petstore_reqwest::apis::pet_api::GetPetByIdSuccess::Status200(pet)) => {
assert_eq!(pet.id, Option::Some(8787));
assert_eq!(pet.name, "Rust Pet");
assert_eq!(pet.photo_urls, vec!["https://11".to_string(), "https://22".to_string()]);
},
_ => {
panic!("Response should contain a pet entity");
},
};
},
Err(error) => {
println!("error: {:?}", error);
panic!("Query should succeed");
},
Err(error) => println!("error: {:?}", error),
};
}

View File

@@ -3,7 +3,7 @@ use std::rc::Rc;
use super::configuration::Configuration;
pub struct APIClient {
default_api: Box<dyn crate::apis::DefaultApi>,
default_api: Box<dyn crate::apis::default_api::DefaultApi>,
}
impl APIClient {
@@ -11,11 +11,11 @@ impl APIClient {
let rc = Rc::new(configuration);
APIClient {
default_api: Box::new(crate::apis::DefaultApiClient::new(rc.clone())),
default_api: Box::new(crate::apis::default_api::DefaultApiClient::new(rc.clone())),
}
}
pub fn default_api(&self) -> &dyn crate::apis::DefaultApi{
pub fn default_api(&self) -> &dyn crate::apis::default_api::DefaultApi{
self.default_api.as_ref()
}

View File

@@ -38,8 +38,7 @@ pub fn urlencode<T: AsRef<str>>(s: T) -> String {
::url::form_urlencoded::byte_serialize(s.as_ref().as_bytes()).collect()
}
mod default_api;
pub use self::default_api::{ DefaultApi, DefaultApiClient };
pub mod default_api;
pub mod client;
pub mod configuration;