Merge branch 'server-sdk' into 'master'

WIP: server sdk

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

View File

@ -3,30 +3,75 @@ stages:
- build
- test
# To clone also submodules
variables:
GIT_SUBMODULE_STRATEGY: recursive
# ########
# Build
##########
build: # name of task
stage: build # in what stage it will run ( 1. build then test etc )
tags: # Tags are used to choose correct gitlab-runner
- hw # spaceti-runner server has running runners and one has tag 'hw'
script: # run in bash
build:
stage: build
tags:
- shell
script:
- mkdir -p build
- cd build
- qmake ../colnod-connector.pro
- make -j8
- make -j4
cache:
paths:
- build/
- build # this path will be cached for next stages
# ########
# Test
##########
test: # name of task
stage: test # in what stage it will run ( 1. build then test etc )
tags: # Tags are used to choose correct gitlab-runner
- hw # spaceti-runner server has running runners and one has tag 'hw'
script: # run in bash
test:
stage: test
tags:
- shell
script:
- cd build
- 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
CONFIG += ordered
SUBDIRS += \
server-sdk/src/serversdk/serversdk.pro \
src/app \
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
QT += core sql network
CONFIG += debug console
CONFIG += cmdline c++14
CONFIG += ordered
SOURCES += main.cpp
include(../colnod/colnod.pri)

View File

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

View File

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

View File

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

View File

@ -1,16 +1,15 @@
#include "datamanager.h"
DataManager::DataManager(const bool &dryMode)
:dryMode(dryMode)
DataManager::DataManager(const bool &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()){
Logger::setDBMan(db);
nextLastSync = db->getNow();
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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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