File indexing completed on 2024-05-12 05:22:12
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 <QStringList> 0013 0014 #include <QDateTime> 0015 0016 namespace KGAPI2 0017 { 0018 namespace Blogger 0019 { 0020 0021 class KGAPIBLOGGER_EXPORT PostFetchJob : public KGAPI2::FetchJob 0022 { 0023 Q_OBJECT 0024 0025 Q_PROPERTY(bool fetchBodies READ fetchBodies WRITE setFetchBodies) 0026 0027 Q_PROPERTY(bool fetchImages READ fetchImages WRITE setFetchImages) 0028 0029 Q_PROPERTY(uint maxResults READ maxResults WRITE setMaxResults) 0030 0031 Q_PROPERTY(QStringList filterLabels READ filterLabels WRITE setFilterLabels) 0032 0033 Q_PROPERTY(QDateTime startDate READ startDate WRITE setStartDate) 0034 0035 Q_PROPERTY(QDateTime endDate READ endDate WRITE setEndDate) 0036 0037 Q_PROPERTY(StatusFilter statusFilter READ statusFilter WRITE setStatusFilter) 0038 0039 Q_FLAGS(StatusFilter) 0040 public: 0041 enum StatusFilter { 0042 Draft = 1, 0043 Live = 2, 0044 Scheduled = 4, 0045 0046 All = Draft | Live | Scheduled 0047 }; 0048 Q_DECLARE_FLAGS(StatusFilters, StatusFilter) 0049 0050 explicit PostFetchJob(const QString &blogId, const AccountPtr &account = AccountPtr(), QObject *parent = nullptr); 0051 explicit PostFetchJob(const QString &blogId, const QString &postId, const AccountPtr &account = AccountPtr(), QObject *parent = nullptr); 0052 ~PostFetchJob() override; 0053 0054 bool fetchBodies() const; 0055 void setFetchBodies(bool fetchBodies); 0056 0057 bool fetchImages() const; 0058 void setFetchImages(bool fetchImages); 0059 0060 uint maxResults() const; 0061 void setMaxResults(uint maxResults); 0062 0063 QStringList filterLabels() const; 0064 void setFilterLabels(const QStringList &labels); 0065 0066 QDateTime startDate() const; 0067 void setStartDate(const QDateTime &startDate); 0068 0069 QDateTime endDate() const; 0070 void setEndDate(const QDateTime &endDate); 0071 0072 void setStatusFilter(StatusFilters filter); 0073 StatusFilters statusFilter() const; 0074 0075 protected: 0076 void start() override; 0077 ObjectsList handleReplyWithItems(const QNetworkReply *reply, const QByteArray &rawData) override; 0078 0079 private: 0080 class Private; 0081 Private *const d; 0082 friend class Private; 0083 }; 0084 } 0085 }