#include "values/DnaDB.hpp" #include void DnaDB::init(const char * db_name) { sql::init(); int res = sql::open(db_name, &db); constexpr char create_user_table[] = "CREATE TABLE IF NOT EXISTS user_table ( ID INTEGER PRIMARY KEY, USER_ID INTEGER, MAX_GENERATION INTEGER);"; res = sql::exec(db, create_user_table, nullptr, nullptr, nullptr); } void DnaDB::deinit() { sql::close(db); sql::shutdown(); } std::vector DnaDB::getUserIds() { constexpr char sql[] = "SELECT USER_ID FROM user_table;"; sqlite3_stmt *stmt; sql::prepare_v2(db, sql, -1, &stmt, nullptr); std::vector ids; while (sql::step(stmt) != SQL_DONE) { int64_t id = sql::column_int64(stmt, 0); ids.push_back(id); } sql::finalize(stmt); return ids; } int DnaDB::insertUser(int64_t id, int64_t max_gen){ constexpr char sql[] = "INSERT INTO user_table (USER_ID, MAX_GENERATION) VALUES (?,?);"; sqlite3_stmt *stmt; sql::prepare_v2(db, sql, -1, &stmt, nullptr); sql::bind_int64(stmt, 1, id); sql::bind_int64(stmt, 2, max_gen); int ret = sql::step(stmt); sql::finalize(stmt); return ret; } int DnaDB::updateUser(int64_t id, int64_t max_gen){ constexpr char sql[] = "UPDATE user_table SET MAX_GENERATION = ? WHERE USER_ID = ?;"; sqlite3_stmt *stmt; sql::prepare_v2(db, sql, -1, &stmt, nullptr); sql::bind_int64(stmt, 1, max_gen); sql::bind_int64(stmt, 2, id); int ret = sql::step(stmt); sql::finalize(stmt); return ret; } void DnaDB::getGenerations() { } void DnaDB::getLikesForGeneration() { } void DnaDB::getVectorForGeneration() { }