You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							47 lines
						
					
					
						
							1.0 KiB
						
					
					
				
			
		
		
	
	
							47 lines
						
					
					
						
							1.0 KiB
						
					
					
				| #pragma once
 | |
| 
 | |
| #include <QJsonObject>
 | |
| #include <QNetworkReply>
 | |
| #include <QString>
 | |
| #include <QTimer>
 | |
| 
 | |
| #include "selfdrive/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();
 | |
| };
 | |
| 
 |