Merge branch 'server-sdk' into 'master'

server sdk

See merge request spaceti-app/integrations/acs/colnod-connector!11
This commit is contained in:
Filip Bucek 2019-11-08 10:42:16 +00:00
commit aa79df7aa0
19 changed files with 145 additions and 36 deletions

View File

@ -3,30 +3,75 @@ stages:
- build - build
- test - test
# To clone also submodules
variables:
GIT_SUBMODULE_STRATEGY: recursive
# ######## # ########
# Build # Build
########## ##########
build: # name of task build:
stage: build # in what stage it will run ( 1. build then test etc ) stage: build
tags: # Tags are used to choose correct gitlab-runner tags:
- hw # spaceti-runner server has running runners and one has tag 'hw' - shell
script: # run in bash script:
- mkdir -p build - mkdir -p build
- cd build - cd build
- qmake ../colnod-connector.pro - qmake ../colnod-connector.pro
- make -j8 - make -j4
cache: cache:
paths: paths:
- build/ - build # this path will be cached for next stages
# ######## # ########
# Test # Test
########## ##########
test: # name of task test:
stage: test # in what stage it will run ( 1. build then test etc ) stage: test
tags: # Tags are used to choose correct gitlab-runner tags:
- hw # spaceti-runner server has running runners and one has tag 'hw' - shell
script: # run in bash script:
- cd build - cd build
- make check test - make check test
# memory leak check for unittest
valgrind:
stage: test
tags:
- shell
script:
- cd build
- valgrind make check test
# Quality of code
cppcheck:
stage: test
tags:
- shell
#allow_failure: true # Probably needed to allow failure
script:
- server-sdk/scripts/cppcheck.sh
# Common checks ( Line endings )
lineendings:
stage: test
tags:
- shell
script:
- server-sdk/scripts/check.sh
codecoverage:
stage: test
tags:
- shell
script:
- server-sdk/scripts/codecoverage.sh
coverage: '/^\s+functions..:\s+(\d+\.\d+%).+$/'
doc:
stage: test
tags:
- shell
script:
- server-sdk/scripts/doc.sh clean # 'clean' better clean before generating documentation

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "server-sdk"]
path = server-sdk
url = ../../common/server-sdk

View File

@ -1,5 +1,13 @@
TEMPLATE = subdirs TEMPLATE = subdirs
CONFIG += ordered
SUBDIRS += \ SUBDIRS += \
server-sdk/src/serversdk/serversdk.pro \
src/app \ src/app \
test test
OTHER_FILES += \
doc/* \
.gitignore \
.gitlab-ci.yml \

43
doc/Doxyfile-mcss Normal file
View File

@ -0,0 +1,43 @@
@INCLUDE = ../server-sdk/doc/Doxyfile-init
# Output settings
GENERATE_HTML = NO
GENERATE_XML = YES
GENERATE_LATEX = NO
XML_PROGRAMLISTING = YES
# Project settings
PROJECT_NAME = example-app
INPUT = ../src \
pages \
../readme.md \
FILE_PATTERNS += *.md
USE_MDFILE_AS_MAINPAGE = ../readme.md
OUTPUT_DIRECTORY = ../build/doc/
FULL_PATH_NAMES = NO
# Attributes settings
RECURSIVE = YES
EXTRACT_PRIVATE = YES
EXTRACT_ALL = YES
## m.css internal command -> show undocumented
M_SHOW_UNDOCUMENTED = YES
## Taken from magnum ( Project from authors of m.css )
SHOW_USED_FILES = YES
VERBATIM_HEADERS = NO
AUTOLINK_SUPPORT = YES
ALIASES += \
"m_div{1}=@xmlonly<mcss:div xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:class=\"\1\">@endxmlonly" \
"m_enddiv=@xmlonly</mcss:div>@endxmlonly" \
"m_span{1}=@xmlonly<mcss:span xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:class=\"\1\">@endxmlonly" \
"m_endspan=@xmlonly</mcss:span>@endxmlonly" \
"m_class{1}=@xmlonly<mcss:class xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:class=\"\1\" />@endxmlonly" \
"m_footernavigation=@xmlonly<mcss:footernavigation xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" />@endxmlonly" \
"m_examplenavigation{2}=@xmlonly<mcss:examplenavigation xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:page=\"\1\" mcss:prefix=\"\2\" />@endxmlonly" \
"m_keywords{1}=@xmlonly<mcss:search xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:keywords=\"\1\" />@endxmlonly" \
"m_keyword{3}=@xmlonly<mcss:search xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:keyword=\"\1\" mcss:title=\"\2\" mcss:suffix-length=\"\3\" />@endxmlonly" \
"m_enum_values_as_keywords=@xmlonly<mcss:search xmlns:mcss=\"http://mcss.mosra.cz/doxygen/\" mcss:enum-values-as-keywords=\"true\" />@endxmlonly"

1
doc/pages/mainpage.md Normal file
View File

@ -0,0 +1 @@
# Example app documentation

1
server-sdk Submodule

@ -0,0 +1 @@
Subproject commit b6950b9bfe35d10d4fc65e42f22086796ac85142

View File

@ -1,8 +1,12 @@
TEMPLATE = app TEMPLATE = app
QT += core sql network QT += core sql network
CONFIG += debug console CONFIG += cmdline c++14
CONFIG += ordered
SOURCES += main.cpp SOURCES += main.cpp
include(../colnod/colnod.pri) include(../colnod/colnod.pri)

View File

@ -1,6 +1,8 @@
INCLUDEPATH += $$PWD INCLUDEPATH += $$PWD
#SRC_DIR = $$PWD
message($$PWD) CONFIG += c++14
SOURCES += \ SOURCES += \
$$PWD/databasemanager.cpp \ $$PWD/databasemanager.cpp \
$$PWD/datamanager.cpp \ $$PWD/datamanager.cpp \
@ -22,4 +24,5 @@ HEADERS += \
$$PWD/subject.h \ $$PWD/subject.h \
$$PWD/syncmanager.h \ $$PWD/syncmanager.h \
$$PWD/token.h $$PWD/token.h
message($$SOURCES)
include(../../server-sdk/serversdk.pri)

View File

@ -1,4 +1,6 @@
#include "databasemanager.h" #include "databasemanager.h"
#include "logger.h"
DatabaseManager::DatabaseManager(const QString& host, const QString& dbName, const QString& user, const QString& password, const bool &dryMode) DatabaseManager::DatabaseManager(const QString& host, const QString& dbName, const QString& user, const QString& password, const bool &dryMode)
:dryMode(dryMode) :dryMode(dryMode)

View File

@ -10,7 +10,6 @@
#include "subject.h" #include "subject.h"
#include "token.h" #include "token.h"
#include <QDateTime> #include <QDateTime>
#include "logger.h"
class DatabaseManager : public QObject class DatabaseManager : public QObject

View File

@ -1,16 +1,15 @@
#include "datamanager.h" #include "datamanager.h"
DataManager::DataManager(const bool &dryMode) DataManager::DataManager(const bool &dryMode) :
:dryMode(dryMode) db(std::make_shared<DatabaseManager>("192.168.1.94", "deloitte", "postgres", "34rjkciea12", dryMode)),
dryMode(dryMode)
{ {
db = std::make_shared<DatabaseManager>("192.168.1.94", "deloitte", "postgres", "34rjkciea12", dryMode);
//db = std::make_shared<DatabaseManager>("localhost", "deloitte", "postgres", "34rjkciea12");
if (db->isOpen()){ if (db->isOpen()){
Logger::setDBMan(db); Logger::setDBMan(db);
nextLastSync = db->getNow(); nextLastSync = db->getNow();
lastSync = db->getLastSync(); lastSync = db->getLastSync();
} }
connect(db.get(), &DatabaseManager::error, this, &DataManager::error, Qt::QueuedConnection); connect(db.get(), &DatabaseManager::error, this, &DataManager::error);
} }
// load all tokens from colnod to comparing with working set from DB // load all tokens from colnod to comparing with working set from DB

View File

@ -15,7 +15,7 @@ class DataManager : public QObject
Q_OBJECT Q_OBJECT
public: public:
DataManager(const bool& dryMode = false); explicit DataManager(const bool& dryMode = false);
void fillFullTokensColnod(const QString& jsonResponse); void fillFullTokensColnod(const QString& jsonResponse);

View File

@ -10,6 +10,7 @@
class Entity : public QObject { class Entity : public QObject {
Q_OBJECT Q_OBJECT
public: public:
Entity() = default;
using QObject::QObject; using QObject::QObject;
const QUuid &getId() const; const QUuid &getId() const;

View File

@ -1,8 +1,8 @@
#include "requestmanager.h" #include "requestmanager.h"
RequestManager::RequestManager() RequestManager::RequestManager()
: manager(std::make_unique<QNetworkAccessManager>())
{ {
manager = std::make_unique<QNetworkAccessManager>();
connect(manager.get(), &QNetworkAccessManager::sslErrors, this, &RequestManager::onSSLError); connect(manager.get(), &QNetworkAccessManager::sslErrors, this, &RequestManager::onSSLError);
} }

View File

@ -12,7 +12,7 @@ class Subject : public Entity {
public: public:
using Entity::Entity; using Entity::Entity;
Subject() = default; Subject() = default;
Subject(const QString& name); explicit Subject(const QString& name);
QString getEmail() const; QString getEmail() const;

View File

@ -1,12 +1,12 @@
#include "syncmanager.h" #include "syncmanager.h"
SyncManager::SyncManager(bool dryMode) SyncManager::SyncManager(bool dryMode) :
:dryMode(dryMode) reqMan(std::make_unique<RequestManager>()),
dataMan( std::make_unique<DataManager>(dryMode)),
dryMode(dryMode)
{ {
reqMan = std::make_unique<RequestManager>(); connect(reqMan.get(), &RequestManager::error, this, &SyncManager::error);
dataMan = std::make_unique<DataManager>(dryMode); connect(dataMan.get(), &DataManager::error, this, &SyncManager::error);
connect(reqMan.get(), &RequestManager::error, this, &SyncManager::error, Qt::QueuedConnection);
connect(dataMan.get(), &DataManager::error, this, &SyncManager::error, Qt::QueuedConnection);
} }
void SyncManager::loadDataFromColnod() void SyncManager::loadDataFromColnod()

View File

@ -9,8 +9,7 @@ class SyncManager : public QObject
Q_OBJECT Q_OBJECT
public: public:
explicit SyncManager(bool dryMode = false);
SyncManager(bool dryMode = false);
void syncDataFromColnodToDB(); void syncDataFromColnodToDB();
void syncDataFromDBToColnod(); void syncDataFromDBToColnod();

View File

@ -13,7 +13,7 @@ public:
Token() = default; Token() = default;
Token(const QString& name, QString tokenData, const QString& decription = "mobile"); Token(const QString& name, QString tokenData, const QString& decription = "mobile");
Token(const QString& name); explicit Token(const QString& name);
~Token() override; ~Token() override;
friend bool operator<(const Token &lToken, const Token &rToken){ friend bool operator<(const Token &lToken, const Token &rToken){

View File

@ -10,6 +10,7 @@ SOURCES += \
unittest.cpp unittest.cpp
include(../../src/colnod/colnod.pri) include(../../src/colnod/colnod.pri)
include(../../server-sdk/serversdk.pri)
# Default rules for deployment. # Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin qnx: target.path = /tmp/$${TARGET}/bin