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"