File indexing completed on 2024-05-12 16:25:57

0001 /*
0002    SPDX-FileCopyrightText: 2021-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "teamroom.h"
0008 
0009 #include <QJsonArray>
0010 
0011 TeamRoom::TeamRoom() = default;
0012 
0013 bool TeamRoom::operator==(const TeamRoom &other) const
0014 {
0015     return mAutoJoin == other.autoJoin() && mName == other.name() && mFname == other.fname() && mIdentifier == other.identifier();
0016 }
0017 
0018 bool TeamRoom::autoJoin() const
0019 {
0020     return mAutoJoin;
0021 }
0022 
0023 void TeamRoom::setAutoJoin(bool autoJoin)
0024 {
0025     mAutoJoin = autoJoin;
0026 }
0027 
0028 QString TeamRoom::name() const
0029 {
0030     return mName;
0031 }
0032 
0033 void TeamRoom::setName(const QString &name)
0034 {
0035     mName = name;
0036 }
0037 
0038 QString TeamRoom::fname() const
0039 {
0040     return mFname;
0041 }
0042 
0043 void TeamRoom::setFname(const QString &fname)
0044 {
0045     mFname = fname;
0046 }
0047 
0048 void TeamRoom::parse(const QJsonObject &obj)
0049 {
0050     mName = obj[QLatin1String("name")].toString();
0051     mFname = obj[QLatin1String("fname")].toString();
0052     mAutoJoin = obj[QLatin1String("teamDefault")].toBool(false);
0053     mIdentifier = obj[QLatin1String("_id")].toString();
0054 }
0055 
0056 QString TeamRoom::identifier() const
0057 {
0058     return mIdentifier;
0059 }
0060 
0061 void TeamRoom::setIdentifier(const QString &identifier)
0062 {
0063     mIdentifier = identifier;
0064 }
0065 
0066 QVector<TeamRoom> TeamRoom::parseTeamRooms(const QJsonObject &obj)
0067 {
0068     QVector<TeamRoom> teamRooms;
0069     const QJsonArray rooms = obj.value(QLatin1String("rooms")).toArray();
0070     teamRooms.reserve(rooms.count());
0071     for (int i = 0, total = rooms.count(); i < total; ++i) {
0072         const QJsonObject r = rooms.at(i).toObject();
0073         TeamRoom teamRoom;
0074         teamRoom.parse(r);
0075         teamRooms.append(std::move(teamRoom));
0076     }
0077     return teamRooms;
0078 }
0079 
0080 QDebug operator<<(QDebug d, const TeamRoom &t)
0081 {
0082     d << "Name " << t.name();
0083     d << "Fname : " << t.fname();
0084     d << "autojoin: " << t.autoJoin();
0085     d << "identifier: " << t.identifier();
0086     return d;
0087 }