basyskom-dege f596b32316
[Qt][C++] Oauth2 Authorization Code Flow and Implicit Flow Support. (#10183)
* Oauth class with reply server for authorization flow

* multiple scopes. Joined with space seperator

* some refactoring, using urls from the spec

* added implicit flow. Refactored oauth classes.

* added missing {{prefix}} to Oauth class

* added client credentials flow

* added password flow. setVariables for each class

* Refactored variables to fit style. Updated Samples
2021-11-14 23:16:29 +08:00

186 lines
7.9 KiB
C++

/**
* 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.
*/
#ifndef PFX_PFXPetApi_H
#define PFX_PFXPetApi_H
#include "PFXHelpers.h"
#include "PFXHttpRequest.h"
#include "PFXServerConfiguration.h"
#include "PFXOauth.h"
#include "PFXApiResponse.h"
#include "PFXHttpFileElement.h"
#include "PFXPet.h"
#include <QString>
#include <QObject>
#include <QByteArray>
#include <QStringList>
#include <QList>
#include <QNetworkAccessManager>
namespace test_namespace {
class PFXPetApi : public QObject {
Q_OBJECT
public:
PFXPetApi(const int timeOut = 0);
~PFXPetApi();
void initializeServerConfigs();
int setDefaultServerValue(int serverIndex,const QString &operation, const QString &variable,const QString &val);
void setServerIndex(const QString &operation, int serverIndex);
void setApiKey(const QString &apiKeyName, const QString &apiKey);
void setBearerToken(const QString &token);
void setUsername(const QString &username);
void setPassword(const QString &password);
void setTimeOut(const int timeOut);
void setWorkingDirectory(const QString &path);
void setNetworkAccessManager(QNetworkAccessManager* manager);
int addServerConfiguration(const QString &operation, const QUrl &url, const QString &description = "", const QMap<QString, PFXServerVariable> &variables = QMap<QString, PFXServerVariable>());
void setNewServerForAllOperations(const QUrl &url, const QString &description = "", const QMap<QString, PFXServerVariable> &variables = QMap<QString, PFXServerVariable>());
void setNewServer(const QString &operation, const QUrl &url, const QString &description = "", const QMap<QString, PFXServerVariable> &variables = QMap<QString, PFXServerVariable>());
void addHeaders(const QString &key, const QString &value);
void enableRequestCompression();
void enableResponseCompression();
void abortRequests();
QString getParamStylePrefix(const QString &style);
QString getParamStyleSuffix(const QString &style);
QString getParamStyleDelimiter(const QString &style, const QString &name, bool isExplode);
/**
* @param[in] body PFXPet [required]
*/
void addPet(const PFXPet &body);
/**
* @param[in] pet_id qint64 [required]
* @param[in] api_key QString [optional]
*/
void deletePet(const qint64 &pet_id, const ::test_namespace::OptionalParam<QString> &api_key = ::test_namespace::OptionalParam<QString>());
/**
* @param[in] status QList<QString> [required]
*/
void findPetsByStatus(const QList<QString> &status);
/**
* @param[in] tags QList<QString> [required]
*/
Q_DECL_DEPRECATED void findPetsByTags(const QList<QString> &tags);
/**
* @param[in] pet_id qint64 [required]
*/
void getPetById(const qint64 &pet_id);
/**
* @param[in] body PFXPet [required]
*/
void updatePet(const PFXPet &body);
/**
* @param[in] pet_id qint64 [required]
* @param[in] name QString [optional]
* @param[in] status QString [optional]
*/
void updatePetWithForm(const qint64 &pet_id, const ::test_namespace::OptionalParam<QString> &name = ::test_namespace::OptionalParam<QString>(), const ::test_namespace::OptionalParam<QString> &status = ::test_namespace::OptionalParam<QString>());
/**
* @param[in] pet_id qint64 [required]
* @param[in] additional_metadata QString [optional]
* @param[in] file PFXHttpFileElement [optional]
*/
void uploadFile(const qint64 &pet_id, const ::test_namespace::OptionalParam<QString> &additional_metadata = ::test_namespace::OptionalParam<QString>(), const ::test_namespace::OptionalParam<PFXHttpFileElement> &file = ::test_namespace::OptionalParam<PFXHttpFileElement>());
private:
QMap<QString,int> _serverIndices;
QMap<QString,QList<PFXServerConfiguration>> _serverConfigs;
QMap<QString, QString> _apiKeys;
QString _bearerToken;
QString _username;
QString _password;
int _timeOut;
QString _workingDirectory;
QNetworkAccessManager* _manager;
QMap<QString, QString> _defaultHeaders;
bool _isResponseCompressionEnabled;
bool _isRequestCompressionEnabled;
PFXHttpRequestInput _latestInput;
PFXHttpRequestWorker *_latestWorker;
QStringList _latestScope;
OauthCode _authFlow;
OauthImplicit _implicitFlow;
OauthCredentials _credentialFlow;
OauthPassword _passwordFlow;
int _OauthMethod = 0;
void addPetCallback(PFXHttpRequestWorker *worker);
void deletePetCallback(PFXHttpRequestWorker *worker);
void findPetsByStatusCallback(PFXHttpRequestWorker *worker);
void findPetsByTagsCallback(PFXHttpRequestWorker *worker);
void getPetByIdCallback(PFXHttpRequestWorker *worker);
void updatePetCallback(PFXHttpRequestWorker *worker);
void updatePetWithFormCallback(PFXHttpRequestWorker *worker);
void uploadFileCallback(PFXHttpRequestWorker *worker);
signals:
void addPetSignal();
void deletePetSignal();
void findPetsByStatusSignal(QList<PFXPet> summary);
void findPetsByTagsSignal(QList<PFXPet> summary);
void getPetByIdSignal(PFXPet summary);
void updatePetSignal();
void updatePetWithFormSignal();
void uploadFileSignal(PFXApiResponse summary);
void addPetSignalFull(PFXHttpRequestWorker *worker);
void deletePetSignalFull(PFXHttpRequestWorker *worker);
void findPetsByStatusSignalFull(PFXHttpRequestWorker *worker, QList<PFXPet> summary);
void findPetsByTagsSignalFull(PFXHttpRequestWorker *worker, QList<PFXPet> summary);
void getPetByIdSignalFull(PFXHttpRequestWorker *worker, PFXPet summary);
void updatePetSignalFull(PFXHttpRequestWorker *worker);
void updatePetWithFormSignalFull(PFXHttpRequestWorker *worker);
void uploadFileSignalFull(PFXHttpRequestWorker *worker, PFXApiResponse summary);
void addPetSignalE(QNetworkReply::NetworkError error_type, QString error_str);
void deletePetSignalE(QNetworkReply::NetworkError error_type, QString error_str);
void findPetsByStatusSignalE(QList<PFXPet> summary, QNetworkReply::NetworkError error_type, QString error_str);
void findPetsByTagsSignalE(QList<PFXPet> summary, QNetworkReply::NetworkError error_type, QString error_str);
void getPetByIdSignalE(PFXPet summary, QNetworkReply::NetworkError error_type, QString error_str);
void updatePetSignalE(QNetworkReply::NetworkError error_type, QString error_str);
void updatePetWithFormSignalE(QNetworkReply::NetworkError error_type, QString error_str);
void uploadFileSignalE(PFXApiResponse summary, QNetworkReply::NetworkError error_type, QString error_str);
void addPetSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void deletePetSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void findPetsByStatusSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void findPetsByTagsSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void getPetByIdSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void updatePetSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void updatePetWithFormSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void uploadFileSignalEFull(PFXHttpRequestWorker *worker, QNetworkReply::NetworkError error_type, QString error_str);
void abortRequestsSignal();
void allPendingRequestsCompleted();
public slots:
void tokenAvailable();
};
} // namespace test_namespace
#endif