UI: check if dongle id is valid before calling API (#21275)

pull/21279/head
Willem Melching 4 years ago committed by GitHub
parent 8071111f59
commit e85fa7f1c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      selfdrive/common/util.cc
  2. 1
      selfdrive/common/util.h
  3. 10
      selfdrive/ui/qt/widgets/drive_stats.cc
  4. 24
      selfdrive/ui/qt/widgets/setup.cc

@ -155,6 +155,10 @@ std::string dir_name(std::string const &path) {
return path.substr(0, pos); return path.substr(0, pos);
} }
bool is_valid_dongle_id(std::string const& dongle_id) {
return !dongle_id.empty() && dongle_id != "UnregisteredDevice";
}
struct tm get_time() { struct tm get_time() {
time_t rawtime; time_t rawtime;
time(&rawtime); time(&rawtime);

@ -58,6 +58,7 @@ std::string tohex(const uint8_t* buf, size_t buf_size);
std::string hexdump(const std::string& in); std::string hexdump(const std::string& in);
std::string base_name(std::string const& path); std::string base_name(std::string const& path);
std::string dir_name(std::string const& path); std::string dir_name(std::string const& path);
bool is_valid_dongle_id(std::string const& dongle_id);
// **** file fhelpers ***** // **** file fhelpers *****
std::string read_file(const std::string& fn); std::string read_file(const std::string& fn);

@ -48,10 +48,12 @@ DriveStats::DriveStats(QWidget* parent) : QWidget(parent) {
add_stats_layouts("ALL TIME", all_); add_stats_layouts("ALL TIME", all_);
add_stats_layouts("PAST WEEK", week_); add_stats_layouts("PAST WEEK", week_);
QString dongleId = QString::fromStdString(Params().get("DongleId")); std::string dongle_id = Params().get("DongleId");
QString url = "https://api.commadotai.com/v1.1/devices/" + dongleId + "/stats"; if (util::is_valid_dongle_id(dongle_id)) {
RequestRepeater* repeater = new RequestRepeater(this, url, "ApiCache_DriveStats", 30); std::string url = "https://api.commadotai.com/v1.1/devices/" + dongle_id + "/stats";
QObject::connect(repeater, &RequestRepeater::receivedResponse, this, &DriveStats::parseResponse); RequestRepeater* repeater = new RequestRepeater(this, QString::fromStdString(url), "ApiCache_DriveStats", 30);
QObject::connect(repeater, &RequestRepeater::receivedResponse, this, &DriveStats::parseResponse);
}
setStyleSheet(R"(QLabel {font-size: 48px; font-weight: 500;})"); setStyleSheet(R"(QLabel {font-size: 48px; font-weight: 500;})");
} }

@ -101,14 +101,12 @@ PrimeUserWidget::PrimeUserWidget(QWidget* parent) : QWidget(parent) {
)"); )");
// set up API requests // set up API requests
QString dongleId = QString::fromStdString(Params().get("DongleId")); std::string dongleId = Params().get("DongleId");
if (!dongleId.length()) { if (util::is_valid_dongle_id(dongleId)) {
return; std::string url = "https://api.commadotai.com/v1/devices/" + dongleId + "/owner";
RequestRepeater *repeater = new RequestRepeater(this, QString::fromStdString(url), "ApiCache_Owner", 6);
QObject::connect(repeater, &RequestRepeater::receivedResponse, this, &PrimeUserWidget::replyFinished);
} }
QString url = "https://api.commadotai.com/v1/devices/" + dongleId + "/owner";
RequestRepeater *repeater = new RequestRepeater(this, url, "ApiCache_Owner", 6);
QObject::connect(repeater, &RequestRepeater::receivedResponse, this, &PrimeUserWidget::replyFinished);
} }
void PrimeUserWidget::replyFinished(const QString &response) { void PrimeUserWidget::replyFinished(const QString &response) {
@ -232,12 +230,14 @@ SetupWidget::SetupWidget(QWidget* parent) : QFrame(parent) {
setSizePolicy(sp_retain); setSizePolicy(sp_retain);
// set up API requests // set up API requests
QString dongleId = QString::fromStdString(Params().get("DongleId")); std::string dongleId = Params().get("DongleId");
QString url = "https://api.commadotai.com/v1.1/devices/" + dongleId + "/"; if (util::is_valid_dongle_id(dongleId)) {
RequestRepeater* repeater = new RequestRepeater(this, url, "ApiCache_Device", 5); std::string url = "https://api.commadotai.com/v1.1/devices/" + dongleId + "/";
RequestRepeater* repeater = new RequestRepeater(this, QString::fromStdString(url), "ApiCache_Device", 5);
QObject::connect(repeater, &RequestRepeater::receivedResponse, this, &SetupWidget::replyFinished); QObject::connect(repeater, &RequestRepeater::receivedResponse, this, &SetupWidget::replyFinished);
QObject::connect(repeater, &RequestRepeater::failedResponse, this, &SetupWidget::parseError); QObject::connect(repeater, &RequestRepeater::failedResponse, this, &SetupWidget::parseError);
}
hide(); // Only show when first request comes back hide(); // Only show when first request comes back
} }

Loading…
Cancel
Save