Page MenuHomePhorge

D3177.1765183447.diff
No OneTemporary

Size
5 KB
Referenced Files
None
Subscribers
None

D3177.1765183447.diff

diff --git a/services/backup/docker-server/contents/server/src/DatabaseEntities/BackupItem.h b/services/backup/docker-server/contents/server/src/DatabaseEntities/BackupItem.h
--- a/services/backup/docker-server/contents/server/src/DatabaseEntities/BackupItem.h
+++ b/services/backup/docker-server/contents/server/src/DatabaseEntities/BackupItem.h
@@ -43,7 +43,7 @@
void assignItemFromDatabase(const AttributeValues &itemFromDB) override;
std::string getTableName() const override;
- std::string getPrimaryKey() const override;
+ PrimaryKey getPrimaryKey() const override;
std::string getUserID() const;
uint64_t getCreated() const;
diff --git a/services/backup/docker-server/contents/server/src/DatabaseEntities/BackupItem.cpp b/services/backup/docker-server/contents/server/src/DatabaseEntities/BackupItem.cpp
--- a/services/backup/docker-server/contents/server/src/DatabaseEntities/BackupItem.cpp
+++ b/services/backup/docker-server/contents/server/src/DatabaseEntities/BackupItem.cpp
@@ -75,8 +75,8 @@
return BackupItem::tableName;
}
-std::string BackupItem::getPrimaryKey() const {
- return BackupItem::FIELD_USER_ID;
+PrimaryKey BackupItem::getPrimaryKey() const {
+ return PrimaryKey(BackupItem::FIELD_USER_ID, BackupItem::FIELD_CREATED);
}
std::string BackupItem::getUserID() const {
diff --git a/services/backup/docker-server/contents/server/src/DatabaseEntities/Item.h b/services/backup/docker-server/contents/server/src/DatabaseEntities/Item.h
--- a/services/backup/docker-server/contents/server/src/DatabaseEntities/Item.h
+++ b/services/backup/docker-server/contents/server/src/DatabaseEntities/Item.h
@@ -3,6 +3,7 @@
#include <aws/core/Aws.h>
#include <aws/dynamodb/DynamoDBClient.h>
+#include <memory>
#include <string>
namespace comm {
@@ -12,12 +13,25 @@
typedef Aws::Map<Aws::String, Aws::DynamoDB::Model::AttributeValue>
AttributeValues;
+struct PrimaryKey {
+ PrimaryKey(const std::string partitionKey)
+ : partitionKey(partitionKey), sortKey(nullptr) {
+ }
+ PrimaryKey(const std::string partitionKey, const std::string sortKey)
+ : partitionKey(partitionKey),
+ sortKey(std::make_unique<std::string>(sortKey)) {
+ }
+
+ const std::string partitionKey;
+ std::unique_ptr<std::string> sortKey;
+};
+
class Item {
virtual void validate() const = 0;
public:
virtual std::string getTableName() const = 0;
- virtual std::string getPrimaryKey() const = 0;
+ virtual PrimaryKey getPrimaryKey() const = 0;
virtual void assignItemFromDatabase(const AttributeValues &itemFromDB) = 0;
};
diff --git a/services/backup/docker-server/contents/server/src/DatabaseEntities/LogItem.h b/services/backup/docker-server/contents/server/src/DatabaseEntities/LogItem.h
--- a/services/backup/docker-server/contents/server/src/DatabaseEntities/LogItem.h
+++ b/services/backup/docker-server/contents/server/src/DatabaseEntities/LogItem.h
@@ -40,7 +40,7 @@
void assignItemFromDatabase(const AttributeValues &itemFromDB) override;
std::string getTableName() const override;
- std::string getPrimaryKey() const override;
+ PrimaryKey getPrimaryKey() const override;
std::string getBackupID() const;
std::string getLogID() const;
diff --git a/services/backup/docker-server/contents/server/src/DatabaseEntities/LogItem.cpp b/services/backup/docker-server/contents/server/src/DatabaseEntities/LogItem.cpp
--- a/services/backup/docker-server/contents/server/src/DatabaseEntities/LogItem.cpp
+++ b/services/backup/docker-server/contents/server/src/DatabaseEntities/LogItem.cpp
@@ -69,8 +69,8 @@
return LogItem::tableName;
}
-std::string LogItem::getPrimaryKey() const {
- return LogItem::FIELD_BACKUP_ID;
+PrimaryKey LogItem::getPrimaryKey() const {
+ return PrimaryKey(LogItem::FIELD_BACKUP_ID, LogItem::FIELD_LOG_ID);
}
std::string LogItem::getBackupID() const {
diff --git a/services/backup/docker-server/contents/server/src/DatabaseManager.cpp b/services/backup/docker-server/contents/server/src/DatabaseManager.cpp
--- a/services/backup/docker-server/contents/server/src/DatabaseManager.cpp
+++ b/services/backup/docker-server/contents/server/src/DatabaseManager.cpp
@@ -34,7 +34,8 @@
Aws::DynamoDB::Model::DeleteItemRequest request;
request.SetTableName(item.getTableName());
request.AddKey(
- item.getPrimaryKey(), Aws::DynamoDB::Model::AttributeValue(key));
+ item.getPrimaryKey().partitionKey,
+ Aws::DynamoDB::Model::AttributeValue(key));
const Aws::DynamoDB::Model::DeleteItemOutcome &outcome =
getDynamoDBClient()->DeleteItem(request);
@@ -75,7 +76,7 @@
Aws::DynamoDB::Model::QueryRequest req;
req.SetTableName(BackupItem::tableName);
- req.SetKeyConditionExpression(item->getPrimaryKey() + " = :valueToMatch");
+ req.SetKeyConditionExpression(BackupItem::FIELD_USER_ID + " = :valueToMatch");
AttributeValues attributeValues;
attributeValues.emplace(":valueToMatch", userID);
@@ -144,7 +145,7 @@
Aws::DynamoDB::Model::QueryRequest req;
req.SetTableName(LogItem::tableName);
- req.SetKeyConditionExpression(item->getPrimaryKey() + " = :valueToMatch");
+ req.SetKeyConditionExpression(LogItem::FIELD_BACKUP_ID + " = :valueToMatch");
AttributeValues attributeValues;
attributeValues.emplace(":valueToMatch", backupID);

File Metadata

Mime Type
text/plain
Expires
Mon, Dec 8, 8:44 AM (14 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5847607
Default Alt Text
D3177.1765183447.diff (5 KB)

Event Timeline