нет, я использую паттерн singleton чтобы иметь единственный экземпляр объекта базы данных
там ведь его вообще нет)
void DataHandler::dataHandler(const QJsonObject &object) { QString password = object["password"].toString(); QString username = object["username"].toString(); QString email = object["email"].toString(); QString message = object["message"].toString(); static int saveCode = -1; int get_code = smtp.sendCodeToEmail(email, username); if (saveCode == -1) { saveCode = get_code; } qDebug() << "Save: " << saveCode << '\n'; if (message == "code") { int code = object["submit_code"].toInt(); if (saveCode == code) { auto hashPassword = hash.toHash(password.toStdString()); auto isTrue = Database::getInstance().insertUserData(username, email, QString::fromStdString(hashPassword)); if (isTrue == true) { logger.log(LogLevel::Info, "Success inserted user's data"); emit sendString("success_registration"); } else { logger.log(LogLevel::Info, "Failed to insert user's data"); } } else { QMessageBox msgBox(QMessageBox::Critical, "Error code", "Entered wrong submit code"); msgBox.exec(); emit sendString("badRequest"); } } вот полный код, это слот который вызываетс при инициации сигнала может эта инфа как то поможет решить проблему)
и Database::getInstance() посмотри в дебуге на всякий тоже
QString password = object["password"].toString(); QString username = object["username"].toString(); QString email = object["email"].toString(); QString message = object["message"].toString(); static int saveCode = -1; int get_code = smtp.sendCodeToEmail(email, username); if (saveCode == -1) { saveCode = get_code; } auto hashPassword = hash.toHash(password.toStdString()); Database::getInstance().insertUserData(username, email, QString::fromStdString(hashPassword)); qDebug() << "Save: " << saveCode << '\n'; if (message == "code") { int code = object["submit_code"].toInt(); if (saveCode == code) { auto isTrue = true;/* Database::getInstance().insertUserData(username, email, QString::fromStdString(hashPassword));*/ if (isTrue == true) { logger.log(LogLevel::Info, "Success inserted user's data"); emit sendString("success_registration"); } else { logger.log(LogLevel::Info, "Failed to insert user's data"); } } Вынес функцию вставки за условие, и всё вставилось, странно
ну говорю же, посмотри для начала внимательно, что скажет qDebug() << object; мы же понимаем, что машина - она тупая, делает только то, что сказали ей.
Обсуждают сегодня