File indexing completed on 2024-05-12 05:22:26

0001 /*
0002  * SPDX-FileCopyrightText: 2021 Daniel Vrátil <dvratil@kde.org>
0003  * SPDX-FileCopyrightText: 2022 Claudio Cambra <claudio.cambra@kde.org>
0004  *
0005  * SPDX-License-Identifier: LGPL-2.1-only
0006  * SPDX-License-Identifier: LGPL-3.0-only
0007  * SPDX-License-Identifier: LicenseRef-KDE-Accepted-LGPL
0008  */
0009 
0010 #include "domainmembership.h"
0011 
0012 #include <QJsonArray>
0013 #include <QJsonObject>
0014 #include <QJsonValue>
0015 #include <QSharedData>
0016 
0017 #include <algorithm>
0018 
0019 namespace KGAPI2::People
0020 {
0021 class DomainMembership::Private : public QSharedData
0022 {
0023 public:
0024     explicit Private() = default;
0025     Private(const Private &) = default;
0026     Private(Private &&) noexcept = delete;
0027     Private &operator=(const Private &) = delete;
0028     Private &operator=(Private &&) noexcept = delete;
0029     ~Private() = default;
0030 
0031     bool operator==(const Private &other) const
0032     {
0033         return inViewerDomain == other.inViewerDomain;
0034     }
0035 
0036     bool operator!=(const Private &other) const
0037     {
0038         return !(*this == other);
0039     }
0040 
0041     bool inViewerDomain{};
0042 };
0043 
0044 DomainMembership::DomainMembership()
0045     : d(new Private)
0046 {
0047 }
0048 
0049 DomainMembership::DomainMembership(const DomainMembership &) = default;
0050 DomainMembership::DomainMembership(DomainMembership &&) noexcept = default;
0051 DomainMembership &DomainMembership::operator=(const DomainMembership &) = default;
0052 DomainMembership &DomainMembership::operator=(DomainMembership &&) noexcept = default;
0053 DomainMembership::~DomainMembership() = default;
0054 
0055 bool DomainMembership::operator==(const DomainMembership &other) const
0056 {
0057     return *d == *other.d;
0058 }
0059 
0060 bool DomainMembership::operator!=(const DomainMembership &other) const
0061 {
0062     return !(*this == other);
0063 }
0064 
0065 bool DomainMembership::inViewerDomain() const
0066 {
0067     return d->inViewerDomain;
0068 }
0069 
0070 void DomainMembership::setInViewerDomain(bool value)
0071 {
0072     d->inViewerDomain = value;
0073 }
0074 
0075 DomainMembership DomainMembership::fromJSON(const QJsonObject &obj)
0076 {
0077     DomainMembership domainMembership;
0078 
0079     if(!obj.isEmpty()) {
0080         domainMembership.setInViewerDomain(obj.value(QStringLiteral("inViewerDomain")).toBool());
0081     }
0082 
0083     return domainMembership;
0084 }
0085 
0086 QJsonValue DomainMembership::toJSON() const
0087 {
0088     return QJsonObject {
0089         { QStringLiteral("inViewerDomain"), d->inViewerDomain }
0090     };
0091 }
0092 
0093 } // namespace KGAPI2::People