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