comunicwatcher/accounthelper.cpp

71 lines
1.6 KiB
C++
Raw Permalink Normal View History

2020-06-13 07:49:24 +00:00
#include "accounthelper.h"
#include "apirequest.h"
2020-06-13 08:19:49 +00:00
#include <QSettings>
2020-06-13 07:49:24 +00:00
2020-06-13 08:19:49 +00:00
#define LOGIN_TOKEN_VALUE "login_token"
2020-06-13 07:49:24 +00:00
void AccountHelper::LoginUser(const QString &email, const QString &password, const vLoginCallback cb)
{
auto req = new APIRequest("account/login");
req->addString("userMail", email);
req->addString("userPassword", password);
req->exec();
QObject::connect(req, &APIRequest::done, [=] (APIResponse res) {
QString token;
switch(res.getCode()) {
case 200:
// Save login token
token = res.getObject().value("tokens").toObject().value("token1").toString();
2020-06-13 08:19:49 +00:00
QSettings().setValue(LOGIN_TOKEN_VALUE, token);
2020-06-13 07:49:24 +00:00
cb(LoginResult::SUCCESS);
break;
case 401:
cb(LoginResult::BAD_PASSWORD);
break;
case 429:
cb(LoginResult::TOO_MANY_REQUEST);
break;
default:
cb(LoginResult::ERROR);
break;
}
});
}
2020-06-13 08:19:49 +00:00
bool AccountHelper::SignedIn()
{
return QSettings().value(LOGIN_TOKEN_VALUE).isValid();
}
QString AccountHelper::GetLoginToken()
{
return QSettings().value(LOGIN_TOKEN_VALUE).toString();
}
void AccountHelper::RemoveLoginToken()
{
QSettings().remove(LOGIN_TOKEN_VALUE);
}
2020-06-14 12:44:32 +00:00
void AccountHelper::GetUserID(const vGetUserIDCallback cb)
{
auto req = new APIRequest("account/id");
req->exec();
QObject::connect(req, &APIRequest::done, [=] (APIResponse res) {
if(res.isError())
cb(-1);
else
cb(res.getObject().value("userID").toInt(-1));
});
}