mirror of
				https://gitlab.com/comunic/comunicmessages
				synced 2025-11-04 12:14:05 +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