forked from ondra/colnod-connector
Changes because of tests
This commit is contained in:
parent
f5ea0ed1a0
commit
5cc57ac9e7
@ -20,7 +20,7 @@ void ColnodAPI::downloadData()
|
||||
auto login = requestLogin();
|
||||
connect(login.get(), &serversdk::Request::finished, this, [=](){
|
||||
// Get login token
|
||||
if (login->status() != 200) {
|
||||
if (checkRequest(login)) {
|
||||
emit error();
|
||||
}
|
||||
|
||||
@ -28,12 +28,35 @@ void ColnodAPI::downloadData()
|
||||
token.fromJson(login->responseData());
|
||||
authToken = token.id();
|
||||
|
||||
std::shared_ptr<Data> data;
|
||||
|
||||
auto errorHandler = [=](std::shared_ptr<serversdk::Request> request){
|
||||
if (!checkRequest(request)) {
|
||||
qWarning(colnod) << "ERROR during calling" << request->url() << ", request unsuccessful";
|
||||
mValid = false;
|
||||
}
|
||||
else if (!checkResponse(request->responseData())) {
|
||||
qWarning(colnod) << "Data from" << request->url() << "are invalid";
|
||||
mValid = false;
|
||||
}
|
||||
saveUpdatedTokens(request->responseData());
|
||||
emit partOfDataReady(data);
|
||||
};
|
||||
|
||||
// if I have all data emit downloadDataFinished
|
||||
connect(this, &ColnodAPI::partOfDataReady, this, &ColnodAPI::areDataReady);
|
||||
getTokensUpdated(mLastSync);
|
||||
getTokensDeleted(mLastSync);
|
||||
getSubjectsUpdated(mLastSync);
|
||||
getSubjectsDeleted(mLastSync);
|
||||
|
||||
auto tokensRequest = getTokensUpdated(mLastSync);
|
||||
connect(tokensRequest.get(), &serversdk::Request::finished, errorHandler);
|
||||
|
||||
auto deletedTokensRequest = getTokensDeleted(mLastSync);
|
||||
connect(deletedTokensRequest.get(), &serversdk::Request::finished, errorHandler);
|
||||
|
||||
auto subjectsRequest = getSubjectsUpdated(mLastSync);
|
||||
connect(subjectsRequest.get(), &serversdk::Request::finished, errorHandler);
|
||||
|
||||
auto deletedSubjectsRequest = getSubjectsDeleted(mLastSync);
|
||||
connect(deletedSubjectsRequest.get(), &serversdk::Request::finished, errorHandler);
|
||||
});
|
||||
}
|
||||
|
||||
@ -88,45 +111,23 @@ std::shared_ptr<serversdk::Request> ColnodAPI::requestLogin()
|
||||
return loginRequest;
|
||||
}
|
||||
|
||||
void ColnodAPI::getTokensUpdated(const Timestamp &time)
|
||||
std::shared_ptr<serversdk::Request> ColnodAPI::getTokensUpdated(const Timestamp &time)
|
||||
{
|
||||
auto request = composeRequest("/TokenManager/getTokensUpdated", time.jsonData());
|
||||
request->setUserName(authToken);
|
||||
mReqMan->processRequest(request);
|
||||
connect(request.get(), &serversdk::Request::finished, [=](){
|
||||
if (!checkRequest(request)) {
|
||||
qWarning(colnod) << "ERROR during calling /TokenManager/getTokensUpdated, request unsuccessful";
|
||||
mValid = false;
|
||||
}
|
||||
else if (!checkResponse(request->responseData())) {
|
||||
qWarning(colnod) << "Data from /TokenManager/getTokensUpdated are invalid";
|
||||
mValid = false;
|
||||
}
|
||||
saveUpdatedTokens(request->responseData());
|
||||
emit partOfDataReady(mData);
|
||||
});
|
||||
return request;
|
||||
}
|
||||
|
||||
void ColnodAPI::getTokensDeleted(const Timestamp &time)
|
||||
std::shared_ptr<serversdk::Request> ColnodAPI::getTokensDeleted(const Timestamp &time)
|
||||
{
|
||||
auto request = composeRequest("/TokenManager/getTokensDeleted", time.jsonData());
|
||||
request->setUserName(authToken);
|
||||
mReqMan->processRequest(request);
|
||||
connect(request.get(), &serversdk::Request::finished, [=](){
|
||||
if (!checkRequest(request)) {
|
||||
qWarning(colnod) << "ERROR during calling /TokenManager/getTokensDeleted, request unsuccessful";
|
||||
mValid = false;
|
||||
}
|
||||
else if (!checkResponse(request->responseData())) {
|
||||
qWarning(colnod) << "Data from /TokenManager/getTokensDeleted are invalid";
|
||||
mValid = false;
|
||||
}
|
||||
saveDeletedTokens(request->responseData());
|
||||
emit partOfDataReady();
|
||||
});
|
||||
return request;
|
||||
}
|
||||
|
||||
void ColnodAPI::getSubjectsUpdated(const Timestamp &time)
|
||||
std::shared_ptr<serversdk::Request> ColnodAPI::getSubjectsUpdated(const Timestamp &time)
|
||||
{
|
||||
auto request = composeRequest("/SubjectManager/getSubjectsUpdated", time.jsonData());
|
||||
request->setUserName(authToken);
|
||||
@ -145,7 +146,7 @@ void ColnodAPI::getSubjectsUpdated(const Timestamp &time)
|
||||
});
|
||||
}
|
||||
|
||||
void ColnodAPI::getSubjectsDeleted(const Timestamp &time)
|
||||
std::shared_ptr<serversdk::Request> ColnodAPI::getSubjectsDeleted(const Timestamp &time)
|
||||
{
|
||||
auto request = composeRequest("/SubjectManager/getSubjectsDeleted", time.jsonData());
|
||||
request->setUserName(authToken);
|
||||
@ -164,7 +165,7 @@ void ColnodAPI::getSubjectsDeleted(const Timestamp &time)
|
||||
});
|
||||
}
|
||||
|
||||
void ColnodAPI::setTokens(const QHash<QString, std::shared_ptr<Token>> &tokens)
|
||||
std::shared_ptr<serversdk::Request> ColnodAPI::setTokens(const QHash<QString, std::shared_ptr<Token>> &tokens)
|
||||
{
|
||||
auto request = composeRequest("/TokenManager/setTokens", Token::tokensToColnodJson(tokens));
|
||||
request->setUserName(authToken);
|
||||
@ -185,7 +186,7 @@ void ColnodAPI::setTokens(const QHash<QString, std::shared_ptr<Token>> &tokens)
|
||||
});
|
||||
}
|
||||
|
||||
void ColnodAPI::deleteTokens(const QList<QString> &ids)
|
||||
std::shared_ptr<serversdk::Request> ColnodAPI::deleteTokens(const QList<QString> &ids)
|
||||
{
|
||||
auto request = composeRequest("/TokenManager/deleteTokens", Token::idsToJSON(ids));
|
||||
request->setUserName(authToken);
|
||||
|
||||
@ -23,6 +23,16 @@ class Timestamp : public serversdk::DatabaseTable {
|
||||
Q_OBJECT
|
||||
TABLE_PROPERTY(qint64, timestamp, set_timestamp, 0)
|
||||
public:
|
||||
Timestamp() = default;
|
||||
explicit Timestamp(qint64 time)
|
||||
{
|
||||
set_timestamp(time);
|
||||
}
|
||||
explicit Timestamp(QDateTime time)
|
||||
{
|
||||
set_timestamp(time.toMSecsSinceEpoch());
|
||||
}
|
||||
|
||||
QString toDateString()
|
||||
{
|
||||
return QDateTime::fromMSecsSinceEpoch(a_timestamp).toString("yyyy-MM-dd hh:mm:ss.zzz");
|
||||
@ -43,13 +53,13 @@ public:
|
||||
std::shared_ptr<serversdk::Request> requestLogin();
|
||||
|
||||
|
||||
void getTokensUpdated(const Timestamp &time);
|
||||
void getTokensDeleted(const Timestamp &time);
|
||||
void getSubjectsUpdated(const Timestamp &time);
|
||||
void getSubjectsDeleted(const Timestamp &time);
|
||||
std::shared_ptr<serversdk::Request> getTokensUpdated(const Timestamp &time);
|
||||
std::shared_ptr<serversdk::Request> getTokensDeleted(const Timestamp &time);
|
||||
std::shared_ptr<serversdk::Request> getSubjectsUpdated(const Timestamp &time);
|
||||
std::shared_ptr<serversdk::Request> getSubjectsDeleted(const Timestamp &time);
|
||||
|
||||
void setTokens(const QHash<QString, std::shared_ptr<Token>> &tokens);
|
||||
void deleteTokens(const QList<QString> &tokenIds);
|
||||
std::shared_ptr<serversdk::Request> setTokens(const QHash<QString, std::shared_ptr<Token>> &tokens);
|
||||
std::shared_ptr<serversdk::Request> deleteTokens(const QList<QString> &tokenIds);
|
||||
|
||||
// Attributes
|
||||
QString userName() const;
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
class ColnodTest : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
friend class ColnodAPI;
|
||||
private slots:
|
||||
void login();
|
||||
void getTokens();
|
||||
@ -31,10 +30,14 @@ void ColnodTest::getTokens()
|
||||
{
|
||||
serversdk::RequestManager reqMan;
|
||||
ColnodAPI colnod(&reqMan);
|
||||
|
||||
// get login token
|
||||
auto login = colnod.requestLogin();
|
||||
QSignalSpy spy(login.get(), &serversdk::Request::finished);
|
||||
spy.wait();
|
||||
qDebug().noquote() << login->responseData().mid(7,36);
|
||||
QString token = login->responseData().mid(7,36);
|
||||
Timestamp time(QDateTime::currentMSecsSinceEpoch());
|
||||
colnod.getTokensUpdated(time);
|
||||
}
|
||||
|
||||
QTEST_GUILESS_MAIN(ColnodTest)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user