fix deleteobject

This commit is contained in:
Andrei Yankovich 2021-03-25 18:30:30 +03:00
parent 14f0ef6488
commit 488fb08168
5 changed files with 29 additions and 23 deletions

View File

@ -131,10 +131,12 @@ void DataBaseNode::initDefaultDbObjects(ISqlDBCache *cache,
_db = cache;
connect(_db, &SqlDBCache::sigItemChanged,
this, &DataBaseNode::handleObjectChanged);
this, &DataBaseNode::handleObjectChanged,
Qt::DirectConnection);
connect(_db, &SqlDBCache::sigItemDeleted,
this, &DataBaseNode::handleObjectDeleted);
this, &DataBaseNode::handleObjectDeleted,
Qt::DirectConnection);
}

View File

@ -103,5 +103,6 @@ qint64 qHash(const DbAddress& address);
}
Q_DECLARE_METATYPE(QH::DbAddress)
#endif // DBADDRESS_H

View File

@ -113,6 +113,7 @@ ISqlDBCache::ISqlDBCache(qint64 updateInterval, SqlDBCasheWriteMode mode) {
lastUpdateTime = QDateTime::currentMSecsSinceEpoch();
this->updateInterval = updateInterval;
setMode(mode);
}
ISqlDBCache::~ISqlDBCache() {

View File

@ -33,7 +33,7 @@ void DeleteObject::setSignToken(const AccessToken &token) {
}
QString DeleteObject::primaryKey() const {
return "";
return "id";
}
QDataStream &DeleteObject::fromStream(QDataStream &stream) {

View File

@ -25,7 +25,7 @@ SingleServer::SingleServer()
}
ErrorCodes::Code SingleServer::registerNewUser(PKG::UserMember user,
const AbstractNodeInfo *info) {
const AbstractNodeInfo *info) {
if (!db()) {
return ErrorCodes::InternalError;
}
@ -160,19 +160,19 @@ ParserResult SingleServer::parsePackage(const QSharedPointer<PKG::AbstractData>
}
if (H_16<QH::PKG::AuthRequest>() == pkg->cmd()) {
auto obj = pkg.staticCast<QH::PKG::AuthRequest>();
auto obj = pkg.staticCast<QH::PKG::AuthRequest>();
if (!obj->isValid()) {
prepareAndSendBadRequest(sender->networkAddress(), pkgHeader,
ErrorCodes::InvalidRequest, REQUEST_ERROR);
return ParserResult::Error;
}
if (!obj->isValid()) {
prepareAndSendBadRequest(sender->networkAddress(), pkgHeader,
ErrorCodes::InvalidRequest, REQUEST_ERROR);
return ParserResult::Error;
}
if (!workWithUserRequest(obj, pkgHeader, sender)) {
return QH::ParserResult::Error;
}
if (!workWithUserRequest(obj, pkgHeader, sender)) {
return QH::ParserResult::Error;
}
return QH::ParserResult::Processed;
return QH::ParserResult::Processed;
}
@ -193,17 +193,19 @@ ParserResult SingleServer::parsePackage(const QSharedPointer<PKG::AbstractData>
if (H_16<PKG::DeleteObject>() == pkg->cmd()) {
auto obj = pkg.staticCast<PKG::DeleteObject>();
auto obj = pkg.staticCast<PKG::DeleteObject>();
auto requesterId = getSender(sender, obj.data());
if (deleteObject(requesterId, obj) == DBOperationResult::Forbidden) {
badRequest(sender->networkAddress(), pkgHeader, {
ErrorCodes::OperatioForbiden,
"Permision denied"
});
return ParserResult::Error;
auto requesterId = getSender(sender, obj.data());
if (deleteObject(requesterId, obj) == DBOperationResult::Forbidden) {
badRequest(sender->networkAddress(), pkgHeader, {
ErrorCodes::OperatioForbiden,
"Permision denied"
});
return ParserResult::Error;
}
}
return QH::ParserResult::Processed;
}
return QH::ParserResult::NotProcessed;