Skip to content

Commit 234053f

Browse files
authored
Export response code to worker (#6021)
1 parent 649daed commit 234053f

File tree

4 files changed

+42
-8
lines changed

4 files changed

+42
-8
lines changed

modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.cpp.mustache

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ void {{prefix}}HttpRequestInput::add_file(QString variable_name, QString local_f
4545
}
4646

4747
{{prefix}}HttpRequestWorker::{{prefix}}HttpRequestWorker(QObject *parent)
48-
: QObject(parent), manager(nullptr), timeOutTimer(this), isResponseCompressionEnabled(false), isRequestCompressionEnabled(false) {
48+
: QObject(parent), manager(nullptr), timeOutTimer(this), isResponseCompressionEnabled(false), isRequestCompressionEnabled(false), httpResponseCode(-1) {
4949
qsrand(QDateTime::currentDateTime().toTime_t());
5050
manager = new QNetworkAccessManager(this);
5151
workingDirectory = QDir::currentPath();
@@ -110,6 +110,10 @@ void {{prefix}}HttpRequestWorker::setRequestCompressionEnabled(bool enable) {
110110
isRequestCompressionEnabled = enable;
111111
}
112112

113+
int {{prefix}}HttpRequestWorker::getHttpResponseCode() const{
114+
return httpResponseCode;
115+
}
116+
113117
QString {{prefix}}HttpRequestWorker::http_attribute_encode(QString attribute_name, QString input) {
114118
// result structure follows RFC 5987
115119
bool need_utf_encoding = false;
@@ -360,6 +364,7 @@ void {{prefix}}HttpRequestWorker::execute({{prefix}}HttpRequestInput *input) {
360364
}
361365

362366
void {{prefix}}HttpRequestWorker::on_manager_finished(QNetworkReply *reply) {
367+
bool codeSts = false;
363368
if(timeOutTimer.isActive()) {
364369
QObject::disconnect(&timeOutTimer, &QTimer::timeout, nullptr, nullptr);
365370
timeOutTimer.stop();
@@ -371,6 +376,12 @@ void {{prefix}}HttpRequestWorker::on_manager_finished(QNetworkReply *reply) {
371376
headers.insert(item.first, item.second);
372377
}
373378
}
379+
auto rescode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(&codeSts);
380+
if(codeSts){
381+
httpResponseCode = rescode;
382+
} else{
383+
httpResponseCode = -1;
384+
}
374385
process_response(reply);
375386
reply->deleteLater();
376387
emit on_execution_finished(this);

modules/openapi-generator/src/main/resources/cpp-qt5-client/HttpRequest.h.mustache

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,12 @@ class {{prefix}}HttpRequestWorker : public QObject {
5050
Q_OBJECT
5151
5252
public:
53+
explicit {{prefix}}HttpRequestWorker(QObject *parent = nullptr);
54+
virtual ~{{prefix}}HttpRequestWorker();
55+
5356
QByteArray response;
5457
QNetworkReply::NetworkError error_type;
5558
QString error_str;
56-
explicit {{prefix}}HttpRequestWorker(QObject *parent = nullptr);
57-
virtual ~{{prefix}}HttpRequestWorker();
5859

5960
QMap<QString, QString> getResponseHeaders() const;
6061
QString http_attribute_encode(QString attribute_name, QString input);
@@ -66,6 +67,8 @@ public:
6667
QByteArray *getMultiPartField(const QString &fieldname = QString());
6768
void setResponseCompressionEnabled(bool enable);
6869
void setRequestCompressionEnabled(bool enable);
70+
int getHttpResponseCode() const;
71+
6972
signals:
7073
void on_execution_finished({{prefix}}HttpRequestWorker *worker);
7174

@@ -82,10 +85,13 @@ private:
8285
QTimer timeOutTimer;
8386
bool isResponseCompressionEnabled;
8487
bool isRequestCompressionEnabled;
88+
int httpResponseCode;
89+
8590
void on_manager_timeout(QNetworkReply *reply);
8691
void process_response(QNetworkReply *reply);
8792
QByteArray decompress(const QByteArray& data);
88-
QByteArray compress(const QByteArray& input, int level, {{prefix}}CompressionType compressType);
93+
QByteArray compress(const QByteArray& input, int level, {{prefix}}CompressionType compressType);
94+
8995
private slots:
9096
void on_manager_finished(QNetworkReply *reply);
9197
};

samples/client/petstore/cpp-qt5/client/PFXHttpRequest.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ void PFXHttpRequestInput::add_file(QString variable_name, QString local_filename
5252
}
5353

5454
PFXHttpRequestWorker::PFXHttpRequestWorker(QObject *parent)
55-
: QObject(parent), manager(nullptr), timeOutTimer(this), isResponseCompressionEnabled(false), isRequestCompressionEnabled(false) {
55+
: QObject(parent), manager(nullptr), timeOutTimer(this), isResponseCompressionEnabled(false), isRequestCompressionEnabled(false), httpResponseCode(-1) {
5656
qsrand(QDateTime::currentDateTime().toTime_t());
5757
manager = new QNetworkAccessManager(this);
5858
workingDirectory = QDir::currentPath();
@@ -117,6 +117,10 @@ void PFXHttpRequestWorker::setRequestCompressionEnabled(bool enable) {
117117
isRequestCompressionEnabled = enable;
118118
}
119119

120+
int PFXHttpRequestWorker::getHttpResponseCode() const{
121+
return httpResponseCode;
122+
}
123+
120124
QString PFXHttpRequestWorker::http_attribute_encode(QString attribute_name, QString input) {
121125
// result structure follows RFC 5987
122126
bool need_utf_encoding = false;
@@ -367,6 +371,7 @@ void PFXHttpRequestWorker::execute(PFXHttpRequestInput *input) {
367371
}
368372

369373
void PFXHttpRequestWorker::on_manager_finished(QNetworkReply *reply) {
374+
bool codeSts = false;
370375
if(timeOutTimer.isActive()) {
371376
QObject::disconnect(&timeOutTimer, &QTimer::timeout, nullptr, nullptr);
372377
timeOutTimer.stop();
@@ -378,6 +383,12 @@ void PFXHttpRequestWorker::on_manager_finished(QNetworkReply *reply) {
378383
headers.insert(item.first, item.second);
379384
}
380385
}
386+
auto rescode = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(&codeSts);
387+
if(codeSts){
388+
httpResponseCode = rescode;
389+
} else{
390+
httpResponseCode = -1;
391+
}
381392
process_response(reply);
382393
reply->deleteLater();
383394
emit on_execution_finished(this);

samples/client/petstore/cpp-qt5/client/PFXHttpRequest.h

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,12 @@ class PFXHttpRequestWorker : public QObject {
5858
Q_OBJECT
5959

6060
public:
61+
explicit PFXHttpRequestWorker(QObject *parent = nullptr);
62+
virtual ~PFXHttpRequestWorker();
63+
6164
QByteArray response;
6265
QNetworkReply::NetworkError error_type;
6366
QString error_str;
64-
explicit PFXHttpRequestWorker(QObject *parent = nullptr);
65-
virtual ~PFXHttpRequestWorker();
6667

6768
QMap<QString, QString> getResponseHeaders() const;
6869
QString http_attribute_encode(QString attribute_name, QString input);
@@ -74,6 +75,8 @@ class PFXHttpRequestWorker : public QObject {
7475
QByteArray *getMultiPartField(const QString &fieldname = QString());
7576
void setResponseCompressionEnabled(bool enable);
7677
void setRequestCompressionEnabled(bool enable);
78+
int getHttpResponseCode() const;
79+
7780
signals:
7881
void on_execution_finished(PFXHttpRequestWorker *worker);
7982

@@ -90,10 +93,13 @@ class PFXHttpRequestWorker : public QObject {
9093
QTimer timeOutTimer;
9194
bool isResponseCompressionEnabled;
9295
bool isRequestCompressionEnabled;
96+
int httpResponseCode;
97+
9398
void on_manager_timeout(QNetworkReply *reply);
9499
void process_response(QNetworkReply *reply);
95100
QByteArray decompress(const QByteArray& data);
96-
QByteArray compress(const QByteArray& input, int level, PFXCompressionType compressType);
101+
QByteArray compress(const QByteArray& input, int level, PFXCompressionType compressType);
102+
97103
private slots:
98104
void on_manager_finished(QNetworkReply *reply);
99105
};

0 commit comments

Comments
 (0)