diff --git a/src/main.cpp b/src/main.cpp index 3f6fdee..d31dfca 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -162,7 +162,7 @@ int main (int argc, char *argv[]) { std::thread update_thread = std::thread { [client_shared_ptr, base_uri](){ while(true){ batched_update(client_shared_ptr, base_uri); - for (size_t i = 0; i<5; i++) { + for (size_t i = 0; i<10; i++) { sleep(60); spdlog::info("Daemon is still alive"); } diff --git a/src/types.cpp b/src/types.cpp index eea7dd9..203f9eb 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -220,28 +220,15 @@ std::string get_or_create_class(const CHClient& client, if (!class_id.empty()) { // Update last_seen - Block update_block; - auto user_col = std::make_shared(); - auto name_col = std::make_shared(); - auto teacher_col = std::make_shared(); - auto period_col = std::make_shared(); - auto category_col = std::make_shared(); - - user_col->Append(parse_uuid(user_id)); - name_col->Append(class_data.className); - teacher_col->Append(class_data.teacher); - period_col->Append(class_data.period); - category_col->Append(class_data.category); - - update_block.AppendColumn("user_id", user_col); - update_block.AppendColumn("class_name", name_col); - update_block.AppendColumn("teacher", teacher_col); - update_block.AppendColumn("period", period_col); - update_block.AppendColumn("category", category_col); - - client->Insert("user_classes", update_block); - spdlog::debug("Updated existing class: {}", class_id); - return class_id; + client->Execute( + "ALTER TABLE user_classes UPDATE " + "teacher = '" + sanitize_clickhouse_string(class_data.teacher) + "', " + "period = '" + sanitize_clickhouse_string(class_data.period) + "', " + "category = '" + sanitize_clickhouse_string(class_data.category) + "', " + "last_seen = now() " + "WHERE class_id = '" + sanitize_clickhouse_string(class_id) + "'" + ); + return class_id; } // Create new class @@ -307,27 +294,6 @@ std::string get_or_create_assignment(const CHClient& client, if (!assignment_id.empty()) { // Update last_seen - Block update_block; - auto class_col = std::make_shared(); - auto user_col = std::make_shared(); - auto name_col = std::make_shared(); - auto date_col = std::make_shared(); - auto major_col = std::make_shared(); - - class_col->Append(parse_uuid(class_id)); - user_col->Append(parse_uuid(user_id)); - name_col->Append(assignment_data.name); - date_col->Append(parse_date_to_clickhouse(assignment_data.dueDate)); - major_col->Append(assignment_data.isMajorGrade ? 1 : 0); - - update_block.AppendColumn("class_id", class_col); - update_block.AppendColumn("user_id", user_col); - update_block.AppendColumn("assignment_name", name_col); - update_block.AppendColumn("due_date", date_col); - update_block.AppendColumn("is_major_grade", major_col); - - client->Insert("user_assignments", update_block); - spdlog::debug("Updated existing assignment: {}", assignment_id); return assignment_id; }