Page MenuHomePhabricator

D3117.id9588.diff
No OneTemporary

D3117.id9588.diff

diff --git a/services/tunnelbroker/docker-server/contents/server/src/Database/DatabaseManager.h b/services/tunnelbroker/docker-server/contents/server/src/Database/DatabaseManager.h
--- a/services/tunnelbroker/docker-server/contents/server/src/Database/DatabaseManager.h
+++ b/services/tunnelbroker/docker-server/contents/server/src/Database/DatabaseManager.h
@@ -3,7 +3,6 @@
#include "AwsTools.h"
#include "Constants.h"
#include "DatabaseEntitiesTools.h"
-#include "DeviceSessionItem.h"
#include "Tools.h"
#include <aws/core/Aws.h>
@@ -48,6 +47,10 @@
void putPublicKeyItem(const PublicKeyItem &item);
std::shared_ptr<PublicKeyItem> findPublicKeyItem(const std::string &deviceId);
void removePublicKeyItem(const std::string &deviceId);
+
+ void putMessageItem(const MessageItem &item);
+ std::shared_ptr<MessageItem> findMessageItem(const std::string &messageID);
+ void removeMessageItem(const std::string &messageID);
};
} // namespace database
diff --git a/services/tunnelbroker/docker-server/contents/server/src/Database/DatabaseManager.cpp b/services/tunnelbroker/docker-server/contents/server/src/Database/DatabaseManager.cpp
--- a/services/tunnelbroker/docker-server/contents/server/src/Database/DatabaseManager.cpp
+++ b/services/tunnelbroker/docker-server/contents/server/src/Database/DatabaseManager.cpp
@@ -160,6 +160,43 @@
this->innerRemoveItem(*(createItemByType<PublicKeyItem>()), deviceId);
}
+void DatabaseManager::putMessageItem(const MessageItem &item) {
+ Aws::DynamoDB::Model::PutItemRequest request;
+ request.SetTableName(item.getTableName());
+ request.AddItem(
+ MessageItem::FIELD_MESSAGE_ID,
+ Aws::DynamoDB::Model::AttributeValue(item.getMessageID()));
+ request.AddItem(
+ MessageItem::FIELD_FROM_DEVICE_ID,
+ Aws::DynamoDB::Model::AttributeValue(item.getFromDeviceID()));
+ request.AddItem(
+ MessageItem::FIELD_TO_DEVICE_ID,
+ Aws::DynamoDB::Model::AttributeValue(item.getToDeviceID()));
+ request.AddItem(
+ MessageItem::FIELD_PAYLOAD,
+ Aws::DynamoDB::Model::AttributeValue(item.getPayload()));
+ request.AddItem(
+ MessageItem::FIELD_BLOB_HASHES,
+ Aws::DynamoDB::Model::AttributeValue(item.getBlobHashes()));
+ request.AddItem(
+ MessageItem::FIELD_EXPIRE,
+ Aws::DynamoDB::Model::AttributeValue(std::to_string(item.getExpire())));
+ this->innerPutItem(std::make_shared<MessageItem>(item), request);
+}
+
+std::shared_ptr<MessageItem>
+DatabaseManager::findMessageItem(const std::string &messageID) {
+ Aws::DynamoDB::Model::GetItemRequest request;
+ request.AddKey(
+ MessageItem::FIELD_MESSAGE_ID,
+ Aws::DynamoDB::Model::AttributeValue(messageID));
+ return std::move(this->innerFindItem<MessageItem>(request));
+}
+
+void DatabaseManager::removeMessageItem(const std::string &messageID) {
+ this->innerRemoveItem(*(createItemByType<MessageItem>()), messageID);
+}
+
} // namespace database
} // namespace network
} // namespace comm
diff --git a/services/tunnelbroker/docker-server/contents/server/src/Service/TunnelbrokerServiceImpl.cpp b/services/tunnelbroker/docker-server/contents/server/src/Service/TunnelbrokerServiceImpl.cpp
--- a/services/tunnelbroker/docker-server/contents/server/src/Service/TunnelbrokerServiceImpl.cpp
+++ b/services/tunnelbroker/docker-server/contents/server/src/Service/TunnelbrokerServiceImpl.cpp
@@ -26,7 +26,9 @@
config::ConfigManager::getInstance().getParameter(
config::ConfigManager::OPTION_DYNAMODB_SESSIONS_VERIFICATION_TABLE),
config::ConfigManager::getInstance().getParameter(
- config::ConfigManager::OPTION_DYNAMODB_SESSIONS_PUBLIC_KEY_TABLE)};
+ config::ConfigManager::OPTION_DYNAMODB_SESSIONS_PUBLIC_KEY_TABLE),
+ config::ConfigManager::getInstance().getParameter(
+ config::ConfigManager::OPTION_DYNAMODB_MESSAGES_TABLE)};
for (const std::string &table : tablesList) {
if (!database::DatabaseManager::getInstance().isTableAvailable(table)) {
throw std::runtime_error(

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 6, 12:49 PM (21 h, 38 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2249739
Default Alt Text
D3117.id9588.diff (3 KB)

Event Timeline