diff --git a/src/db/main-db.cpp b/src/db/main-db.cpp index f5157904a..f7c59dc57 100644 --- a/src/db/main-db.cpp +++ b/src/db/main-db.cpp @@ -487,13 +487,13 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), soci::rowset rows = (session->prepare << query, soci::use(eventId)); for (const auto &row : rows) { ContentType contentType(row.get(2)); + const long long &contentId = resolveId(row, 0); Content *content; if (contentType == ContentType::FileTransfer) content = new FileTransferContent(); else if (contentType.isFile()) { - const long long &contentId = resolveId(row, 0); - + // 2.1 - Fetch contents' file informations. string name; int size; string path; @@ -511,6 +511,16 @@ MainDb::MainDb (const shared_ptr &core) : AbstractDb(*new MainDbPrivate), } else content = new Content(); + // 2.2 - Fetch contents' app data. + static const string content_app_data_query = "SELECT name, data FROM chat_message_content_app_data" + " WHERE chat_message_content_id = :messageContentId"; + soci::rowset content_app_data_rows = (session->prepare << content_app_data_query, soci::use(contentId)); + for (const auto &content_app_data_row : content_app_data_rows) { + string content_app_data_name(content_app_data_row.get(0)); + string content_app_data_value(content_app_data_row.get(1)); + content->setAppData(content_app_data_name, content_app_data_value); + } + content->setContentType(contentType); content->setBody(row.get(3)); chatMessage->addContent(*content);