Add cache status code for gpx and ocdb

sql-rework
Tomasz Golinski 2020-03-20 01:49:06 +01:00
rodzic f4e6a3575a
commit 649e6e2795
2 zmienionych plików z 14 dodań i 1 usunięć

Wyświetl plik

@ -60,6 +60,7 @@ Caches GPX::get_user_caches(__attribute__((unused)) const std::string& uuid, __a
c.pos.lat = stof(el->lat().getValue());
c.pos.lon = stof(el->lon().getValue());
c.type = el->type().getValue();
c.status = unknown;
if (c.type.starts_with("Geocache|"))
c.type.erase(0, 9);
if (c.type.ends_with(" Cache"))

Wyświetl plik

@ -330,6 +330,7 @@ Caches OCdb::get_user_caches_not_found(const std::string& uuid) const {
while (res == SQLITE_ROW) {
c.code = reinterpret_cast<const char*>(sqlite3_column_text(stmt, 0));
c.pos = get_lat_lon(reinterpret_cast<const char*>(sqlite3_column_text(stmt, 1)));
c.status = ok;
cc.push_back(c);
res = sqlite3_step(stmt);
}
@ -348,7 +349,7 @@ Caches OCdb::get_user_caches(const std::string& uuid, __attribute__((unused)) in
Caches cc;
Cache c;
//code TEXT PRIMARY KEY, name TEXT, location TEXT, type TEXT, status TEXT, size TEXT, difficulty REAL, terrain REAL, country TEXT, region TEXT, owner TEXT)
std::string sql = "SELECT code, location, type, size, difficulty, terrain, country, region, owner FROM caches WHERE EXISTS (SELECT cache_code FROM logs WHERE cache_code = code AND type = 1 and user = ?);";
std::string sql = "SELECT code, location, type, size, difficulty, terrain, country, region, owner, status FROM caches WHERE EXISTS (SELECT cache_code FROM logs WHERE cache_code = code AND type = 1 and user = ?);";
res = sqlite3_prepare_v2(db, sql.c_str(), sql.length() + 1, &stmt, NULL);
if (res != SQLITE_OK) {
@ -369,6 +370,17 @@ Caches OCdb::get_user_caches(const std::string& uuid, __attribute__((unused)) in
//c.country = reinterpret_cast<const char*>(sqlite3_column_text(stmt, 6));
c.region = reinterpret_cast<const char*>(sqlite3_column_text(stmt, 7));
c.owner_uuid = reinterpret_cast<const char*>(sqlite3_column_text(stmt, 8)); // TODO: we don't know owner's nick
std::string tmp = reinterpret_cast<const char*>(sqlite3_column_text(stmt, 9));
if (tmp == "Available")
c.status = ok;
else if (tmp == "Temporarily unavailable")
c.status = disabled;
else if (tmp == "Archived")
c.status = archived;
else
c.status = unknown;
cc.push_back(c);
res = sqlite3_step(stmt);
}