File indexing completed on 2024-05-12 05:04:10
0001 // SPDX-FileCopyrightText: 2023 Rishi Kumar <rsi.dev17@gmail.com> 0002 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0003 0004 #include "emailinfo.h" 0005 0006 #include <QJsonObject> 0007 0008 using namespace Qt::Literals::StringLiterals; 0009 0010 QString EmailInfo::id() const 0011 { 0012 return m_id; 0013 } 0014 0015 QString EmailInfo::domain() const 0016 { 0017 return m_domain; 0018 } 0019 0020 QDateTime EmailInfo::createdAt() const 0021 { 0022 return m_createdAt; 0023 } 0024 0025 int EmailInfo::accountSignupCount() const 0026 { 0027 return m_accountSignupCount; 0028 } 0029 0030 int EmailInfo::ipSignupCount() const 0031 { 0032 return m_ipSignupCount; 0033 } 0034 0035 void EmailInfo::calculateCount(const QJsonArray &history, EmailInfo &info) 0036 { 0037 for (const auto &entry : history) { 0038 QJsonObject entryObj = entry.toObject(); 0039 info.m_accountSignupCount += entryObj["accounts"_L1].toString().toInt(); 0040 info.m_ipSignupCount += entryObj["uses"_L1].toString().toInt(); 0041 } 0042 } 0043 0044 EmailInfo EmailInfo::fromSourceData(const QJsonObject &doc) 0045 { 0046 EmailInfo info; 0047 info.m_id = doc["id"_L1].toString(); 0048 info.m_domain = doc["domain"_L1].toString(); 0049 info.m_createdAt = QDateTime::fromString(doc["created_at"_L1].toString(), Qt::ISODate).toLocalTime(); 0050 info.m_history = doc["history"_L1].toArray(); 0051 info.calculateCount(info.m_history, info); 0052 0053 return info; 0054 } 0055 0056 #include "moc_emailinfo.cpp"