# pragma once
# include <QJsonObject>
# include <QNetworkReply>
# include <QString>
# include <QTimer>
# include "common/util.h"
namespace CommaApi {
const QString BASE_URL = util : : getenv ( " API_HOST " , " https://api.commadotai.com " ) . c_str ( ) ;
QByteArray rsa_sign ( const QByteArray & data ) ;
QString create_jwt ( const QJsonObject & payloads = { } , int expiry = 3600 ) ;
} // namespace CommaApi
/**
* Makes a request to the request endpoint .
*/
class HttpRequest : public QObject {
Q_OBJECT
public :
enum class Method { GET , DELETE } ;
explicit HttpRequest ( QObject * parent , bool create_jwt = true , int timeout = 20000 ) ;
void sendRequest ( const QString & requestURL , const Method method = Method : : GET ) ;
bool active ( ) const ;
bool timeout ( ) const ;
signals :
void requestDone ( const QString & response , bool success , QNetworkReply : : NetworkError error ) ;
protected :
QNetworkReply * reply = nullptr ;
private :
static QNetworkAccessManager * nam ( ) ;
QTimer * networkTimer = nullptr ;
bool create_jwt ;
private slots :
void requestTimeout ( ) ;
void requestFinished ( ) ;
} ;