mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-10-13 16:03:43 +00:00
[C++][Pistache] Fix compile break, error handling (#9742)
* fix compilation break with validate function * fix error handling in handleParsingException bug caused all errors to be regarded as an internal server error * generate samples
This commit is contained in:
parent
3edeaeea07
commit
3fcbf17536
@ -42,13 +42,15 @@ private:
|
||||
|
||||
/// <summary>
|
||||
/// Helper function to handle unexpected Exceptions during Parameter parsing and validation.
|
||||
/// May be overriden to return custom error formats.
|
||||
/// May be overriden to return custom error formats. This is called inside a catch block.
|
||||
/// Important: When overriding, do not call `throw ex;`, but instead use `throw;`.
|
||||
/// </summary>
|
||||
virtual std::pair<Pistache::Http::Code, std::string> handleParsingException(const std::exception& ex) const noexcept;
|
||||
|
||||
/// <summary>
|
||||
/// Helper function to handle unexpected Exceptions during processing of the request in handler functions.
|
||||
/// May be overriden to return custom error formats.
|
||||
/// May be overriden to return custom error formats. This is called inside a catch block.
|
||||
/// Important: When overriding, do not call `throw ex;`, but instead use `throw;`.
|
||||
/// </summary>
|
||||
virtual std::pair<Pistache::Http::Code, std::string> handleOperationException(const std::exception& ex) const noexcept;
|
||||
|
||||
|
@ -36,11 +36,13 @@ void {{classname}}::setupRoutes() {
|
||||
std::pair<Pistache::Http::Code, std::string> {{classname}}::handleParsingException(const std::exception& ex) const noexcept
|
||||
{
|
||||
try {
|
||||
throw ex;
|
||||
throw;
|
||||
} catch (nlohmann::detail::exception &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Bad_Request, e.what());
|
||||
} catch ({{helpersNamespace}}::ValidationException &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Bad_Request, e.what());
|
||||
} catch (std::exception &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Internal_Server_Error, e.what())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -46,6 +46,12 @@ public:
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg) const;
|
||||
|
||||
/// <summary>
|
||||
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
/// Not meant to be called outside that case.
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
|
||||
bool operator==(const {{classname}}& rhs) const;
|
||||
bool operator!=(const {{classname}}& rhs) const;
|
||||
|
||||
@ -77,9 +83,6 @@ protected:
|
||||
{{#isEnum}}
|
||||
{{classname}}::e{{classname}} m_value = {{classname}}::e{{classname}}::INVALID_VALUE_OPENAPI_GENERATED;
|
||||
{{/isEnum}}
|
||||
|
||||
// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
};
|
||||
|
||||
} // namespace {{modelNamespace}}
|
||||
|
@ -49,11 +49,13 @@ void PetApi::setupRoutes() {
|
||||
std::pair<Pistache::Http::Code, std::string> PetApi::handleParsingException(const std::exception& ex) const noexcept
|
||||
{
|
||||
try {
|
||||
throw ex;
|
||||
throw;
|
||||
} catch (nlohmann::detail::exception &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Bad_Request, e.what());
|
||||
} catch (org::openapitools::server::helpers::ValidationException &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Bad_Request, e.what());
|
||||
} catch (std::exception &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Internal_Server_Error, e.what())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -58,13 +58,15 @@ private:
|
||||
|
||||
/// <summary>
|
||||
/// Helper function to handle unexpected Exceptions during Parameter parsing and validation.
|
||||
/// May be overriden to return custom error formats.
|
||||
/// May be overriden to return custom error formats. This is called inside a catch block.
|
||||
/// Important: When overriding, do not call `throw ex;`, but instead use `throw;`.
|
||||
/// </summary>
|
||||
virtual std::pair<Pistache::Http::Code, std::string> handleParsingException(const std::exception& ex) const noexcept;
|
||||
|
||||
/// <summary>
|
||||
/// Helper function to handle unexpected Exceptions during processing of the request in handler functions.
|
||||
/// May be overriden to return custom error formats.
|
||||
/// May be overriden to return custom error formats. This is called inside a catch block.
|
||||
/// Important: When overriding, do not call `throw ex;`, but instead use `throw;`.
|
||||
/// </summary>
|
||||
virtual std::pair<Pistache::Http::Code, std::string> handleOperationException(const std::exception& ex) const noexcept;
|
||||
|
||||
|
@ -45,11 +45,13 @@ void StoreApi::setupRoutes() {
|
||||
std::pair<Pistache::Http::Code, std::string> StoreApi::handleParsingException(const std::exception& ex) const noexcept
|
||||
{
|
||||
try {
|
||||
throw ex;
|
||||
throw;
|
||||
} catch (nlohmann::detail::exception &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Bad_Request, e.what());
|
||||
} catch (org::openapitools::server::helpers::ValidationException &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Bad_Request, e.what());
|
||||
} catch (std::exception &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Internal_Server_Error, e.what())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,13 +54,15 @@ private:
|
||||
|
||||
/// <summary>
|
||||
/// Helper function to handle unexpected Exceptions during Parameter parsing and validation.
|
||||
/// May be overriden to return custom error formats.
|
||||
/// May be overriden to return custom error formats. This is called inside a catch block.
|
||||
/// Important: When overriding, do not call `throw ex;`, but instead use `throw;`.
|
||||
/// </summary>
|
||||
virtual std::pair<Pistache::Http::Code, std::string> handleParsingException(const std::exception& ex) const noexcept;
|
||||
|
||||
/// <summary>
|
||||
/// Helper function to handle unexpected Exceptions during processing of the request in handler functions.
|
||||
/// May be overriden to return custom error formats.
|
||||
/// May be overriden to return custom error formats. This is called inside a catch block.
|
||||
/// Important: When overriding, do not call `throw ex;`, but instead use `throw;`.
|
||||
/// </summary>
|
||||
virtual std::pair<Pistache::Http::Code, std::string> handleOperationException(const std::exception& ex) const noexcept;
|
||||
|
||||
|
@ -49,11 +49,13 @@ void UserApi::setupRoutes() {
|
||||
std::pair<Pistache::Http::Code, std::string> UserApi::handleParsingException(const std::exception& ex) const noexcept
|
||||
{
|
||||
try {
|
||||
throw ex;
|
||||
throw;
|
||||
} catch (nlohmann::detail::exception &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Bad_Request, e.what());
|
||||
} catch (org::openapitools::server::helpers::ValidationException &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Bad_Request, e.what());
|
||||
} catch (std::exception &e) {
|
||||
return std::make_pair(Pistache::Http::Code::Internal_Server_Error, e.what())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -58,13 +58,15 @@ private:
|
||||
|
||||
/// <summary>
|
||||
/// Helper function to handle unexpected Exceptions during Parameter parsing and validation.
|
||||
/// May be overriden to return custom error formats.
|
||||
/// May be overriden to return custom error formats. This is called inside a catch block.
|
||||
/// Important: When overriding, do not call `throw ex;`, but instead use `throw;`.
|
||||
/// </summary>
|
||||
virtual std::pair<Pistache::Http::Code, std::string> handleParsingException(const std::exception& ex) const noexcept;
|
||||
|
||||
/// <summary>
|
||||
/// Helper function to handle unexpected Exceptions during processing of the request in handler functions.
|
||||
/// May be overriden to return custom error formats.
|
||||
/// May be overriden to return custom error formats. This is called inside a catch block.
|
||||
/// Important: When overriding, do not call `throw ex;`, but instead use `throw;`.
|
||||
/// </summary>
|
||||
virtual std::pair<Pistache::Http::Code, std::string> handleOperationException(const std::exception& ex) const noexcept;
|
||||
|
||||
|
@ -46,6 +46,12 @@ public:
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg) const;
|
||||
|
||||
/// <summary>
|
||||
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
/// Not meant to be called outside that case.
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
|
||||
bool operator==(const ApiResponse& rhs) const;
|
||||
bool operator!=(const ApiResponse& rhs) const;
|
||||
|
||||
@ -83,9 +89,6 @@ protected:
|
||||
bool m_TypeIsSet;
|
||||
std::string m_Message;
|
||||
bool m_MessageIsSet;
|
||||
|
||||
// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
};
|
||||
|
||||
} // namespace org::openapitools::server::model
|
||||
|
@ -46,6 +46,12 @@ public:
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg) const;
|
||||
|
||||
/// <summary>
|
||||
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
/// Not meant to be called outside that case.
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
|
||||
bool operator==(const Category& rhs) const;
|
||||
bool operator!=(const Category& rhs) const;
|
||||
|
||||
@ -74,9 +80,6 @@ protected:
|
||||
bool m_IdIsSet;
|
||||
std::string m_Name;
|
||||
bool m_NameIsSet;
|
||||
|
||||
// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
};
|
||||
|
||||
} // namespace org::openapitools::server::model
|
||||
|
@ -46,6 +46,12 @@ public:
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg) const;
|
||||
|
||||
/// <summary>
|
||||
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
/// Not meant to be called outside that case.
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
|
||||
bool operator==(const Order& rhs) const;
|
||||
bool operator!=(const Order& rhs) const;
|
||||
|
||||
@ -110,9 +116,6 @@ protected:
|
||||
bool m_StatusIsSet;
|
||||
bool m_Complete;
|
||||
bool m_CompleteIsSet;
|
||||
|
||||
// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
};
|
||||
|
||||
} // namespace org::openapitools::server::model
|
||||
|
@ -49,6 +49,12 @@ public:
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg) const;
|
||||
|
||||
/// <summary>
|
||||
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
/// Not meant to be called outside that case.
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
|
||||
bool operator==(const Pet& rhs) const;
|
||||
bool operator!=(const Pet& rhs) const;
|
||||
|
||||
@ -109,9 +115,6 @@ protected:
|
||||
bool m_TagsIsSet;
|
||||
std::string m_Status;
|
||||
bool m_StatusIsSet;
|
||||
|
||||
// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
};
|
||||
|
||||
} // namespace org::openapitools::server::model
|
||||
|
@ -46,6 +46,12 @@ public:
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg) const;
|
||||
|
||||
/// <summary>
|
||||
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
/// Not meant to be called outside that case.
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
|
||||
bool operator==(const Tag& rhs) const;
|
||||
bool operator!=(const Tag& rhs) const;
|
||||
|
||||
@ -74,9 +80,6 @@ protected:
|
||||
bool m_IdIsSet;
|
||||
std::string m_Name;
|
||||
bool m_NameIsSet;
|
||||
|
||||
// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
};
|
||||
|
||||
} // namespace org::openapitools::server::model
|
||||
|
@ -46,6 +46,12 @@ public:
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg) const;
|
||||
|
||||
/// <summary>
|
||||
/// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
/// Not meant to be called outside that case.
|
||||
/// </summary>
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
|
||||
bool operator==(const User& rhs) const;
|
||||
bool operator!=(const User& rhs) const;
|
||||
|
||||
@ -128,9 +134,6 @@ protected:
|
||||
bool m_PhoneIsSet;
|
||||
int32_t m_UserStatus;
|
||||
bool m_UserStatusIsSet;
|
||||
|
||||
// Helper overload for validate. Used when one model stores another model and calls it's validate.
|
||||
bool validate(std::stringstream& msg, const std::string& pathPrefix) const;
|
||||
};
|
||||
|
||||
} // namespace org::openapitools::server::model
|
||||
|
Loading…
x
Reference in New Issue
Block a user