diff --git a/main.cpp b/main.cpp index ee35dc5..dcc571f 100644 --- a/main.cpp +++ b/main.cpp @@ -465,20 +465,23 @@ protected: void insertUserPresenceUpdate(const Json::Value& data, bool is_initial) { // Build status std::string status_str; + bool is_online; { const auto& client_status = data["client_status"]; if (client_status.isArray() && !client_status.empty()) { const auto device = client_status.getMemberNames()[0]; status_str = "[\""+client_status[device].asString()+"\", \""+device+"\"]"; + is_online = true; } else { status_str = R"(["offline", "none"])"; + is_online = false; } } // Insert db << "INSERT INTO user_presences (user_id, is_initial, timestamp, status, activities)" " VALUES (?, ?, ?, ?, ? );" - << data["user"]["id"].asString() << is_initial << std::to_string(time(nullptr)) << status_str << GetJSONAsOptionalJSONData(data["activities"]); + << data["user"]["id"].asString() << is_initial << std::to_string(time(nullptr)) << status_str << (is_online?GetJSONAsOptionalJSONData(data["activities"]):std::optional()); } /*