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 "contactgroupmembership.h" 0011 #include "peopleservice.h" 0012 0013 #include <QJsonArray> 0014 #include <QJsonObject> 0015 #include <QJsonValue> 0016 #include <QSharedData> 0017 0018 #include <algorithm> 0019 0020 namespace KGAPI2::People 0021 { 0022 class ContactGroupMembership::Private : public QSharedData 0023 { 0024 public: 0025 explicit Private() = default; 0026 Private(const Private &) = default; 0027 Private(Private &&) noexcept = delete; 0028 Private &operator=(const Private &) = delete; 0029 Private &operator=(Private &&) noexcept = delete; 0030 ~Private() = default; 0031 0032 bool operator==(const Private &other) const 0033 { 0034 return contactGroupResourceName == other.contactGroupResourceName && contactGroupId == other.contactGroupId; 0035 } 0036 0037 bool operator!=(const Private &other) const 0038 { 0039 return !(*this == other); 0040 } 0041 0042 QString contactGroupResourceName{}; 0043 QString contactGroupId{}; 0044 }; 0045 0046 ContactGroupMembership::ContactGroupMembership() 0047 : d(new Private) 0048 { 0049 } 0050 0051 ContactGroupMembership::ContactGroupMembership(const ContactGroupMembership &) = default; 0052 ContactGroupMembership::ContactGroupMembership(ContactGroupMembership &&) noexcept = default; 0053 ContactGroupMembership &ContactGroupMembership::operator=(const ContactGroupMembership &) = default; 0054 ContactGroupMembership &ContactGroupMembership::operator=(ContactGroupMembership &&) noexcept = default; 0055 ContactGroupMembership::~ContactGroupMembership() = default; 0056 0057 bool ContactGroupMembership::operator==(const ContactGroupMembership &other) const 0058 { 0059 return *d == *other.d; 0060 } 0061 0062 bool ContactGroupMembership::operator!=(const ContactGroupMembership &other) const 0063 { 0064 return !(*this == other); 0065 } 0066 0067 QString ContactGroupMembership::contactGroupResourceName() const 0068 { 0069 return d->contactGroupResourceName; 0070 } 0071 0072 void ContactGroupMembership::setContactGroupResourceName(const QString &value) 0073 { 0074 d->contactGroupResourceName = value; 0075 } 0076 QString ContactGroupMembership::contactGroupId() const 0077 { 0078 return d->contactGroupId; 0079 } 0080 0081 ContactGroupMembership ContactGroupMembership::fromJSON(const QJsonObject &obj) 0082 { 0083 ContactGroupMembership contactGroupMembership; 0084 0085 if(!obj.isEmpty()) { 0086 contactGroupMembership.d->contactGroupId = obj.value(QStringLiteral("contactGroupId")).toString(); 0087 contactGroupMembership.d->contactGroupResourceName = obj.value(QStringLiteral("contactGroupResourceName")).toString(); 0088 } 0089 0090 return contactGroupMembership; 0091 } 0092 0093 QJsonValue ContactGroupMembership::toJSON() const 0094 { 0095 QJsonObject obj; 0096 0097 PeopleUtils::addValueToJsonObjectIfValid(obj, "contactGroupResourceName", d->contactGroupResourceName); 0098 // Output only -> PeopleUtils::addValueToJsonObjectIfValid(obj, "contactGroupId", d->contactGroupId); 0099 return obj; 0100 } 0101 0102 } // namespace KGAPI2::People