File indexing completed on 2024-05-12 05:02:01
0001 /* 0002 SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "deviceinfo.h" 0008 #include "utils.h" 0009 0010 DeviceInfo::DeviceInfo() = default; 0011 0012 DeviceInfo::~DeviceInfo() = default; 0013 0014 QDebug operator<<(QDebug d, const DeviceInfo &t) 0015 { 0016 d.space() << "Identifier" << t.identifier(); 0017 d.space() << "Host" << t.host(); 0018 d.space() << "SessionId" << t.sessionId(); 0019 d.space() << "Ip" << t.ip(); 0020 d.space() << "UserId" << t.userId(); 0021 d.space() << "LoginAt" << t.loginAt(); 0022 return d; 0023 } 0024 0025 void DeviceInfo::parseDeviceInfo(const QJsonObject &obj) 0026 { 0027 mIdentifier = obj[QLatin1String("_id")].toString(); 0028 mHost = obj[QLatin1String("host")].toString(); 0029 mSessionId = obj[QLatin1String("sessionId")].toString(); 0030 mIp = obj[QLatin1String("ip")].toString(); 0031 mUserId = obj[QLatin1String("userId")].toString(); 0032 const QJsonObject deviceObj = obj[QLatin1String("device")].toObject(); 0033 if (!deviceObj.isEmpty()) { 0034 const QJsonObject osObj = deviceObj[QLatin1String("os")].toObject(); 0035 if (!osObj.isEmpty()) { 0036 mOs = osObj[QLatin1String("name")].toString() + QLatin1Char(' ') + osObj[QLatin1String("version")].toString(); 0037 } 0038 mClient = deviceObj[QLatin1String("name")].toString(); 0039 } 0040 setLoginAt(Utils::parseIsoDate(QStringLiteral("loginAt"), obj)); 0041 //"device":{"longVersion":"103.0","name":"Firefox","os":{"name":"Linux","version":"x86_64"},"type":"browser","version":"103.0"} 0042 // TODO LoginAt 0043 // TODO 0044 } 0045 0046 bool DeviceInfo::operator==(const DeviceInfo &other) const 0047 { 0048 return mIdentifier == other.identifier() && mIp == other.ip() && mHost == other.host() && mSessionId == other.sessionId() && mUserId == other.userId() 0049 && mLoginAt == other.loginAt() && mOs == other.os() && mClient == other.client(); 0050 } 0051 0052 const QString &DeviceInfo::identifier() const 0053 { 0054 return mIdentifier; 0055 } 0056 0057 void DeviceInfo::setIdentifier(const QString &newIdentifier) 0058 { 0059 mIdentifier = newIdentifier; 0060 } 0061 0062 const QString &DeviceInfo::host() const 0063 { 0064 return mHost; 0065 } 0066 0067 void DeviceInfo::setHost(const QString &newHost) 0068 { 0069 mHost = newHost; 0070 } 0071 0072 const QString &DeviceInfo::sessionId() const 0073 { 0074 return mSessionId; 0075 } 0076 0077 void DeviceInfo::setSessionId(const QString &newSessionId) 0078 { 0079 mSessionId = newSessionId; 0080 } 0081 0082 const QString &DeviceInfo::ip() const 0083 { 0084 return mIp; 0085 } 0086 0087 void DeviceInfo::setIp(const QString &newIp) 0088 { 0089 mIp = newIp; 0090 } 0091 0092 const QString &DeviceInfo::userId() const 0093 { 0094 return mUserId; 0095 } 0096 0097 void DeviceInfo::setUserId(const QString &newUserId) 0098 { 0099 mUserId = newUserId; 0100 } 0101 0102 qint64 DeviceInfo::loginAt() const 0103 { 0104 return mLoginAt; 0105 } 0106 0107 void DeviceInfo::setLoginAt(qint64 newLoginAt) 0108 { 0109 mLoginAt = newLoginAt; 0110 QLocale l; 0111 mLoginAtDateTimeStr = l.toString(QDateTime::fromMSecsSinceEpoch(mLoginAt), QLocale::LongFormat); 0112 } 0113 0114 QString DeviceInfo::loginAtDisplay() const 0115 { 0116 return mLoginAtDateTimeStr; 0117 } 0118 0119 const QString &DeviceInfo::client() const 0120 { 0121 return mClient; 0122 } 0123 0124 void DeviceInfo::setClient(const QString &newClient) 0125 { 0126 mClient = newClient; 0127 } 0128 0129 const QString &DeviceInfo::os() const 0130 { 0131 return mOs; 0132 } 0133 0134 void DeviceInfo::setOs(const QString &newOs) 0135 { 0136 mOs = newOs; 0137 }