File indexing completed on 2024-05-12 05:22:11

0001 /*
0002  * SPDX-FileCopyrightText: 2014 Daniel Vrátil <dvratil@redhat.com>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005  */
0006 
0007 #pragma once
0008 
0009 #include "fetchjob.h"
0010 #include "kgapiblogger_export.h"
0011 
0012 #include <QDateTime>
0013 
0014 namespace KGAPI2
0015 {
0016 namespace Blogger
0017 {
0018 
0019 class KGAPIBLOGGER_EXPORT CommentFetchJob : public KGAPI2::FetchJob
0020 {
0021     Q_OBJECT
0022 
0023     Q_PROPERTY(QDateTime endDate READ endDate WRITE setEndDate)
0024 
0025     Q_PROPERTY(QDateTime startDate READ startDate WRITE setStartDate)
0026 
0027     Q_PROPERTY(bool fetchBodies READ fetchBodies WRITE setFetchBodies)
0028 
0029     Q_PROPERTY(uint maxResults READ maxResults WRITE setMaxResults)
0030 
0031 public:
0032     explicit CommentFetchJob(const QString &blogId, const QString &postId, const AccountPtr &account = AccountPtr(), QObject *parent = nullptr);
0033     explicit CommentFetchJob(const QString &blogId,
0034                              const QString &postId,
0035                              const QString &commentId,
0036                              const AccountPtr &account = AccountPtr(),
0037                              QObject *parent = nullptr);
0038     explicit CommentFetchJob(const QString &blogId, const AccountPtr &account = AccountPtr(), QObject *parent = nullptr);
0039     ~CommentFetchJob() override;
0040 
0041     QDateTime endDate() const;
0042     void setEndDate(const QDateTime &endDate);
0043 
0044     QDateTime startDate() const;
0045     void setStartDate(const QDateTime &startDate);
0046 
0047     bool fetchBodies() const;
0048     void setFetchBodies(bool fetchBodies);
0049 
0050     uint maxResults() const;
0051     void setMaxResults(uint maxResults);
0052 
0053 protected:
0054     void start() override;
0055     ObjectsList handleReplyWithItems(const QNetworkReply *reply, const QByteArray &rawData) override;
0056 
0057 private:
0058     class Private;
0059     Private *const d;
0060     friend class Private;
0061 };
0062 
0063 } // namespace Blogger
0064 } // namespace KGAPI2