mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 09:40:49 +02:00
SQL type based command move to DatabaseTable
This commit is contained in:
parent
16fe2db973
commit
b92095a459
30
readme.md
30
readme.md
@ -2,3 +2,33 @@
|
||||
|
||||
[](https://gitlab.com/spaceti-app/integrations/common/server-sdk/commits/master)
|
||||
[](https://gitlab.com/spaceti-app/integrations/common/server-sdk/commits/master)
|
||||
|
||||
|
||||
## Examples
|
||||
|
||||
### How to use predefined classes
|
||||
|
||||
#### DatabaseTable, RequestMangager
|
||||
|
||||
```cpp
|
||||
class LoginTable : public serversdk::DatabaseTable {
|
||||
Q_OBJECT
|
||||
TABLE_PROPERTY(QString, username, set_username, "");
|
||||
TABLE_PROPERTY(QString, password, set_password, "")
|
||||
};
|
||||
|
||||
serversdk::RequestManager reqMan;
|
||||
reqMan.setIgnoreSsl(true);
|
||||
|
||||
auto loginRequest = std::make_shared<serversdk::Request>("POST", "https://192.168.1.3:8443/AaaManager/authSession", login->jsonData());
|
||||
|
||||
// Set basic authorization
|
||||
loginRequest->setUserName(login->username());
|
||||
loginRequest->setPassword(login->password());
|
||||
|
||||
reqMan.processRequest(loginRequest);
|
||||
|
||||
connect(loginRequest.get(), &serversdk::Request::finished, [=](){
|
||||
qDebug() << "Request is finished";
|
||||
});
|
||||
```
|
||||
|
||||
@ -86,7 +86,53 @@ bool DatabaseTable::fromJson(const QByteArray &data)
|
||||
return res;
|
||||
}
|
||||
|
||||
QString DatabaseTable::textSQLIteType(QVariant::Type type) const
|
||||
{
|
||||
switch (type) {
|
||||
case QVariant::Int:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
case QVariant::Uuid:
|
||||
return QStringLiteral("TEXT");
|
||||
break;
|
||||
case QVariant::String:
|
||||
return QStringLiteral("TEXT");
|
||||
break;
|
||||
case QVariant::DateTime:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
case QVariant::Bool:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
default:
|
||||
return QString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
QString DatabaseTable::textPostgresType(QVariant::Type type) const
|
||||
{
|
||||
switch (type) {
|
||||
case QVariant::Int:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
case QVariant::Uuid:
|
||||
return QStringLiteral("TEXT");
|
||||
break;
|
||||
case QVariant::String:
|
||||
return QStringLiteral("TEXT");
|
||||
break;
|
||||
case QVariant::DateTime:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
case QVariant::Bool:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
default:
|
||||
return QString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} // namespace serversdk
|
||||
|
||||
@ -117,6 +117,21 @@ public:
|
||||
* @return List of objects
|
||||
*/
|
||||
static QList<std::shared_ptr<DatabaseTable>> fromListVariantMap(const QList<QVariantMap> &listMap);
|
||||
|
||||
/**
|
||||
* @brief Convert QVariant type to SQL type
|
||||
* @param QVariant type ( QString, int, QDateTime )
|
||||
* @return text form of database type ( INTEGER, TEXT )
|
||||
*/
|
||||
virtual QString textSQLIteType(QVariant::Type type) const;
|
||||
|
||||
/**
|
||||
* @brief Convert QVariant type to SQL type
|
||||
* @param QVariant type ( QString, int, QDateTime )
|
||||
* @return text form of database type ( INTEGER, TEXT )
|
||||
*/
|
||||
virtual QString textPostgresType(QVariant::Type type) const;
|
||||
|
||||
};
|
||||
|
||||
} // namespace serversdk
|
||||
|
||||
@ -64,9 +64,9 @@ QString DatabaseUtils::createTableText(const DatabaseTable *table, const QString
|
||||
|
||||
// Getting correct type based on QVariant
|
||||
if (sqlType() == "SQLITE") {
|
||||
textType = this->textSQLIteType(type);
|
||||
textType = table->textSQLIteType(type);
|
||||
} else if (sqlType() == "PSQL") {
|
||||
textType = this->textSQLIteType(type);
|
||||
textType = table->textSQLIteType(type);
|
||||
//return QString();
|
||||
} else {
|
||||
qCDebug(sdkdb) << "Implemented only for SQLITE";
|
||||
@ -168,54 +168,5 @@ void DatabaseUtils::setSqlType(const QString &sqlType)
|
||||
}
|
||||
|
||||
|
||||
QString DatabaseUtils::textSQLIteType(QVariant::Type type) const
|
||||
{
|
||||
switch (type) {
|
||||
case QVariant::Int:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
case QVariant::Uuid:
|
||||
return QStringLiteral("TEXT");
|
||||
break;
|
||||
case QVariant::String:
|
||||
return QStringLiteral("TEXT");
|
||||
break;
|
||||
case QVariant::DateTime:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
case QVariant::Bool:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
default:
|
||||
return QString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
QString DatabaseUtils::textPostgresType(QVariant::Type type) const
|
||||
{
|
||||
switch (type) {
|
||||
case QVariant::Int:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
case QVariant::Uuid:
|
||||
return QStringLiteral("TEXT");
|
||||
break;
|
||||
case QVariant::String:
|
||||
return QStringLiteral("TEXT");
|
||||
break;
|
||||
case QVariant::DateTime:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
case QVariant::Bool:
|
||||
return QStringLiteral("INTEGER");
|
||||
break;
|
||||
default:
|
||||
return QString();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace serversdk
|
||||
|
||||
@ -30,9 +30,6 @@ public:
|
||||
private:
|
||||
QString createTableText(const DatabaseTable *table, const QString table_name) const;
|
||||
|
||||
|
||||
QString textSQLIteType(QVariant::Type type) const;
|
||||
QString textPostgresType(QVariant::Type type) const;
|
||||
private:
|
||||
DatabaseManager *mDatabaseManager = nullptr;
|
||||
QString mSqlType;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user