From: Steinar H. Gunderson Date: Mon, 29 May 2023 15:22:30 +0000 (+0200) Subject: Export formations to the JSON. X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=83e7f2b82bb884ac49f6d632e39751e18e5fd0c0;p=pkanalytics Export formations to the JSON. --- diff --git a/json.cpp b/json.cpp index ec7d3eb..09b2c4d 100644 --- a/json.cpp +++ b/json.cpp @@ -39,6 +39,40 @@ QJsonArray export_players_to_json(sqlite3 *db) return players; } +QJsonArray export_formations_to_json(sqlite3 *db) +{ + QJsonArray formations; + + sqlite3_stmt *stmt; + int ret = sqlite3_prepare_v2(db, "SELECT formation, offense, name FROM formation ORDER BY name", -1, &stmt, 0); + if (ret != SQLITE_OK) { + fprintf(stderr, "SELECT prepare: %s\n", sqlite3_errmsg(db)); + abort(); + } + for ( ;; ) { + ret = sqlite3_step(stmt); + if (ret == SQLITE_ROW) { + QJsonObject f; + f.insert("formation_id", sqlite3_column_int(stmt, 0)); + f.insert("offense", bool(sqlite3_column_int(stmt, 1))); + f.insert("name", (const char *)sqlite3_column_text(stmt, 2)); + formations.push_back(std::move(f)); + } else if (ret == SQLITE_DONE) { + break; + } else { + fprintf(stderr, "SELECT step: %s\n", sqlite3_errmsg(db)); + abort(); + } + } + ret = sqlite3_finalize(stmt); + if (ret != SQLITE_OK) { + fprintf(stderr, "SELECT finalize: %s\n", sqlite3_errmsg(db)); + abort(); + } + + return formations; +} + QJsonArray export_matches_to_json(sqlite3 *db) { QJsonArray matches; @@ -121,6 +155,7 @@ void export_to_json(sqlite3 *db, const char *filename) { QJsonObject obj; obj.insert("players", export_players_to_json(db)); + obj.insert("formations", export_formations_to_json(db)); obj.insert("matches", export_matches_to_json(db)); QByteArray serialized = QString(QJsonDocument(obj).toJson(QJsonDocument::Compact)).toUtf8();