mirror of
https://gitlab.com/comunic/comunicwatcher
synced 2024-11-24 14:29:27 +00:00
Get information about current user
This commit is contained in:
parent
ea961a6d41
commit
709ed4b7fc
@ -24,6 +24,8 @@ SOURCES += \
|
||||
notificationsnumber.cpp \
|
||||
refreshservice.cpp \
|
||||
trayicon.cpp \
|
||||
user.cpp \
|
||||
userhelper.cpp \
|
||||
whoamidialog.cpp \
|
||||
wsclient.cpp
|
||||
|
||||
@ -38,6 +40,8 @@ HEADERS += \
|
||||
notificationsnumber.h \
|
||||
refreshservice.h \
|
||||
trayicon.h \
|
||||
user.h \
|
||||
userhelper.h \
|
||||
whoamidialog.h \
|
||||
wsclient.h
|
||||
|
||||
|
@ -27,6 +27,11 @@ void APIRequest::addString(const QString &name, const QString &value)
|
||||
mArgs[name] = value;
|
||||
}
|
||||
|
||||
void APIRequest::addInt(const QString &name, int value)
|
||||
{
|
||||
mArgs[name] = QString::number(value);
|
||||
}
|
||||
|
||||
void APIRequest::exec()
|
||||
{
|
||||
QUrl url;
|
||||
|
@ -22,6 +22,7 @@ public:
|
||||
* Add a new parameter to this request
|
||||
*/
|
||||
void addString(const QString &name, const QString &value);
|
||||
void addInt(const QString &name, int value);
|
||||
|
||||
/**
|
||||
* Execute the request
|
||||
|
46
user.cpp
Normal file
46
user.cpp
Normal file
@ -0,0 +1,46 @@
|
||||
#include "user.h"
|
||||
|
||||
User::User()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool User::isValid() const
|
||||
{
|
||||
return mId > 0;
|
||||
}
|
||||
|
||||
int User::id() const
|
||||
{
|
||||
return mId;
|
||||
}
|
||||
|
||||
void User::setId(int id)
|
||||
{
|
||||
mId = id;
|
||||
}
|
||||
|
||||
QString User::firstName() const
|
||||
{
|
||||
return mFirstName;
|
||||
}
|
||||
|
||||
void User::setFirstName(const QString &firstName)
|
||||
{
|
||||
mFirstName = firstName;
|
||||
}
|
||||
|
||||
QString User::lastName() const
|
||||
{
|
||||
return mLastName;
|
||||
}
|
||||
|
||||
void User::setLastName(const QString &lastName)
|
||||
{
|
||||
mLastName = lastName;
|
||||
}
|
||||
|
||||
QString User::fullName() const
|
||||
{
|
||||
return mFirstName + " " + mLastName;
|
||||
}
|
36
user.h
Normal file
36
user.h
Normal file
@ -0,0 +1,36 @@
|
||||
/**
|
||||
* User information
|
||||
*
|
||||
* This class contains information about a user
|
||||
*
|
||||
* @author Pierre Hubert
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QString>
|
||||
|
||||
class User
|
||||
{
|
||||
public:
|
||||
User();
|
||||
|
||||
bool isValid() const;
|
||||
|
||||
int id() const;
|
||||
void setId(int id);
|
||||
|
||||
QString firstName() const;
|
||||
void setFirstName(const QString &firstName);
|
||||
|
||||
QString lastName() const;
|
||||
void setLastName(const QString &lastName);
|
||||
|
||||
QString fullName() const;
|
||||
|
||||
private:
|
||||
int mId;
|
||||
QString mFirstName;
|
||||
QString mLastName;
|
||||
};
|
||||
|
28
userhelper.cpp
Normal file
28
userhelper.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
#include "apirequest.h"
|
||||
#include "userhelper.h"
|
||||
|
||||
UserHelper::UserHelper(QObject *parent) : QObject(parent)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void UserHelper::getUserInfo(int userID)
|
||||
{
|
||||
auto req = new APIRequest("user/getInfo");
|
||||
req->addInt("userID", userID);
|
||||
req->exec();
|
||||
connect(req, &APIRequest::done, [=](APIResponse res) {
|
||||
|
||||
if(res.isError()) {
|
||||
emit onGotUserInfo(User());
|
||||
return;
|
||||
}
|
||||
|
||||
User u;
|
||||
auto obj = res.getObject();
|
||||
u.setId(obj.value("userID").toInt());
|
||||
u.setFirstName(obj.value("firstName").toString());
|
||||
u.setLastName(obj.value("lastName").toString());
|
||||
emit onGotUserInfo(u);
|
||||
});
|
||||
}
|
24
userhelper.h
Normal file
24
userhelper.h
Normal file
@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include "user.h"
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class UserHelper : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit UserHelper(QObject *parent = nullptr);
|
||||
|
||||
/**
|
||||
* Get information about a user
|
||||
*
|
||||
* @param userID Target user ID
|
||||
*/
|
||||
void getUserInfo(int userID);
|
||||
|
||||
signals:
|
||||
void onGotUserInfo(const User &u);
|
||||
|
||||
};
|
||||
|
@ -13,6 +13,8 @@ WhoAmIDialog::WhoAmIDialog(QWidget *parent) :
|
||||
AccountHelper::GetUserID([this](int id) {
|
||||
this->onGotUserId(id);
|
||||
});
|
||||
|
||||
connect(&mUserHelper, &UserHelper::onGotUserInfo, this, &WhoAmIDialog::getUserCallback);
|
||||
}
|
||||
|
||||
WhoAmIDialog::~WhoAmIDialog()
|
||||
@ -20,6 +22,16 @@ WhoAmIDialog::~WhoAmIDialog()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void WhoAmIDialog::getUserCallback(const User &u)
|
||||
{
|
||||
if(!u.isValid()) {
|
||||
QMessageBox::warning(this, tr("Error"), tr("Could not get user information!"));
|
||||
return;
|
||||
}
|
||||
|
||||
this->ui->user_name->setText(u.fullName());
|
||||
}
|
||||
|
||||
void WhoAmIDialog::onGotUserId(int userID)
|
||||
{
|
||||
if(userID < 1) {
|
||||
@ -28,4 +40,6 @@ void WhoAmIDialog::onGotUserId(int userID)
|
||||
}
|
||||
|
||||
this->ui->user_id->setText(QString::number(userID));
|
||||
|
||||
mUserHelper.getUserInfo(userID);
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "userhelper.h"
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
@ -14,10 +16,14 @@ public:
|
||||
explicit WhoAmIDialog(QWidget *parent = nullptr);
|
||||
~WhoAmIDialog();
|
||||
|
||||
private slots:
|
||||
void getUserCallback(const User &u);
|
||||
|
||||
private:
|
||||
void onGotUserId(int userID);
|
||||
|
||||
// Class members
|
||||
Ui::WhoAmIDialog *ui;
|
||||
UserHelper mUserHelper;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user