forked from ondra/server-sdk
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)
|
||||||
[](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;
|
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
|
} // namespace serversdk
|
||||||
|
|||||||
@ -117,6 +117,21 @@ public:
|
|||||||
* @return List of objects
|
* @return List of objects
|
||||||
*/
|
*/
|
||||||
static QList<std::shared_ptr<DatabaseTable>> fromListVariantMap(const QList<QVariantMap> &listMap);
|
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
|
} // namespace serversdk
|
||||||
|
|||||||
@ -64,9 +64,9 @@ QString DatabaseUtils::createTableText(const DatabaseTable *table, const QString
|
|||||||
|
|
||||||
// Getting correct type based on QVariant
|
// Getting correct type based on QVariant
|
||||||
if (sqlType() == "SQLITE") {
|
if (sqlType() == "SQLITE") {
|
||||||
textType = this->textSQLIteType(type);
|
textType = table->textSQLIteType(type);
|
||||||
} else if (sqlType() == "PSQL") {
|
} else if (sqlType() == "PSQL") {
|
||||||
textType = this->textSQLIteType(type);
|
textType = table->textSQLIteType(type);
|
||||||
//return QString();
|
//return QString();
|
||||||
} else {
|
} else {
|
||||||
qCDebug(sdkdb) << "Implemented only for SQLITE";
|
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
|
} // namespace serversdk
|
||||||
|
|||||||
@ -30,9 +30,6 @@ public:
|
|||||||
private:
|
private:
|
||||||
QString createTableText(const DatabaseTable *table, const QString table_name) const;
|
QString createTableText(const DatabaseTable *table, const QString table_name) const;
|
||||||
|
|
||||||
|
|
||||||
QString textSQLIteType(QVariant::Type type) const;
|
|
||||||
QString textPostgresType(QVariant::Type type) const;
|
|
||||||
private:
|
private:
|
||||||
DatabaseManager *mDatabaseManager = nullptr;
|
DatabaseManager *mDatabaseManager = nullptr;
|
||||||
QString mSqlType;
|
QString mSqlType;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user