mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 11:50:42 +02:00
Merge branch 'refs/heads/master' into possible-change
# Conflicts: # src/serversdk/databaseutils.h
This commit is contained in:
commit
4dfd4227cb
@ -64,6 +64,7 @@ bool DatabaseTable::fromVariantMap(const QVariantMap &variantMap)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QList<std::shared_ptr<DatabaseTable> > DatabaseTable::fromListVariantMap(const QList<QVariantMap> &listMap)
|
QList<std::shared_ptr<DatabaseTable> > DatabaseTable::fromListVariantMap(const QList<QVariantMap> &listMap)
|
||||||
{
|
{
|
||||||
QList<std::shared_ptr<DatabaseTable>> list;
|
QList<std::shared_ptr<DatabaseTable>> list;
|
||||||
@ -134,5 +135,4 @@ QString DatabaseTable::textPostgresType(QVariant::Type type) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace serversdk
|
} // namespace serversdk
|
||||||
|
|||||||
@ -59,8 +59,7 @@ namespace serversdk {
|
|||||||
|
|
||||||
// SELECT FROM TABLE
|
// SELECT FROM TABLE
|
||||||
QSqlQuery selectSQL = db.execPlainSql("SELECT * FROM names");
|
QSqlQuery selectSQL = db.execPlainSql("SELECT * FROM names");
|
||||||
auto listVariantMap = utils.listMapFromQuery(selectSQL);
|
auto list = utils.tableFromQuery<Names>(selectSQL);
|
||||||
auto list = Names::fromListVariantMap(listVariantMap);
|
|
||||||
}
|
}
|
||||||
*
|
*
|
||||||
* @endcode
|
* @endcode
|
||||||
@ -156,5 +155,6 @@ public:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
} // namespace serversdk
|
} // namespace serversdk
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,6 @@
|
|||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
|
|
||||||
#include <QMetaProperty>
|
#include <QMetaProperty>
|
||||||
#include <QSqlRecord>
|
|
||||||
|
|
||||||
|
|
||||||
namespace serversdk {
|
namespace serversdk {
|
||||||
@ -174,20 +173,6 @@ QSqlQuery DatabaseUtils::updateTable(const DatabaseTable *table, const QString t
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QList<QMap<QString, QVariant>> DatabaseUtils::listMapFromQuery(QSqlQuery query) const
|
|
||||||
{
|
|
||||||
QList<QMap<QString, QVariant>> list;
|
|
||||||
while (query.next()) {
|
|
||||||
auto rec = query.record();
|
|
||||||
int total = rec.count();
|
|
||||||
QMap<QString, QVariant> map;
|
|
||||||
for (int column = 0; column < total; ++column) {
|
|
||||||
map.insert(rec.fieldName(column), query.value(column));
|
|
||||||
}
|
|
||||||
list << map;
|
|
||||||
}
|
|
||||||
return list;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString DatabaseUtils::sqlType() const
|
QString DatabaseUtils::sqlType() const
|
||||||
{
|
{
|
||||||
|
|||||||
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
#include <QSqlQuery>
|
#include <QSqlQuery>
|
||||||
|
#include <QSqlRecord>
|
||||||
|
|
||||||
class DatabaseUtilsTest;
|
class DatabaseUtilsTest;
|
||||||
|
|
||||||
@ -25,7 +26,24 @@ public:
|
|||||||
|
|
||||||
QSqlQuery updateTable(const DatabaseTable *table, const QString table_name) const;
|
QSqlQuery updateTable(const DatabaseTable *table, const QString table_name) const;
|
||||||
|
|
||||||
QList<QMap<QString, QVariant>> listMapFromQuery(QSqlQuery query) const;
|
template <class T>
|
||||||
|
QList<std::shared_ptr<T>> tableFromQuery(QSqlQuery query) const {
|
||||||
|
QList<std::shared_ptr<T>> list;
|
||||||
|
while (query.next()) {
|
||||||
|
auto rec = query.record();
|
||||||
|
int total = rec.count();
|
||||||
|
QMap<QString, QVariant> map;
|
||||||
|
for (int column = 0; column < total; ++column) {
|
||||||
|
map.insert(rec.fieldName(column), query.value(column));
|
||||||
|
}
|
||||||
|
|
||||||
|
auto data = std::make_shared<T>();
|
||||||
|
data->fromVariantMap(map);
|
||||||
|
list << data;
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
QString sqlType() const;
|
QString sqlType() const;
|
||||||
void setSqlType(const QString &sqlType);
|
void setSqlType(const QString &sqlType);
|
||||||
|
|||||||
@ -87,8 +87,7 @@ void PostgresqlTest::createTable_test()
|
|||||||
|
|
||||||
// SELECT FROM TABLE
|
// SELECT FROM TABLE
|
||||||
QSqlQuery selectSQL = db.execPlainSql("SELECT * FROM names");
|
QSqlQuery selectSQL = db.execPlainSql("SELECT * FROM names");
|
||||||
auto listVariantMap = utils.listMapFromQuery(selectSQL);
|
auto list = utils.tableFromQuery<Names>(selectSQL);
|
||||||
auto list = Names::fromListVariantMap(listVariantMap);
|
|
||||||
|
|
||||||
// ENSURE SAME
|
// ENSURE SAME
|
||||||
auto first = list.first();
|
auto first = list.first();
|
||||||
|
|||||||
@ -86,13 +86,14 @@ void SqliteTest::createTable_test()
|
|||||||
|
|
||||||
// SELECT FROM TABLE
|
// SELECT FROM TABLE
|
||||||
QSqlQuery selectSQL = db.execPlainSql("SELECT * FROM names");
|
QSqlQuery selectSQL = db.execPlainSql("SELECT * FROM names");
|
||||||
auto listVariantMap = utils.listMapFromQuery(selectSQL);
|
auto list = utils.tableFromQuery<Names>(selectSQL);
|
||||||
auto list = Names::fromListVariantMap(listVariantMap);
|
|
||||||
|
|
||||||
// ENSURE SAME
|
// ENSURE SAME
|
||||||
auto first = list.first();
|
|
||||||
auto names_tab = std::dynamic_pointer_cast<Names>(first);
|
|
||||||
QCOMPARE(list.count(), 1);
|
QCOMPARE(list.count(), 1);
|
||||||
|
auto first = list.first();
|
||||||
|
QVERIFY(first);
|
||||||
|
auto names_tab = std::dynamic_pointer_cast<Names>(first);
|
||||||
|
QVERIFY(names_tab);
|
||||||
QCOMPARE(names_tab->name(), QStringLiteral("Testname"));
|
QCOMPARE(names_tab->name(), QStringLiteral("Testname"));
|
||||||
|
|
||||||
QCOMPARE(list.first()->jsonData(), names.jsonData());
|
QCOMPARE(list.first()->jsonData(), names.jsonData());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user