mirror of
https://gitlab.com/comunic/comunicmessages
synced 2025-09-19 22:08:48 +00:00
Can get current user ID
This commit is contained in:
@@ -6,6 +6,9 @@
|
||||
#include "../data/accountlogintokens.h"
|
||||
#include "../helpers/apihelper.h"
|
||||
|
||||
//Current user ID
|
||||
static int mUserID = -1;
|
||||
|
||||
AccountHelper::AccountHelper(QObject *parent) : QObject(parent)
|
||||
{
|
||||
mAPIHelper = new APIHelper;
|
||||
@@ -39,6 +42,15 @@ void AccountHelper::login(const AccountLoginRequest &info)
|
||||
|
||||
}
|
||||
|
||||
void AccountHelper::refreshCurrentUserID()
|
||||
{
|
||||
APIRequest *request = new APIRequest;
|
||||
request->setURI("user/getCurrentUserID");
|
||||
connect(request, &APIRequest::error, this, &AccountHelper::getUserIdCallbackError);
|
||||
connect(request, &APIRequest::success, this, &AccountHelper::getUserIdCallbackSuccess);
|
||||
mAPIHelper->execute(request);
|
||||
}
|
||||
|
||||
void AccountHelper::loginError(int code)
|
||||
{
|
||||
//Delete API request
|
||||
@@ -80,3 +92,35 @@ void AccountHelper::requestLoginResult(const QJsonDocument &document)
|
||||
//Success
|
||||
emit loginResult(LoginResult::LOGIN_SUCCESS);
|
||||
}
|
||||
|
||||
void AccountHelper::getUserIdCallbackError()
|
||||
{
|
||||
qobject_cast<APIRequest *>(sender())->deleteLater();
|
||||
|
||||
emit refreshCurrentUserIDResult(false);
|
||||
}
|
||||
|
||||
void AccountHelper::getUserIdCallbackSuccess(const QJsonDocument &document)
|
||||
{
|
||||
qobject_cast<APIRequest *>(sender())->deleteLater();
|
||||
|
||||
int userID = document.object().value("userID").toInt(-1);
|
||||
|
||||
if(userID < 0){
|
||||
qWarning("Could not get user ID!");
|
||||
emit refreshCurrentUserIDResult(false);
|
||||
return;
|
||||
}
|
||||
|
||||
mUserID = userID;
|
||||
|
||||
emit refreshCurrentUserIDResult(true);
|
||||
}
|
||||
|
||||
int AccountHelper::getUserID()
|
||||
{
|
||||
if(mUserID < 1)
|
||||
qWarning("An attempt to get user ID has been made while user ID has not been refreshed yet!");
|
||||
|
||||
return mUserID;
|
||||
}
|
||||
|
@@ -39,6 +39,19 @@ public:
|
||||
*/
|
||||
void login(const AccountLoginRequest &info);
|
||||
|
||||
/**
|
||||
* Refresh current user ID
|
||||
*/
|
||||
void refreshCurrentUserID();
|
||||
|
||||
/**
|
||||
* Get current cached user ID
|
||||
*
|
||||
* @return The ID of the user ID / note : invalid value if user ID
|
||||
* is not available yet
|
||||
*/
|
||||
static int getUserID();
|
||||
|
||||
signals:
|
||||
|
||||
/**
|
||||
@@ -48,6 +61,13 @@ signals:
|
||||
*/
|
||||
void loginResult(LoginResult result);
|
||||
|
||||
/**
|
||||
* Refresh current user ID result
|
||||
*
|
||||
* @param success TRUE in case of success / FALSE else
|
||||
*/
|
||||
void refreshCurrentUserIDResult(bool success);
|
||||
|
||||
public slots:
|
||||
|
||||
private slots:
|
||||
@@ -56,6 +76,10 @@ private slots:
|
||||
void loginError(int code);
|
||||
void requestLoginResult(const QJsonDocument &document);
|
||||
|
||||
//Get current user id callbacks
|
||||
void getUserIdCallbackError();
|
||||
void getUserIdCallbackSuccess(const QJsonDocument &document);
|
||||
|
||||
private:
|
||||
APIHelper *mAPIHelper;
|
||||
};
|
||||
|
@@ -2,6 +2,9 @@
|
||||
#include <QJsonDocument>
|
||||
|
||||
#include "apihelper.h"
|
||||
#include "accounthelper.h"
|
||||
#include "configurationhelper.h"
|
||||
#include "../data/accountlogintokens.h"
|
||||
#include "../config.h"
|
||||
|
||||
APIHelper::APIHelper(QObject *parent) : QObject(parent)
|
||||
@@ -20,6 +23,13 @@ void APIHelper::execute(APIRequest *request)
|
||||
request->addString("serviceName", API_SERVICE_NAME);
|
||||
request->addString("serviceToken", API_SERVICE_TOKEN);
|
||||
|
||||
//Add account tokens if available
|
||||
if(AccountHelper().signedIn()){
|
||||
AccountLoginTokens tokens = ConfigurationHelper().getAccountTokens();
|
||||
request->addString("userToken1", tokens.token1());
|
||||
request->addString("userToken2", tokens.token2());
|
||||
}
|
||||
|
||||
//Prepare request
|
||||
//See this SO question to learn more : https://stackoverflow.com/questions/2599423
|
||||
QUrlQuery queryData;
|
||||
|
Reference in New Issue
Block a user