File indexing completed on 2024-05-12 16:59:03

0001 /*
0002     SPDX-FileCopyrightText: 2019 Harald Sitter <sitter@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "bugfieldclient.h"
0008 
0009 namespace Bugzilla
0010 {
0011 KJob *BugFieldClient::getFields(const QString &idOrName)
0012 {
0013     return m_connection.get(QStringLiteral("/field/bug/") + idOrName);
0014 }
0015 
0016 QList<BugField::Ptr> BugFieldClient::getFields(KJob *kjob) const
0017 {
0018     auto *job = qobject_cast<APIJob *>(kjob);
0019 
0020     const auto ary = job->object().value(QStringLiteral("fields")).toArray();
0021 
0022     QList<BugField::Ptr> list;
0023     list.reserve(ary.size());
0024     for (const auto &bug : qAsConst(ary)) {
0025         list.append(BugField::Ptr(new BugField(bug.toObject().toVariantHash())));
0026     }
0027     return list;
0028 }
0029 
0030 KJob *BugFieldClient::getField(const QString &idOrName)
0031 {
0032     return getFields(idOrName);
0033 }
0034 
0035 BugField::Ptr BugFieldClient::getField(KJob *kjob) const
0036 {
0037     return getFields(kjob).value(0, nullptr);
0038 }
0039 
0040 } // namespace Bugzilla