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