text: /**
   * 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.
   *
   * OpenAPI spec version: 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 OAI_OAIUserApiRequest_H
  #define OAI_OAIUserApiRequest_H
  
  #include <QObject>
  #include <QStringList>
  #include <QMultiMap>
  #include <QNetworkReply>
  #include <QSharedPointer>
  
  #include <qhttpengine/socket.h>
  #include "OAIUser.h"
  #include <QList>
  #include <QString>
  #include "OAIUserApiHandler.h"
  
  namespace OpenAPI {
  
  class OAIUserApiRequest : public QObject
  {
      Q_OBJECT
      
  public:
      OAIUserApiRequest(QHttpEngine::Socket *s, OAIUserApiHandler* handler);
      virtual ~OAIUserApiRequest();
  
      void createUserRequest();
      void createUsersWithArrayInputRequest();
      void createUsersWithListInputRequest();
      void deleteUserRequest(const QString& username);
      void getUserByNameRequest(const QString& username);
      void loginUserRequest();
      void logoutUserRequest();
      void updateUserRequest(const QString& username);
      
  
      void createUserResponse();
      void createUsersWithArrayInputResponse();
      void createUsersWithListInputResponse();
      void deleteUserResponse();
      void getUserByNameResponse(const OAIUser& res);
      void loginUserResponse(const QString& res);
      void logoutUserResponse();
      void updateUserResponse();
      
  
      void createUserError(QNetworkReply::NetworkError error_type, QString& error_str);
      void createUsersWithArrayInputError(QNetworkReply::NetworkError error_type, QString& error_str);
      void createUsersWithListInputError(QNetworkReply::NetworkError error_type, QString& error_str);
      void deleteUserError(QNetworkReply::NetworkError error_type, QString& error_str);
      void getUserByNameError(const OAIUser& res, QNetworkReply::NetworkError error_type, QString& error_str);
      void loginUserError(const QString& res, QNetworkReply::NetworkError error_type, QString& error_str);
      void logoutUserError(QNetworkReply::NetworkError error_type, QString& error_str);
      void updateUserError(QNetworkReply::NetworkError error_type, QString& error_str);
      
  
      void sendCustomResponse(QByteArray & res, QNetworkReply::NetworkError error_type);
  
      void sendCustomResponse(QIODevice *res, QNetworkReply::NetworkError error_type);
  
      QMap<QString, QString> getRequestHeaders() const;
  
      QHttpEngine::Socket* getRawSocket();
  
      void setResponseHeaders(const QMultiMap<QString,QString>& headers);
  
  signals:
      void createUser(OAIUser oai_user);
      void createUsersWithArrayInput(QList<OAIUser> oai_user);
      void createUsersWithListInput(QList<OAIUser> oai_user);
      void deleteUser(QString username);
      void getUserByName(QString username);
      void loginUser(QString username, QString password);
      void logoutUser();
      void updateUser(QString username, OAIUser oai_user);
      
  
  private:
      QMap<QString, QString> requestHeaders;
      QMap<QString, QString> responseHeaders;
      QHttpEngine::Socket  *socket;
      OAIUserApiHandler *handler;
  
      inline void writeResponseHeaders(){
          QHttpEngine::Socket::HeaderMap resHeaders;
          for(auto itr = responseHeaders.begin(); itr != responseHeaders.end(); ++itr) {
              resHeaders.insert(itr.key().toUtf8(), itr.value().toUtf8());
          }
          socket->setHeaders(resHeaders);
          socket->writeHeaders();        
      }
  };
  
  }
  
  #endif // OAI_OAIUserApiRequest_H
  