12 #ifndef hifi_DataServerAccountInfo_h
13 #define hifi_DataServerAccountInfo_h
15 #include <QtCore/QObject>
16 #include <QtCore/QUuid>
17 #include <QtNetwork/qnetworkreply.h>
19 #include "OAuthAccessToken.h"
21 const float SATOSHIS_PER_CREDIT = 100000000.0f;
23 class DataServerAccountInfo :
public QObject {
25 const static QString EMPTY_KEY;
27 DataServerAccountInfo() {};
28 DataServerAccountInfo(
const DataServerAccountInfo& otherInfo);
29 DataServerAccountInfo& operator=(
const DataServerAccountInfo& otherInfo);
31 const OAuthAccessToken& getAccessToken()
const {
return _accessToken; }
32 void setAccessToken(
const OAuthAccessToken& accessToken) { _accessToken = accessToken; }
33 void setAccessTokenFromJSON(
const QJsonObject& jsonObject);
35 const QString& getUsername()
const {
return _username; }
36 void setUsername(
const QString& username);
38 const QString& getXMPPPassword()
const {
return _xmppPassword; }
39 void setXMPPPassword(
const QString& xmppPassword);
41 const QString& getDiscourseApiKey()
const {
return _discourseApiKey; }
42 void setDiscourseApiKey(
const QString& discourseApiKey);
44 QByteArray getUsernameSignature(
const QUuid& connectionToken);
45 bool hasPrivateKey()
const {
return !_privateKey.isEmpty(); }
46 void setPrivateKey(
const QByteArray& privateKey) { _privateKey = privateKey; }
48 QByteArray signPlaintext(
const QByteArray& plaintext);
50 void setDomainID(
const QUuid& domainID) { _domainID = domainID; }
51 const QUuid& getDomainID()
const {
return _domainID; }
53 void setTemporaryDomain(
const QUuid& domainID,
const QString& key) { _temporaryDomainID = domainID; _temporaryDomainApiKey = key; }
54 const QString& getTemporaryDomainKey(
const QUuid& domainID) {
return domainID == _temporaryDomainID ? _temporaryDomainApiKey : EMPTY_KEY; }
56 bool hasProfile()
const;
58 void setProfileInfoFromJSON(
const QJsonObject& jsonObject);
60 friend QDataStream& operator<<(QDataStream &out,
const DataServerAccountInfo& info);
61 friend QDataStream& operator>>(QDataStream &in, DataServerAccountInfo& info);
64 void swap(DataServerAccountInfo& otherInfo);
66 OAuthAccessToken _accessToken;
68 QString _xmppPassword;
69 QString _discourseApiKey;
71 QUuid _temporaryDomainID;
72 QString _temporaryDomainApiKey;
73 QByteArray _privateKey;