Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,21 @@ void {{classname}}::{{nickname}}({{#allParams}}{{#required}}const {{{dataType}}}
else
fullPath.append("?");
{{^isPrimitiveType}}
{{#isEnum}}
// For enum parameters, use direct string serialization instead of object iteration
QString enumValue = {{paramName}}{{^required}}.value(){{/required}}.asJson();
if (!enumValue.isEmpty()) {
fullPath.append(QUrl::toPercentEncoding("{{baseName}}")).append("=").append(QUrl::toPercentEncoding(enumValue));
}
{{/isEnum}}
{{#isEnumRef}}
// For enum reference parameters, use direct string serialization instead of object iteration
QString enumValue = {{paramName}}{{^required}}.value(){{/required}}.asJson();
if (!enumValue.isEmpty()) {
fullPath.append(QUrl::toPercentEncoding("{{baseName}}")).append("=").append(QUrl::toPercentEncoding(enumValue));
}
{{/isEnumRef}}
{{^isEnum}}{{^isEnumRef}}
QString paramString = (queryStyle == "form" && {{isExplode}}) ? "" : (queryStyle == "form" && !({{isExplode}})) ? "{{baseName}}"+querySuffix : "";
QJsonObject parameter = {{paramName}}{{^required}}.value(){{/required}}.asJsonObject();
qint32 count = 0;
Expand Down Expand Up @@ -390,6 +405,7 @@ void {{classname}}::{{nickname}}({{#allParams}}{{#required}}const {{{dataType}}}
count++;
}
fullPath.append(paramString);
{{/isEnumRef}}{{/isEnum}}
{{/isPrimitiveType}}{{#isPrimitiveType}}
fullPath.append(QUrl::toPercentEncoding("{{baseName}}")).append(querySuffix).append(QUrl::toPercentEncoding(::{{cppNamespace}}::toStringValue({{paramName}}{{^required}}.stringValue(){{/required}})));
{{/isPrimitiveType}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -572,6 +572,35 @@ paths:
description: Invalid username supplied
"404":
description: User not found
"/fake/enum_inline_or_ref":
get:
tags:
- fake
summary: fake endpoint to test enum (inline or ref)
description: ""
operationId: get_enum_inline_or_ref
parameters:
- name: enum_inline
in: query
description: Enum status inline
schema:
type: string
enum:
- placed
- approved
- delivered
- name: enum_ref
in: query
description: Enum status
schema:
$ref: "#/components/schemas/EnumStatus"
responses:
"200":
description: successful operation
"400":
description: Invalid username supplied
"404":
description: User not found
servers:
- url: http://petstore.swagger.io/v2
- url: http://localhost:8080/v2
Expand Down Expand Up @@ -610,6 +639,13 @@ components:
name: api_key
in: header
schemas:
EnumStatus:
type: string
description: Order Status
enum:
- placed
- approved
- delivered
Order:
title: Pet Order
description: An order for a pets from the pet store
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ client/PFXApiResponse.h
client/PFXCategory.cpp
client/PFXCategory.h
client/PFXEnum.h
client/PFXEnumStatus.cpp
client/PFXEnumStatus.h
client/PFXFakeApi.cpp
client/PFXFakeApi.h
client/PFXHelpers.cpp
client/PFXHelpers.h
client/PFXHttpFileElement.cpp
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.2)
cmake_minimum_required(VERSION 3.5)

project(cpp-qt-petstore)
set(CMAKE_VERBOSE_MAKEFILE ON)
Expand Down
34 changes: 23 additions & 11 deletions samples/client/petstore/cpp-qt-addDownloadProgress/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,14 @@ example.h:
```c++

#include <iostream>
#include "../client/PFXPetApi.h"
#include "../client/PFXFakeApi.h"

using namespace test_namespace;

class Example : public QObject {
Q_OBJECT
PFXPet create();
QString create();
PFXEnumStatus create();
public Q_SLOTS:
void exampleFunction1();
};
Expand All @@ -43,32 +44,43 @@ public Q_SLOTS:
example.cpp:
```c++

#include "../client/PFXPetApi.h"
#include "../client/PFXFakeApi.h"
#include "example.h"
#include <QTimer>
#include <QEventLoop>

PFXPet Example::create(){
PFXPet obj;
QString Example::create(){
QString obj;
PFXEnumStatus Example::create(){
PFXEnumStatus obj;
return obj;
}

void Example::exampleFunction1(){
PFXPetApi apiInstance;
PFXFakeApi apiInstance;

//OAuth Authentication supported right now
QEventLoop loop;
connect(&apiInstance, &PFXFakeApi::getEnumInlineOrRefSignal, [&]() {
loop.quit();
});
connect(&apiInstance, &PFXFakeApi::getEnumInlineOrRefSignalE, [&](QNetworkReply::NetworkError, QString error_str) {
qDebug() << "Error happened while issuing request : " << error_str;
loop.quit();
});

QString enum_inline = create(); // QString | Enum status inline

QEventLoop loop;
connect(&apiInstance, &PFXPetApi::addPetSignal, [&]() {
connect(&apiInstance, &PFXFakeApi::getEnumInlineOrRefSignal, [&]() {
loop.quit();
});
connect(&apiInstance, &PFXPetApi::addPetSignalE, [&](QNetworkReply::NetworkError, QString error_str) {
connect(&apiInstance, &PFXFakeApi::getEnumInlineOrRefSignalE, [&](QNetworkReply::NetworkError, QString error_str) {
qDebug() << "Error happened while issuing request : " << error_str;
loop.quit();
});

PFXPet pfx_pet = create(); // PFXPet | Pet object that needs to be added to the store
apiInstance.addPet(pfx_pet);
PFXEnumStatus enum_ref = create(); // PFXEnumStatus | Enum status
apiInstance.getEnumInlineOrRef(enum_inlineenum_ref);
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
loop.exec();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,13 @@ include(CMakePackageConfigHelpers)
add_library(${PROJECT_NAME}
PFXApiResponse.h
PFXCategory.h
PFXEnumStatus.h
PFXOrder.h
PFXPet.h
PFXTag.h
PFXTestAnyType.h
PFXUser.h
PFXFakeApi.h
PFXPetApi.h
PFXPrimitivesApi.h
PFXStoreApi.h
Expand All @@ -32,11 +34,13 @@ add_library(${PROJECT_NAME}
PFXOauth.h
PFXApiResponse.cpp
PFXCategory.cpp
PFXEnumStatus.cpp
PFXOrder.cpp
PFXPet.cpp
PFXTag.cpp
PFXTestAnyType.cpp
PFXUser.cpp
PFXFakeApi.cpp
PFXPetApi.cpp
PFXPrimitivesApi.cpp
PFXStoreApi.cpp
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
/**
* OpenAPI Petstore
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/

#include "PFXEnumStatus.h"

#include <QDebug>
#include <QJsonArray>
#include <QJsonDocument>
#include <QObject>

#include "PFXHelpers.h"

namespace test_namespace {

PFXEnumStatus::PFXEnumStatus(QString json) {
this->initializeModel();
this->fromJson(json);
}

PFXEnumStatus::PFXEnumStatus() {
this->initializeModel();
}

PFXEnumStatus::~PFXEnumStatus() {}

void PFXEnumStatus::initializeModel() {

m_value_isSet = false;
m_value_isValid = false;
m_value = ePFXEnumStatus::INVALID_VALUE_OPENAPI_GENERATED;
}

void PFXEnumStatus::fromJson(QString jsonString) {

if ( jsonString.compare("placed", Qt::CaseInsensitive) == 0) {
m_value = ePFXEnumStatus::PLACED;
m_value_isSet = m_value_isValid = true;
}
else if ( jsonString.compare("approved", Qt::CaseInsensitive) == 0) {
m_value = ePFXEnumStatus::APPROVED;
m_value_isSet = m_value_isValid = true;
}
else if ( jsonString.compare("delivered", Qt::CaseInsensitive) == 0) {
m_value = ePFXEnumStatus::DELIVERED;
m_value_isSet = m_value_isValid = true;
}
}

void PFXEnumStatus::fromJsonValue(QJsonValue json) {
fromJson(json.toString());
}

QString PFXEnumStatus::asJson() const {

QString val;
switch (m_value){
case ePFXEnumStatus::PLACED:
val = "placed";
break;
case ePFXEnumStatus::APPROVED:
val = "approved";
break;
case ePFXEnumStatus::DELIVERED:
val = "delivered";
break;
default:
break;
}
return val;
}

QJsonValue PFXEnumStatus::asJsonValue() const {

return QJsonValue(asJson());
}


PFXEnumStatus::ePFXEnumStatus PFXEnumStatus::getValue() const {
return m_value;
}

void PFXEnumStatus::setValue(const PFXEnumStatus::ePFXEnumStatus& value){
m_value = value;
m_value_isSet = true;
}
bool PFXEnumStatus::isSet() const {

return m_value_isSet;
}

bool PFXEnumStatus::isValid() const {
// only required properties are required for the object to be considered valid
return m_value_isValid;
}

} // namespace test_namespace
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/**
* OpenAPI Petstore
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
*
* The version of the OpenAPI document: 1.0.0
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/

/*
* PFXEnumStatus.h
*
* Order Status
*/

#ifndef PFXEnumStatus_H
#define PFXEnumStatus_H

#include <QJsonObject>


#include "PFXEnum.h"
#include "PFXObject.h"

namespace test_namespace {

class PFXEnumStatus : public PFXEnum {
public:
PFXEnumStatus();
PFXEnumStatus(QString json);
~PFXEnumStatus() override;

QString asJson() const override;
QJsonValue asJsonValue() const override;
void fromJsonValue(QJsonValue json) override;
void fromJson(QString jsonString) override;

enum class ePFXEnumStatus {
INVALID_VALUE_OPENAPI_GENERATED = 0,
PLACED,
APPROVED,
DELIVERED
};
PFXEnumStatus::ePFXEnumStatus getValue() const;
void setValue(const PFXEnumStatus::ePFXEnumStatus& value);
virtual bool isSet() const override;
virtual bool isValid() const override;

private:
void initializeModel();

ePFXEnumStatus m_value;
bool m_value_isSet;
bool m_value_isValid;
};

} // namespace test_namespace

Q_DECLARE_METATYPE(test_namespace::PFXEnumStatus)

#endif // PFXEnumStatus_H
Loading
Loading