Generate models for error deserialization.

This commit is contained in:
Benoît Courtine 2020-05-30 09:46:10 +02:00
parent 755fc693a6
commit ff3d510a69
9 changed files with 129 additions and 43 deletions

View File

@ -50,10 +50,24 @@ pub struct {{{operationIdCamelCase}}}Params {
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum {{{operationIdCamelCase}}}Errors {
// TODO Generate an enum case for each error described in schema.
{{#responses}}
{{#is3xx}}
Status{{code}}({{#isEnum}}{{{enumName}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}),
{{/is3xx}}
{{#is4xx}}
Status{{code}}({{#isEnum}}{{{enumName}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}),
{{/is4xx}}
{{#is5xx}}
Status{{code}}({{#isEnum}}{{{enumName}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}),
{{/is5xx}}
{{#isDefault}}
DefaultResponse({{#isEnum}}{{{enumName}}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}),
{{/isDefault}}
{{/responses}}
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
{{/operation}}
{{/operations}}

View File

@ -34,11 +34,12 @@ impl DefaultApiClient {
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FileresponsetestErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(std::path::PathBuf),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
pub trait DefaultApi {
fn fileresponsetest(&self, ) -> Result<std::path::PathBuf, Error<FileresponsetestErrors>>;
}

View File

@ -22,67 +22,81 @@ use super::{Error, configuration};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AddPetErrors {
// TODO Generate an enum case for each error described in schema.
Status405(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `delete_pet`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DeletePetErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `find_pets_by_status`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FindPetsByStatusErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(Vec<crate::models::Pet>),
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `find_pets_by_tags`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FindPetsByTagsErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(Vec<crate::models::Pet>),
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_pet_by_id`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetPetByIdErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::Pet),
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `update_pet`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UpdatePetErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
Status404(),
Status405(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `update_pet_with_form`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UpdatePetWithFormErrors {
// TODO Generate an enum case for each error described in schema.
Status405(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `upload_file`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UploadFileErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::ApiResponse),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
pub async fn add_pet(configuration: &configuration::Configuration, body: crate::models::Pet) -> Result<(), Error<AddPetErrors>> {
let client = &configuration.client;

View File

@ -22,35 +22,43 @@ use super::{Error, configuration};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DeleteOrderErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_inventory`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetInventoryErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(::std::collections::HashMap<String, i32>),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_order_by_id`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetOrderByIdErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::Order),
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `place_order`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum PlaceOrderErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::Order),
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
pub async fn delete_order(configuration: &configuration::Configuration, order_id: &str) -> Result<(), Error<DeleteOrderErrors>> {
let client = &configuration.client;

View File

@ -22,67 +22,80 @@ use super::{Error, configuration};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateUserErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `create_users_with_array_input`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateUsersWithArrayInputErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `create_users_with_list_input`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateUsersWithListInputErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `delete_user`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DeleteUserErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_user_by_name`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetUserByNameErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::User),
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `login_user`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum LoginUserErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(String),
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `logout_user`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum LogoutUserErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `update_user`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UpdateUserErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
pub async fn create_user(configuration: &configuration::Configuration, body: crate::models::User) -> Result<(), Error<CreateUserErrors>> {
let client = &configuration.client;

View File

@ -34,67 +34,81 @@ impl PetApiClient {
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AddPetErrors {
// TODO Generate an enum case for each error described in schema.
Status405(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `delete_pet`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DeletePetErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `find_pets_by_status`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FindPetsByStatusErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(Vec<crate::models::Pet>),
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `find_pets_by_tags`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum FindPetsByTagsErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(Vec<crate::models::Pet>),
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_pet_by_id`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetPetByIdErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::Pet),
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `update_pet`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UpdatePetErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
Status404(),
Status405(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `update_pet_with_form`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UpdatePetWithFormErrors {
// TODO Generate an enum case for each error described in schema.
Status405(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `upload_file`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UploadFileErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::ApiResponse),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
pub trait PetApi {
fn add_pet(&self, body: crate::models::Pet) -> Result<(), Error<AddPetErrors>>;
fn delete_pet(&self, pet_id: i64, api_key: Option<&str>) -> Result<(), Error<DeletePetErrors>>;

View File

@ -34,35 +34,43 @@ impl StoreApiClient {
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DeleteOrderErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_inventory`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetInventoryErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(::std::collections::HashMap<String, i32>),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_order_by_id`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetOrderByIdErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::Order),
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `place_order`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum PlaceOrderErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::Order),
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
pub trait StoreApi {
fn delete_order(&self, order_id: &str) -> Result<(), Error<DeleteOrderErrors>>;
fn get_inventory(&self, ) -> Result<::std::collections::HashMap<String, i32>, Error<GetInventoryErrors>>;

View File

@ -34,67 +34,80 @@ impl UserApiClient {
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateUserErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `create_users_with_array_input`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateUsersWithArrayInputErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `create_users_with_list_input`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateUsersWithListInputErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `delete_user`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DeleteUserErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `get_user_by_name`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetUserByNameErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(crate::models::User),
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `login_user`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum LoginUserErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(String),
Status400(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `logout_user`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum LogoutUserErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method `update_user`
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UpdateUserErrors {
// TODO Generate an enum case for each error described in schema.
Status400(),
Status404(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
pub trait UserApi {
fn create_user(&self, body: crate::models::User) -> Result<(), Error<CreateUserErrors>>;
fn create_users_with_array_input(&self, body: Vec<crate::models::User>) -> Result<(), Error<CreateUsersWithArrayInputErrors>>;

View File

@ -34,11 +34,12 @@ impl DefaultApiClient {
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DummyGetErrors {
// TODO Generate an enum case for each error described in schema.
DefaultResponse(),
UnknownList(Vec<serde_json::Value>),
UnknownValue(serde_json::Value),
}
pub trait DefaultApi {
fn dummy_get(&self, ) -> Result<(), Error<DummyGetErrors>>;
}