File indexing completed on 2024-05-05 17:00:19

0001 /*
0002    SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "librocketchatrestapi-qt_export.h"
0010 #include "restapiabstractjob.h"
0011 
0012 #include <QJsonObject>
0013 namespace RocketChatRestApi
0014 {
0015 class LIBROCKETCHATRESTAPI_QT_EXPORT ChannelGroupBaseJob : public RestApiAbstractJob
0016 {
0017     Q_OBJECT
0018 public:
0019     explicit ChannelGroupBaseJob(QObject *parent = nullptr);
0020     ~ChannelGroupBaseJob() override;
0021     enum class ChannelGroupInfoType {
0022         Unknown,
0023         Identifier,
0024         Name,
0025     };
0026     Q_ENUM(ChannelGroupInfoType)
0027 
0028     struct ChannelGroupInfo {
0029         QString identifier;
0030         ChannelGroupBaseJob::ChannelGroupInfoType channelGroupInfoType = ChannelGroupBaseJob::ChannelGroupInfoType::Unknown;
0031     };
0032 
0033     [[nodiscard]] bool hasIdentifier() const;
0034 
0035     [[nodiscard]] ChannelGroupInfo channelGroupInfo() const;
0036     void setChannelGroupInfo(const ChannelGroupInfo &channelInfo);
0037 
0038 protected:
0039     void generateJson(QJsonObject &obj) const;
0040     void addQueryItem(QUrl &url) const;
0041 
0042 private:
0043     ChannelGroupInfo mChannelGroupInfo;
0044 };
0045 }
0046 LIBROCKETCHATRESTAPI_QT_EXPORT QDebug operator<<(QDebug d, const RocketChatRestApi::ChannelGroupBaseJob::ChannelGroupInfo &t);