diff --git a/readme.md b/readme.md index 4bcdb7a..d792b1a 100644 --- a/readme.md +++ b/readme.md @@ -2,3 +2,33 @@ [![pipeline status](https://gitlab.com/spaceti-app/integrations/common/server-sdk/badges/master/pipeline.svg)](https://gitlab.com/spaceti-app/integrations/common/server-sdk/commits/master) [![coverage report](https://gitlab.com/spaceti-app/integrations/common/server-sdk/badges/master/coverage.svg)](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("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"; +}); +``` diff --git a/src/serversdk/databasetable.cpp b/src/serversdk/databasetable.cpp index 6eaff3b..294ec51 100644 --- a/src/serversdk/databasetable.cpp +++ b/src/serversdk/databasetable.cpp @@ -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 diff --git a/src/serversdk/databasetable.h b/src/serversdk/databasetable.h index 6095ec9..315d907 100644 --- a/src/serversdk/databasetable.h +++ b/src/serversdk/databasetable.h @@ -117,6 +117,21 @@ public: * @return List of objects */ static QList> fromListVariantMap(const QList &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 diff --git a/src/serversdk/databaseutils.cpp b/src/serversdk/databaseutils.cpp index 42322d4..5de8838 100644 --- a/src/serversdk/databaseutils.cpp +++ b/src/serversdk/databaseutils.cpp @@ -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 diff --git a/src/serversdk/databaseutils.h b/src/serversdk/databaseutils.h index a81fe6f..58572f5 100644 --- a/src/serversdk/databaseutils.h +++ b/src/serversdk/databaseutils.h @@ -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;