Migrates flm handlers and objects to plain member access

This commit is contained in:
berrux-dev committed 2026-09-18 17:47:34 +02:00
1 parent e156fbb5e4
commit 3c058facd7
9 files changed
+217 -217

No files matched your search

@@ -70,7 +70,7 @@ bool HandlerFileContent::init()
void HandlerFileContent::onFileContentModifyRequest(const rti::core::SampleIdentity &cookie, void HandlerFileContent::onFileContentModifyRequest(const rti::core::SampleIdentity &cookie,
const FileManagement::FileContentModifyRequest &request) const FileManagement::FileContentModifyRequest &request)
{ {
auto ret = request.id() > 0 ? fileContentModifyRequest(request) : fileContentCreateRequest(request); auto ret = request.id > 0 ? fileContentModifyRequest(request) : fileContentCreateRequest(request);
if (ret.error()) if (ret.error())
WARNING_LOG(m_logger) << ret(); WARNING_LOG(m_logger) << ret();
fts()->fileContentModifyReply(cookie, ret); fts()->fileContentModifyReply(cookie, ret);
@@ -91,9 +91,9 @@ Core::FunctionReplyObject HandlerFileContent::fileContentCreateRequest(const Fil
//---------------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------------
Core::FunctionReplyObject HandlerFileContent::fileContentModifyRequest(const FileManagement::FileContentModifyRequest &request) Core::FunctionReplyObject HandlerFileContent::fileContentModifyRequest(const FileManagement::FileContentModifyRequest &request)
{ {
ObjectFileContent *ifs = m_objectFileContentMap.value(request.id()); ObjectFileContent *ifs = m_objectFileContentMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "FileContent with id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "FileContent with id %1 not found")).arg(request.id);
return ifs->updateObject(request); return ifs->updateObject(request);
} }
@@ -101,10 +101,10 @@ Core::FunctionReplyObject HandlerFileContent::fileContentModifyRequest(const Fil
void HandlerFileContent::onFileContentChangeStatusRequest(const rti::core::SampleIdentity &cookie, void HandlerFileContent::onFileContentChangeStatusRequest(const rti::core::SampleIdentity &cookie,
const FileManagement::FileContentChangeStatusRequest &request) const FileManagement::FileContentChangeStatusRequest &request)
{ {
ObjectFileContent *ifs = m_objectFileContentMap.value(request.id()); ObjectFileContent *ifs = m_objectFileContentMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
{ {
Core::FunctionReplyObject ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "FileContent with id %1 not found")).arg(request.id()); Core::FunctionReplyObject ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "FileContent with id %1 not found")).arg(request.id);
fts()->fileContentChangeStatusReply(cookie, ret); fts()->fileContentChangeStatusReply(cookie, ret);
return; return;
} }
@@ -127,13 +127,13 @@ void HandlerFileContent::onFileContentRemoveRequest(const rti::core::SampleIdent
Core::FunctionReplyObject HandlerFileContent::fileContentRemoveRequest(const Core::RemoveElementRequest &request) Core::FunctionReplyObject HandlerFileContent::fileContentRemoveRequest(const Core::RemoveElementRequest &request)
{ {
ObjectFileContent *ifs = m_objectFileContentMap.value(request.id()); ObjectFileContent *ifs = m_objectFileContentMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "FileContent with id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "FileContent with id %1 not found")).arg(request.id);
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId())) if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId()))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "FileContent '%1' is used by another user!")).arg(ifs->getName()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "FileContent '%1' is used by another user!")).arg(ifs->getName());
auto ret = ifs->removeObject(); auto ret = ifs->removeObject();
@@ -141,7 +141,7 @@ Core::FunctionReplyObject HandlerFileContent::fileContentRemoveRequest(const Cor
{ {
// delete ObjectFileContent // delete ObjectFileContent
delete ifs; delete ifs;
m_objectFileContentMap.remove(request.id()); m_objectFileContentMap.remove(request.id);
} }
return ret; return ret;
@@ -152,28 +152,28 @@ void HandlerFileContent::onFileContentExportRequest(const rti::core::SampleIdent
const FileManagement::FileContentExportRequest &request) const FileManagement::FileContentExportRequest &request)
{ {
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
ObjectFileContent *ifs = m_objectFileContentMap.value(request.id()); ObjectFileContent *ifs = m_objectFileContentMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "FileContent with id %1 not found")).arg(request.id()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "FileContent with id %1 not found")).arg(request.id);
fts()->fileContentExportReply(cookie, ret); fts()->fileContentExportReply(cookie, ret);
return; return;
} }
// get content on demand from DB // get content on demand from DB
Database::FlmFileContent flmContent; Database::FlmFileContent flmContent;
if (!db()->selectFlmFileContent(request.id(), flmContent)) if (!db()->selectFlmFileContent(request.id, flmContent))
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "FileContent with id %1 not found in database")).arg(request.id()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "FileContent with id %1 not found in database")).arg(request.id);
QByteArray content = flmContent.content; QByteArray content = flmContent.content;
DEBUG_LOG(m_logger) << "Content size: " << content.size(); DEBUG_LOG(m_logger) << "Content size: " << content.size();
// creating an unique file name: temp path + folderId + file name + file extension (NN_FileName.FileExt) // creating an unique file name: temp path + folderId + file name + file extension (NN_FileName.FileExt)
QString fileName = QDir::tempPath() + QLatin1Char('/') + QString::number(ifs->getFolderId()) + QLatin1Char('-'); QString fileName = QDir::tempPath() + QLatin1Char('/') + QString::number(ifs->getFolderId()) + QLatin1Char('-');
fileName += QString::fromStdString(ifs->getData().name()).simplified().replace(QLatin1Char(' '), QLatin1Char('_')); fileName += QString::fromStdString(ifs->getData().name).simplified().replace(QLatin1Char(' '), QLatin1Char('_'));
// add extension // add extension
FileType fileType = ifs->getData().fileType().underlying(); FileType fileType = ifs->getData().fileType;
QString fileExt = m_mainHandler->getHandlerFileTypeInfo()->getFileExtension(fileType); QString fileExt = m_mainHandler->getHandlerFileTypeInfo()->getFileExtension(fileType);
if (!fileExt.isEmpty()) if (!fileExt.isEmpty())
fileName += QLatin1Char('.') + fileExt; fileName += QLatin1Char('.') + fileExt;
@@ -184,7 +184,7 @@ void HandlerFileContent::onFileContentExportRequest(const rti::core::SampleIdent
QFile file(fileName); QFile file(fileName);
if (!file.open(QIODevice::WriteOnly)) if (!file.open(QIODevice::WriteOnly))
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Failed to write to %1")).arg(fileName); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Failed to write to %1")).arg(fileName);
fts()->fileContentExportReply(cookie, ret); fts()->fileContentExportReply(cookie, ret);
delete ifs; delete ifs;
return; return;
@@ -213,16 +213,16 @@ void HandlerFileContent::onGetFileContentDataRequest(const rti::core::SampleIden
Core::FunctionReplyObject fro; Core::FunctionReplyObject fro;
GetFileContentDataReply reply; GetFileContentDataReply reply;
ObjectFileContent *ifs = m_objectFileContentMap.value(request.fileContentId()); ObjectFileContent *ifs = m_objectFileContentMap.value(request.fileContentId);
if (ifs) if (ifs)
{ {
reply.id(ifs->getId()); reply.id = ifs->getId();
// get content on demand from DB // get content on demand from DB
Database::FlmFileContent flmContent; Database::FlmFileContent flmContent;
if (!db()->selectFlmFileContent(request.fileContentId(), flmContent)) if (!db()->selectFlmFileContent(request.fileContentId, flmContent))
fro = Core::FunctionReplyObject(request.fileContentId(), tr_lts("dds", "File content with id %1 not found in database")).arg(request.fileContentId()); fro = Core::FunctionReplyObject(request.fileContentId, tr_lts("dds", "File content with id %1 not found in database")).arg(request.fileContentId);
/* no need to set content of object /* no need to set content of object
else else
ifs->setContent(LtsUtils::convert<std::vector<uint8_t>>(flmContent.content)); ifs->setContent(LtsUtils::convert<std::vector<uint8_t>>(flmContent.content));
@@ -233,21 +233,21 @@ void HandlerFileContent::onGetFileContentDataRequest(const rti::core::SampleIden
reply.content(ifs->getContent()); reply.content(ifs->getContent());
*/ */
if (flmContent.content.size() <= 0) if (flmContent.content.size() <= 0)
fro = Core::FunctionReplyObject(request.fileContentId(), tr_lts("dds", "No content available")); fro = Core::FunctionReplyObject(request.fileContentId, tr_lts("dds", "No content available"));
else else
reply.content(LtsUtils::convert<std::vector<uint8_t>>(flmContent.content)); reply.content = LtsUtils::convert<std::vector<uint8_t>>(flmContent.content);
} }
else else
fro = Core::FunctionReplyObject(request.fileContentId(), tr_lts("dds", "No valid id = %1 for retrieving file content")).arg(request.fileContentId()); fro = Core::FunctionReplyObject(request.fileContentId, tr_lts("dds", "No valid id = %1 for retrieving file content")).arg(request.fileContentId);
if (fro.error()) if (fro.error())
{ {
reply.id(fro.id()); reply.id = fro.id();
reply.errorString(fro.str()); reply.errorString = fro.str();
reply.errorParams(fro.args()); reply.errorParams = fro.args();
} }
DEBUG_LOG(m_logger) << "Got content size: " << reply.content().size(); DEBUG_LOG(m_logger) << "Got content size: " << reply.content.size();
fts()->getFileContentDataReply(cookie, reply); fts()->getFileContentDataReply(cookie, reply);
} }
@@ -307,10 +307,10 @@ bool HandlerFileContent::initByDbId(int dbId)
void HandlerFileContent::onFileContentSetUsedRequest(const rti::core::SampleIdentity &cookie, void HandlerFileContent::onFileContentSetUsedRequest(const rti::core::SampleIdentity &cookie,
const FileManagement::FileContentSetUsedRequest &request) const FileManagement::FileContentSetUsedRequest &request)
{ {
ObjectFileContent *ifs = m_objectFileContentMap.value(request.id()); ObjectFileContent *ifs = m_objectFileContentMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
{ {
Core::FunctionReplyObject ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "FileContent with id %1 not found")).arg(request.id()); Core::FunctionReplyObject ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "FileContent with id %1 not found")).arg(request.id);
fts()->fileContentSetUsedReply(cookie, ret); fts()->fileContentSetUsedReply(cookie, ret);
return; return;
} }
@@ -60,7 +60,7 @@ QString HandlerFileTypeInfo::getFileExtension(const FileManagement::FileType &fi
{ {
for (FileManagement::ObjectFileTypeInfo *ft : m_objectFileTypeInfoMap) for (FileManagement::ObjectFileTypeInfo *ft : m_objectFileTypeInfoMap)
{ {
if (ft->getId() == fileType.underlying()) if (ft->getId() == static_cast<int>(fileType))
return ft->getExtension(); return ft->getExtension();
} }
return QString(); return QString();
@@ -67,7 +67,7 @@ bool HandlerFolder::init()
void HandlerFolder::onFolderModifyRequest(const rti::core::SampleIdentity &cookie, void HandlerFolder::onFolderModifyRequest(const rti::core::SampleIdentity &cookie,
const FileManagement::FolderModifyRequest &request) const FileManagement::FolderModifyRequest &request)
{ {
auto ret = request.id() > 0 ? folderModifyRequest(request) : folderCreateRequest(request); auto ret = request.id > 0 ? folderModifyRequest(request) : folderCreateRequest(request);
if (ret.error()) if (ret.error())
WARNING_LOG(m_logger) << ret(); WARNING_LOG(m_logger) << ret();
fts()->folderModifyReply(cookie, ret); fts()->folderModifyReply(cookie, ret);
@@ -76,14 +76,14 @@ void HandlerFolder::onFolderModifyRequest(const rti::core::SampleIdentity &cooki
//--------------------------------------------------- //---------------------------------------------------
Core::FunctionReplyObject HandlerFolder::folderCreateRequest(const FileManagement::FolderModifyRequest &request) Core::FunctionReplyObject HandlerFolder::folderCreateRequest(const FileManagement::FolderModifyRequest &request)
{ {
DEBUG_LOG(m_logger) << "Creating folder with name = " << request.name() << " under parent folder " << request.parentId(); DEBUG_LOG(m_logger) << "Creating folder with name = " << request.name << " under parent folder " << request.parentId;
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
Folder data; Folder data;
std::vector<int> parentPath; std::vector<int> parentPath;
if (request.parentId() > 0 && m_objectFolderMap.contains(request.parentId())) if (request.parentId > 0 && m_objectFolderMap.contains(request.parentId))
parentPath = m_objectFolderMap.value(request.parentId())->getPath(); parentPath = m_objectFolderMap.value(request.parentId)->getPath();
if (parentPath.size() == 0) if (parentPath.size() == 0)
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Folder on root level")); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Folder on root level"));
@@ -91,13 +91,13 @@ Core::FunctionReplyObject HandlerFolder::folderCreateRequest(const FileManagemen
std::vector<int> path = parentPath; std::vector<int> path = parentPath;
path.push_back(9999); // dummy id, only needed to retrieve later the proper id path.push_back(9999); // dummy id, only needed to retrieve later the proper id
data.name(request.name()); data.name = request.name;
data.path(path); data.path = path;
data.isEditable(request.isEditable()); data.isEditable = request.isEditable;
data.isHidden(request.isHidden()); data.isHidden = request.isHidden;
data.parentId(request.parentId()); data.parentId = request.parentId;
data.operatorId(request.operatorId()); data.operatorId = request.operatorId;
data.lastModified(QDateTime::currentMSecsSinceEpoch()); data.lastModified = QDateTime::currentMSecsSinceEpoch();
ObjectFolder *ifs(new ObjectFolder(m_mainHandler)); ObjectFolder *ifs(new ObjectFolder(m_mainHandler));
ret = ifs->createObject(data); ret = ifs->createObject(data);
@@ -109,13 +109,13 @@ Core::FunctionReplyObject HandlerFolder::folderCreateRequest(const FileManagemen
} }
else else
{ {
data.id(ifs->getId()); data.id = ifs->getId();
// update path with the real id // update path with the real id
path = parentPath; path = parentPath;
path.resize(parentPath.size() + 1, ifs->getId()); path.resize(parentPath.size() + 1, ifs->getId());
data.path(path); data.path = path;
data.lastModified(QDateTime::currentMSecsSinceEpoch()); data.lastModified = QDateTime::currentMSecsSinceEpoch();
ret = ifs->updateObject(data); ret = ifs->updateObject(data);
if (ret.error()) if (ret.error())
@@ -137,20 +137,20 @@ Core::FunctionReplyObject HandlerFolder::folderCreateRequest(const FileManagemen
//------------------------------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------------------------------
Core::FunctionReplyObject HandlerFolder::folderModifyRequest(const FileManagement::FolderModifyRequest &request) Core::FunctionReplyObject HandlerFolder::folderModifyRequest(const FileManagement::FolderModifyRequest &request)
{ {
ObjectFolder *ifs = m_objectFolderMap.value(request.id()); ObjectFolder *ifs = m_objectFolderMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Folder with id %1 not found")).arg(request.id()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Folder with id %1 not found")).arg(request.id);
Folder newData; Folder newData;
newData.id(request.id()); newData.id = request.id;
newData.name(request.name()); newData.name = request.name;
newData.path(request.path()); newData.path = request.path;
newData.isEditable(request.isEditable()); newData.isEditable = request.isEditable;
newData.parentId(request.parentId()); newData.parentId = request.parentId;
newData.operatorId(request.operatorId()); newData.operatorId = request.operatorId;
newData.lastModified(QDateTime::currentMSecsSinceEpoch()); newData.lastModified = QDateTime::currentMSecsSinceEpoch();
newData.isHidden(request.isHidden()); newData.isHidden = request.isHidden;
return ifs->updateObject(newData); return ifs->updateObject(newData);
} }
@@ -160,9 +160,9 @@ void HandlerFolder::onPathCreateRequest(const rti::core::SampleIdentity &cookie,
{ {
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
int parentFolderId = request.parentId(); int parentFolderId = request.parentId;
DEBUG_LOG(m_logger) << "parentFolderId: " << parentFolderId; DEBUG_LOG(m_logger) << "parentFolderId: " << parentFolderId;
for (const std::string &folderName : request.path()) for (const std::string &folderName : request.path)
{ {
int folderId = dtc()->findFolder(parentFolderId, QString::fromStdString(folderName)); int folderId = dtc()->findFolder(parentFolderId, QString::fromStdString(folderName));
DEBUG_LOG(m_logger) << "folderId: " << folderId << ", folderName: " << folderName; DEBUG_LOG(m_logger) << "folderId: " << folderId << ", folderName: " << folderName;
@@ -180,12 +180,12 @@ void HandlerFolder::onPathCreateRequest(const rti::core::SampleIdentity &cookie,
// Folder does not exist => create folder // Folder does not exist => create folder
FolderModifyRequest folderRequest; FolderModifyRequest folderRequest;
folderRequest.name(folderName); folderRequest.name = folderName;
folderRequest.parentId(parentFolderId); folderRequest.parentId = parentFolderId;
folderRequest.path(ifs->getPath()); folderRequest.path = ifs->getPath();
folderRequest.isEditable(request.isEditable()); folderRequest.isEditable = request.isEditable;
folderRequest.isHidden(request.isHidden()); folderRequest.isHidden = request.isHidden;
folderRequest.operatorId(request.operatorId()); folderRequest.operatorId = request.operatorId;
ret = folderCreateRequest(folderRequest); ret = folderCreateRequest(folderRequest);
@@ -208,22 +208,22 @@ void HandlerFolder::onFolderRemoveRequest(const rti::core::SampleIdentity &cooki
{ {
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
ObjectFolder *ifs = m_objectFolderMap.value(request.id()); ObjectFolder *ifs = m_objectFolderMap.value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Folder with id %1 not found")).arg(request.id()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Folder with id %1 not found")).arg(request.id);
fts()->folderRemoveReply(cookie, ret); fts()->folderRemoveReply(cookie, ret);
return; return;
} }
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId())) if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId()))
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "Folder '%1' is used by another user!")).arg(ifs->getName()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "Folder '%1' is used by another user!")).arg(ifs->getName());
fts()->folderRemoveReply(cookie, ret); fts()->folderRemoveReply(cookie, ret);
return; return;
} }
ret = removeFolder(request.id()); ret = removeFolder(request.id);
delete ifs; delete ifs;
@@ -273,17 +273,17 @@ void HandlerFolder::onFileContentRemoveRequest(const rti::core::SampleIdentity &
const Core::RemoveElementRequest &request) const Core::RemoveElementRequest &request)
{ {
Core::FunctionReplyObject ret; Core::FunctionReplyObject ret;
ObjectFileContent *ifs = m_mainHandler->getHandlerFileContent()->getObjectFileContentMap().value(request.id()); ObjectFileContent *ifs = m_mainHandler->getHandlerFileContent()->getObjectFileContentMap().value(request.id);
if (ifs == nullptr) if (ifs == nullptr)
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "FileContent with id %1 not found")).arg(request.id()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "FileContent with id %1 not found")).arg(request.id);
fts()->fileContentRemoveReply(cookie, ret); fts()->fileContentRemoveReply(cookie, ret);
return; return;
} }
if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId())) if (m_mainHandler->dds()->topicLockMaster()->isLocked(ifs->getData(), m_mainHandler->exerciseId()))
{ {
ret = Core::FunctionReplyObject(request.id(), tr_lts("dds", "FileContent '%1' is used by another user!")).arg(ifs->getName()); ret = Core::FunctionReplyObject(request.id, tr_lts("dds", "FileContent '%1' is used by another user!")).arg(ifs->getName());
fts()->folderRemoveReply(cookie, ret); fts()->folderRemoveReply(cookie, ret);
return; return;
} }
@@ -296,7 +296,7 @@ void HandlerFolder::onFileContentRemoveRequest(const rti::core::SampleIdentity &
{ {
// delete ObjectFileContent // delete ObjectFileContent
delete ifs; delete ifs;
m_mainHandler->getHandlerFileContent()->getObjectFileContentMap().remove(request.id()); m_mainHandler->getHandlerFileContent()->getObjectFileContentMap().remove(request.id);
} }
fts()->fileContentRemoveReply(cookie, ret); fts()->fileContentRemoveReply(cookie, ret);
@@ -315,7 +315,7 @@ void HandlerFolder::removeFilesForFolder(int folderId)
{ {
if (file->getFolderId() == folderId) if (file->getFolderId() == folderId)
{ {
request.id(file->getId()); request.id = file->getId();
auto ret = m_mainHandler->getHandlerFileContent()->fileContentRemoveRequest(request); auto ret = m_mainHandler->getHandlerFileContent()->fileContentRemoveRequest(request);
if (ret.error()) if (ret.error())
WARNING_LOG(m_logger) << ret(); WARNING_LOG(m_logger) << ret();
@@ -30,37 +30,37 @@ ObjectFileContent::~ObjectFileContent()
bool ObjectFileContent::isValid() const bool ObjectFileContent::isValid() const
{ {
return m_data.id() > 0; return m_data.id > 0;
} }
bool ObjectFileContent::isUsed() const bool ObjectFileContent::isUsed() const
{ {
return m_data.isUsed(); return m_data.isUsed;
} }
bool ObjectFileContent::isHidden() const bool ObjectFileContent::isHidden() const
{ {
return m_data.isHidden(); return m_data.isHidden;
} }
static FileContent toFileContent(const FileContentModifyRequest &request) static FileContent toFileContent(const FileContentModifyRequest &request)
{ {
FileContent data; FileContent data;
data.id(request.id()); data.id = request.id;
data.name(request.name()); data.name = request.name;
data.folderId(request.folderId()); data.folderId = request.folderId;
data.fileCategory(request.fileCategory()); data.fileCategory = request.fileCategory;
data.fileType(request.fileType()); data.fileType = request.fileType;
data.fileStatus(request.fileStatus()); data.fileStatus = request.fileStatus;
data.exerciseId(request.exerciseId()); data.exerciseId = request.exerciseId;
data.phaseId(request.phaseId()); data.phaseId = request.phaseId;
data.isTemplate(request.isTemplate()); data.isTemplate = request.isTemplate;
data.isHidden(request.isHidden()); data.isHidden = request.isHidden;
data.isUsedBy(request.isUsedBy()); data.isUsedBy = request.isUsedBy;
data.usedBy(request.usedBy()); data.usedBy = request.usedBy;
data.properties(request.properties()); data.properties = request.properties;
data.exportFileName(request.exportFileName()); data.exportFileName = request.exportFileName;
data.lastModified(request.lastModified()); data.lastModified = request.lastModified;
data.operatorId(request.operatorId()); data.operatorId = request.operatorId;
return data; return data;
} }
@@ -69,147 +69,147 @@ Core::FunctionReplyObject ObjectFileContent::createObject(const FileContentModif
{ {
m_data = toFileContent(request); m_data = toFileContent(request);
m_data.id(0); m_data.id = 0;
m_data.isUsed(false); m_data.isUsed = false;
Database::FlmFileContent dbData(toDbData(m_data)); Database::FlmFileContent dbData(toDbData(m_data));
//m_content = request.content(); //m_content = request.content();
dbData.content = QByteArray::fromRawData(reinterpret_cast<const char *>(&request.content()[0]), request.content().size()); dbData.content = QByteArray::fromRawData(reinterpret_cast<const char *>(&request.content[0]), request.content.size());
if (!db()->insert(dbData)) if (!db()->insert(dbData))
{ {
QString errText = db()->getLastError().databaseText(); QString errText = db()->getLastError().databaseText();
ERROR_LOG(m_logger) << "Error inserting FileContent into database: " << errText; ERROR_LOG(m_logger) << "Error inserting FileContent into database: " << errText;
if (db()->getLastError().nativeErrorCode().contains(QStringLiteral("23505"))) if (db()->getLastError().nativeErrorCode().contains(QStringLiteral("23505")))
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting FileContent into database: unique key violation (folder, name, type, status, operator) for file name '%1'")).arg(m_data.name()); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting FileContent into database: unique key violation (folder, name, type, status, operator) for file name '%1'")).arg(QString::fromStdString(m_data.name));
else else
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting FileContent with name %1 into database: %2")).arg(m_data.name()).arg(errText); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting FileContent with name %1 into database: %2")).arg(QString::fromStdString(m_data.name)).arg(errText);
} }
m_data.id(dbData.id); m_data.id = dbData.id;
DEBUG_LOG(m_logger) << "New FileContent Id: " << m_data.id(); DEBUG_LOG(m_logger) << "New FileContent Id: " << m_data.id;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFileContent::updateObject(const FileContentModifyRequest &request) Core::FunctionReplyObject ObjectFileContent::updateObject(const FileContentModifyRequest &request)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Object not valid/blocked")); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Object not valid/blocked"));
m_data = toFileContent(request); m_data = toFileContent(request);
Database::FlmFileContent dbData(toDbData(m_data)); Database::FlmFileContent dbData(toDbData(m_data));
//m_content = request.content(); //m_content = request.content();
DEBUG_LOG(m_logger) << "Content size: " << request.content().size(); DEBUG_LOG(m_logger) << "Content size: " << request.content.size();
dbData.content = QByteArray::fromRawData(reinterpret_cast<const char *>(&request.content()[0]), request.content().size()); dbData.content = QByteArray::fromRawData(reinterpret_cast<const char *>(&request.content[0]), request.content.size());
if (!db()->update(dbData)) if (!db()->update(dbData))
{ {
QString errText = db()->getLastError().databaseText(); QString errText = db()->getLastError().databaseText();
ERROR_LOG(m_logger) << "Error updating FileContent into database: " << errText; ERROR_LOG(m_logger) << "Error updating FileContent into database: " << errText;
if (db()->getLastError().nativeErrorCode().contains(QStringLiteral("23505"))) if (db()->getLastError().nativeErrorCode().contains(QStringLiteral("23505")))
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Error updating FileContent into database: unique key violation (folder, name, type, status, operator) for file name '%1'")).arg(m_data.name()); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Error updating FileContent into database: unique key violation (folder, name, type, status, operator) for file name '%1'")).arg(QString::fromStdString(m_data.name));
else else
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Error updating FileContent with name %1 into database: %2")).arg(m_data.name()).arg(errText); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Error updating FileContent with name %1 into database: %2")).arg(QString::fromStdString(m_data.name)).arg(errText);
} }
DEBUG_LOG(m_logger) << "Data changed for FileContent Id: " << m_data.id(); DEBUG_LOG(m_logger) << "Data changed for FileContent Id: " << m_data.id;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFileContent::setUsed(bool isUsed) Core::FunctionReplyObject ObjectFileContent::setUsed(bool isUsed)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Trying to update an already removed FileContent object")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed FileContent object"));
m_data.isUsed(isUsed); m_data.isUsed = isUsed;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFileContent::changeStatus(const FileContentChangeStatusRequest &request) Core::FunctionReplyObject ObjectFileContent::changeStatus(const FileContentChangeStatusRequest &request)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Trying to update an already removed FileContent object")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed FileContent object"));
m_data.id(request.id()); m_data.id = request.id;
m_data.fileStatus(request.fileStatus()); m_data.fileStatus = request.fileStatus;
m_data.operatorId(request.operatorId()); m_data.operatorId = request.operatorId;
m_data.lastModified(request.lastModified()); m_data.lastModified = request.lastModified;
if (!db()->updateStatus(m_data.id(), m_data.fileStatus(), m_data.operatorId())) if (!db()->updateStatus(m_data.id, m_data.fileStatus, m_data.operatorId))
{ {
QString errText = db()->getLastError().databaseText(); QString errText = db()->getLastError().databaseText();
ERROR_LOG(m_logger) << "Error updating FileContent status into database: " << errText; ERROR_LOG(m_logger) << "Error updating FileContent status into database: " << errText;
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Error updating FileContent status into database: %1")).arg(errText); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Error updating FileContent status into database: %1")).arg(errText);
} }
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFileContent::setUsedBy(const FileContentSetUsedRequest &request) Core::FunctionReplyObject ObjectFileContent::setUsedBy(const FileContentSetUsedRequest &request)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Trying to update an already removed FileContent object")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed FileContent object"));
m_data.id(request.id()); m_data.id = request.id;
m_data.isUsedBy(request.isUsedBy()); m_data.isUsedBy = request.isUsedBy;
m_data.usedBy(request.usedBy()); m_data.usedBy = request.usedBy;
m_data.operatorId(request.operatorId()); m_data.operatorId = request.operatorId;
m_data.lastModified(request.lastModified()); m_data.lastModified = request.lastModified;
if (!db()->setUsedBy(m_data.id(), m_data.isUsedBy(), m_data.usedBy(), m_data.operatorId())) if (!db()->setUsedBy(m_data.id, m_data.isUsedBy, m_data.usedBy, m_data.operatorId))
{ {
QString errText = db()->getLastError().databaseText(); QString errText = db()->getLastError().databaseText();
ERROR_LOG(m_logger) << "Error updating FileContent used status into database: " << errText; ERROR_LOG(m_logger) << "Error updating FileContent used status into database: " << errText;
return Core::FunctionReplyObject(request.id(), tr_lts("dds", "Error updating FileContent used status into database: %1")).arg(errText); return Core::FunctionReplyObject(request.id, tr_lts("dds", "Error updating FileContent used status into database: %1")).arg(errText);
} }
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFileContent::removeObject() Core::FunctionReplyObject ObjectFileContent::removeObject()
{ {
if (isUsed()) if (isUsed())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "FileContent still in use")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "FileContent still in use"));
if (!db()->removeFlmFileContent(m_data.id())) if (!db()->removeFlmFileContent(m_data.id))
{ {
QString errText = db()->getLastError().databaseText(); QString errText = db()->getLastError().databaseText();
ERROR_LOG(m_logger) << "FileContent with id " << m_data.id() << " can not be removed from database: " << errText; ERROR_LOG(m_logger) << "FileContent with id " << m_data.id << " can not be removed from database: " << errText;
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "FileContent with id %1 can not be removed from database: %2")).arg(m_data.id()).arg(errText); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "FileContent with id %1 can not be removed from database: %2")).arg(m_data.id).arg(errText);
} }
if (!dts()->removeFileContentByKey(m_data.id())) if (!dts()->removeFileContentByKey(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "FileContent %1 can not be taken from DDS")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "FileContent %1 can not be taken from DDS")).arg(m_data.id);
//m_content.clear(); //m_content.clear();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
void ObjectFileContent::onPublishData() void ObjectFileContent::onPublishData()
{ {
INFO_LOG(m_logger) << "Publish FileContent-data to dds (" << m_data.id() << ") ..."; INFO_LOG(m_logger) << "Publish FileContent-data to dds (" << m_data.id << ") ...";
if (!dts()->publish(m_data)) if (!dts()->publish(m_data))
ERROR_LOG(m_logger) << "Error publishing FileContent-data to dds"; ERROR_LOG(m_logger) << "Error publishing FileContent-data to dds";
@@ -224,25 +224,25 @@ Database::FlmFileContent ObjectFileContent::toDbData(const FileContent &ddsData)
{ {
Database::FlmFileContent dbData; Database::FlmFileContent dbData;
dbData.id = ddsData.id(); dbData.id = ddsData.id;
dbData.name = QString::fromStdString(ddsData.name()); dbData.name = QString::fromStdString(ddsData.name);
dbData.isTemplate = ddsData.isTemplate(); dbData.isTemplate = ddsData.isTemplate;
dbData.isHidden = ddsData.isHidden(); dbData.isHidden = ddsData.isHidden;
dbData.fileCategoryId = ddsData.fileCategory(); dbData.fileCategoryId = ddsData.fileCategory;
dbData.folderId = ddsData.folderId(); dbData.folderId = ddsData.folderId;
dbData.fileTypeId = ddsData.fileType(); dbData.fileTypeId = ddsData.fileType;
dbData.operatorId = ddsData.operatorId(); dbData.operatorId = ddsData.operatorId;
if (ddsData.exerciseId().is_set()) if (ddsData.exerciseId.is_set())
{ {
dbData.exerciseId = ddsData.exerciseId().get(); dbData.exerciseId = ddsData.exerciseId.get();
if (ddsData.phaseId().is_set()) if (ddsData.phaseId.is_set())
dbData.phaseId = ddsData.phaseId().get(); dbData.phaseId = ddsData.phaseId.get();
} }
dbData.fileStatusId = ddsData.fileStatus(); dbData.fileStatusId = ddsData.fileStatus;
dbData.isUsedBy = ddsData.isUsedBy(); dbData.isUsedBy = ddsData.isUsedBy;
dbData.usedBy = ddsData.usedBy(); dbData.usedBy = ddsData.usedBy;
dbData.properties = QString::fromStdString(ddsData.properties()); dbData.properties = QString::fromStdString(ddsData.properties);
dbData.lastModified = ddsData.lastModified(); dbData.lastModified = ddsData.lastModified;
return dbData; return dbData;
} }
@@ -32,10 +32,10 @@ public:
Core::FunctionReplyObject setUsedBy(const FileContentSetUsedRequest &request); Core::FunctionReplyObject setUsedBy(const FileContentSetUsedRequest &request);
Core::FunctionReplyObject removeObject(); Core::FunctionReplyObject removeObject();
qint32 getId() const { return m_data.id(); } qint32 getId() const { return m_data.id; }
qint32 getFolderId() const { return m_data.folderId(); } qint32 getFolderId() const { return m_data.folderId; }
const FileContent &getData() const { return m_data; } const FileContent &getData() const { return m_data; }
QString getName() const { return QString::fromStdString(m_data.name()); } QString getName() const { return QString::fromStdString(m_data.name); }
// const std::vector<uint8_t> &getContent() const { return m_content; } // const std::vector<uint8_t> &getContent() const { return m_content; }
bool isValid() const; bool isValid() const;
@@ -43,7 +43,7 @@ public:
bool isHidden() const; bool isHidden() const;
Core::FunctionReplyObject setUsed(bool isUsed); Core::FunctionReplyObject setUsed(bool isUsed);
void setExportFileName(const std::string &fileName) { m_data.exportFileName().set(fileName); } void setExportFileName(const std::string &fileName) { m_data.exportFileName = fileName; }
// void setContent(std::vector<uint8_t> &&content) { m_content = std::move(content); } // void setContent(std::vector<uint8_t> &&content) { m_content = std::move(content); }
// convert methods // convert methods
@@ -23,21 +23,21 @@ ObjectFileTypeInfo::~ObjectFileTypeInfo()
bool ObjectFileTypeInfo::isValid() const bool ObjectFileTypeInfo::isValid() const
{ {
return m_data.id() > 0; return m_data.id > 0;
} }
bool ObjectFileTypeInfo::isUsed() const bool ObjectFileTypeInfo::isUsed() const
{ {
return m_data.isUsed(); return m_data.isUsed;
} }
Core::FunctionReplyObject ObjectFileTypeInfo::createObject(const FileTypeInfo &data) Core::FunctionReplyObject ObjectFileTypeInfo::createObject(const FileTypeInfo &data)
{ {
m_data = data; m_data = data;
if (m_data.id() <= 0) if (m_data.id <= 0)
{ {
m_data.isUsed(false); m_data.isUsed = false;
Database::FlmFileTypeInfo dbData; Database::FlmFileTypeInfo dbData;
dbData = toDbData(data); dbData = toDbData(data);
@@ -45,63 +45,63 @@ Core::FunctionReplyObject ObjectFileTypeInfo::createObject(const FileTypeInfo &d
if (!db()->insert(dbData)) if (!db()->insert(dbData))
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting FileTypeInfo-data into database")); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting FileTypeInfo-data into database"));
m_data.id(dbData.id); m_data.id = dbData.id;
DEBUG_LOG(m_logger) << "New FileTypeInfo Id: " << m_data.id(); DEBUG_LOG(m_logger) << "New FileTypeInfo Id: " << m_data.id;
} }
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFileTypeInfo::updateObject(const FileTypeInfo &data) Core::FunctionReplyObject ObjectFileTypeInfo::updateObject(const FileTypeInfo &data)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Object not valid/blocked")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Object not valid/blocked"));
if (!db()->update(toDbData(data))) if (!db()->update(toDbData(data)))
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating FileTypeInfo-data into database")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating FileTypeInfo-data into database"));
m_data = data; m_data = data;
DEBUG_LOG(m_logger) << "Data changed for FileTypeInfo Id: " << m_data.id(); DEBUG_LOG(m_logger) << "Data changed for FileTypeInfo Id: " << m_data.id;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFileTypeInfo::setUsed(bool isUsed) Core::FunctionReplyObject ObjectFileTypeInfo::setUsed(bool isUsed)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Trying to update an already removed FileTypeInfo object")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed FileTypeInfo object"));
m_data.isUsed(isUsed); m_data.isUsed = isUsed;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFileTypeInfo::removeObject() Core::FunctionReplyObject ObjectFileTypeInfo::removeObject()
{ {
if (isUsed()) if (isUsed())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "FileTypeInfo still in use")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "FileTypeInfo still in use"));
if (!db()->removeFlmFileTypeInfo(m_data.id())) if (!db()->removeFlmFileTypeInfo(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "FileTypeInfo %1 can not be removed")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "FileTypeInfo %1 can not be removed")).arg(m_data.id);
if (!dts()->removeFileTypeInfoByKey(m_data.id())) if (!dts()->removeFileTypeInfoByKey(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "FileTypeInfo %1 can not be taken from DDS")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "FileTypeInfo %1 can not be taken from DDS")).arg(m_data.id);
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
void ObjectFileTypeInfo::onPublishData() void ObjectFileTypeInfo::onPublishData()
{ {
INFO_LOG(m_logger) << "Publish FileTypeInfo-data to dds (" << m_data.id() << ") ..."; INFO_LOG(m_logger) << "Publish FileTypeInfo-data to dds (" << m_data.id << ") ...";
if (!dts()->publish(m_data)) if (!dts()->publish(m_data))
ERROR_LOG(m_logger) << "Error publishing FileTypeInfo-data to dds"; ERROR_LOG(m_logger) << "Error publishing FileTypeInfo-data to dds";
@@ -116,9 +116,9 @@ Database::FlmFileTypeInfo ObjectFileTypeInfo::toDbData(const FileTypeInfo &ddsDa
{ {
Database::FlmFileTypeInfo dbData; Database::FlmFileTypeInfo dbData;
dbData.id = ddsData.id(); dbData.id = ddsData.id;
dbData.description = QString::fromStdString(ddsData.description()); dbData.description = QString::fromStdString(ddsData.description);
dbData.extension = QString::fromStdString(ddsData.extension()); dbData.extension = QString::fromStdString(ddsData.extension);
return dbData; return dbData;
} }
@@ -29,8 +29,8 @@ public:
Core::FunctionReplyObject updateObject(const FileTypeInfo &data); Core::FunctionReplyObject updateObject(const FileTypeInfo &data);
Core::FunctionReplyObject removeObject(); Core::FunctionReplyObject removeObject();
qint32 getId() const { return m_data.id(); } qint32 getId() const { return m_data.id; }
QString getExtension() const { return QString::fromStdString(m_data.extension()); } QString getExtension() const { return QString::fromStdString(m_data.extension); }
bool isValid() const; bool isValid() const;
bool isUsed() const; bool isUsed() const;
@@ -25,21 +25,21 @@ ObjectFolder::~ObjectFolder()
bool ObjectFolder::isValid() const bool ObjectFolder::isValid() const
{ {
return m_data.id() > 0; return m_data.id > 0;
} }
bool ObjectFolder::isUsed() const bool ObjectFolder::isUsed() const
{ {
return m_data.isUsed(); return m_data.isUsed;
} }
Core::FunctionReplyObject ObjectFolder::createObject(const Folder &data) Core::FunctionReplyObject ObjectFolder::createObject(const Folder &data)
{ {
m_data = data; m_data = data;
if (m_data.id() <= 0) if (m_data.id <= 0)
{ {
m_data.isUsed(false); m_data.isUsed = false;
Database::FlmFolder dbData; Database::FlmFolder dbData;
dbData = toDbData(data); dbData = toDbData(data);
@@ -49,26 +49,26 @@ Core::FunctionReplyObject ObjectFolder::createObject(const Folder &data)
QString errText = db()->getLastError().databaseText(); QString errText = db()->getLastError().databaseText();
ERROR_LOG(m_logger) << "Error inserting Folder into database: " << errText; ERROR_LOG(m_logger) << "Error inserting Folder into database: " << errText;
if (db()->getLastError().nativeErrorCode().contains(QStringLiteral("23505"))) if (db()->getLastError().nativeErrorCode().contains(QStringLiteral("23505")))
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Folder into database: unique key violation inserting folder '%1'")).arg(m_data.name()); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Folder into database: unique key violation inserting folder '%1'")).arg(QString::fromStdString(m_data.name));
if (db()->getLastError().nativeErrorCode().contains(QStringLiteral("23503"))) if (db()->getLastError().nativeErrorCode().contains(QStringLiteral("23503")))
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Folder into database: foreign key violation inserting folder '%1'")).arg(m_data.name()); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Folder into database: foreign key violation inserting folder '%1'")).arg(QString::fromStdString(m_data.name));
return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Folder into database: %1")).arg(errText); return Core::FunctionReplyObject(0, tr_lts("dds", "Error inserting Folder into database: %1")).arg(errText);
} }
m_data.id(dbData.id); m_data.id = dbData.id;
DEBUG_LOG(m_logger) << "New Folder Id: " << m_data.id(); DEBUG_LOG(m_logger) << "New Folder Id: " << m_data.id;
} }
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFolder::updateObject(const Folder &data) Core::FunctionReplyObject ObjectFolder::updateObject(const Folder &data)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Object not valid/blocked")); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Object not valid/blocked"));
Database::FlmFolder dbData(toDbData(data)); Database::FlmFolder dbData(toDbData(data));
@@ -76,52 +76,52 @@ Core::FunctionReplyObject ObjectFolder::updateObject(const Folder &data)
{ {
QString errText = db()->getLastError().databaseText(); QString errText = db()->getLastError().databaseText();
ERROR_LOG(m_logger) << "Error updating Folder into database: " << errText; ERROR_LOG(m_logger) << "Error updating Folder into database: " << errText;
return Core::FunctionReplyObject(data.id(), tr_lts("dds", "Error updating Folder into database: %1")).arg(errText); return Core::FunctionReplyObject(data.id, tr_lts("dds", "Error updating Folder into database: %1")).arg(errText);
} }
m_data = data; m_data = data;
DEBUG_LOG(m_logger) << "Data changed for Folder Id: " << m_data.id(); DEBUG_LOG(m_logger) << "Data changed for Folder Id: " << m_data.id;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFolder::setUsed(bool isUsed) Core::FunctionReplyObject ObjectFolder::setUsed(bool isUsed)
{ {
if (!isValid()) if (!isValid())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Trying to update an already removed Folder object")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Trying to update an already removed Folder object"));
m_data.isUsed(isUsed); m_data.isUsed = isUsed;
// Publish Data via DTS // Publish Data via DTS
onPublishData(); onPublishData();
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
Core::FunctionReplyObject ObjectFolder::removeObject() Core::FunctionReplyObject ObjectFolder::removeObject()
{ {
if (isUsed()) if (isUsed())
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Folder still in use")); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Folder still in use"));
if (!db()->removeFlmFolder(m_data.id())) if (!db()->removeFlmFolder(m_data.id))
{ {
QString errText = db()->getLastError().databaseText(); QString errText = db()->getLastError().databaseText();
ERROR_LOG(m_logger) << "Folder with id " << m_data.id() << " can not be removed from database: " << errText; ERROR_LOG(m_logger) << "Folder with id " << m_data.id << " can not be removed from database: " << errText;
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Folder with id %1 can not be removed from database: %2")).arg(m_data.id()).arg(errText); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Folder with id %1 can not be removed from database: %2")).arg(m_data.id).arg(errText);
} }
if (!dts()->removeFolderByKey(m_data.id())) if (!dts()->removeFolderByKey(m_data.id))
return Core::FunctionReplyObject(m_data.id(), tr_lts("dds", "Folder with id %1 can not be taken from DDS")).arg(m_data.id()); return Core::FunctionReplyObject(m_data.id, tr_lts("dds", "Folder with id %1 can not be taken from DDS")).arg(m_data.id);
return Core::FunctionReplyObject(m_data.id()); return Core::FunctionReplyObject(m_data.id);
} }
void ObjectFolder::onPublishData() void ObjectFolder::onPublishData()
{ {
INFO_LOG(m_logger) << "Publish Folder-data to dds (" << m_data.id() << ") ..."; INFO_LOG(m_logger) << "Publish Folder-data to dds (" << m_data.id << ") ...";
if (!dts()->publish(m_data)) if (!dts()->publish(m_data))
ERROR_LOG(m_logger) << "Error publishing Folder-data to dds"; ERROR_LOG(m_logger) << "Error publishing Folder-data to dds";
@@ -136,14 +136,14 @@ Database::FlmFolder ObjectFolder::toDbData(const Folder &ddsData)
{ {
Database::FlmFolder dbData; Database::FlmFolder dbData;
dbData.id = ddsData.id(); dbData.id = ddsData.id;
dbData.name = QString::fromStdString(ddsData.name()); dbData.name = QString::fromStdString(ddsData.name);
dbData.path = LtsUtils::IntArray(ddsData.path()); dbData.path = LtsUtils::IntArray(ddsData.path);
dbData.isEditable = ddsData.isEditable(); dbData.isEditable = ddsData.isEditable;
dbData.isHidden = ddsData.isHidden(); dbData.isHidden = ddsData.isHidden;
dbData.parentId = ddsData.parentId(); dbData.parentId = ddsData.parentId;
dbData.operatorId = ddsData.operatorId(); dbData.operatorId = ddsData.operatorId;
dbData.lastModified = ddsData.lastModified(); dbData.lastModified = ddsData.lastModified;
return dbData; return dbData;
} }
@@ -29,20 +29,20 @@ public:
Core::FunctionReplyObject updateObject(const Folder &data); Core::FunctionReplyObject updateObject(const Folder &data);
Core::FunctionReplyObject removeObject(); Core::FunctionReplyObject removeObject();
qint32 getId() const { return m_data.id(); } qint32 getId() const { return m_data.id; }
Folder getData() const { return m_data; } Folder getData() const { return m_data; }
QString getName() const { return QString::fromStdString(m_data.name()); } QString getName() const { return QString::fromStdString(m_data.name); }
std::vector<int32_t> getPath() const std::vector<int32_t> getPath() const
{ {
return m_data.path(); return m_data.path;
} }
qint32 getParentId() const qint32 getParentId() const
{ {
return m_data.path().size() > 1 ? m_data.path().at(m_data.path().size() - 2) : 0; return m_data.path.size() > 1 ? m_data.path.at(m_data.path.size() - 2) : 0;
} }
bool pathContains(const int32_t &val) const bool pathContains(const int32_t &val) const
{ {
for (auto i : m_data.path()) for (auto i : m_data.path)
if (i == val) return true; if (i == val) return true;
return false; return false;
} }