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 "job.h"
0010 #include "kgapiblogger_export.h"
0011 
0012 #include <QDateTime>
0013 
0014 namespace KGAPI2
0015 {
0016 namespace Blogger
0017 {
0018 
0019 class KGAPIBLOGGER_EXPORT PostPublishJob : public KGAPI2::Job
0020 {
0021     Q_OBJECT
0022 public:
0023     enum PublishAction { Publish, Unpublish };
0024 
0025     explicit PostPublishJob(const QString &blogId, const QString &postId, PublishAction action, const AccountPtr &account, QObject *parent = nullptr);
0026     explicit PostPublishJob(const PostPtr &post, PublishAction action, const AccountPtr &account, QObject *parent = nullptr);
0027     explicit PostPublishJob(const QString &blogId, const QString &postId, const QDateTime &publishDate, const AccountPtr &account, QObject *parent = nullptr);
0028     explicit PostPublishJob(const PostPtr &post, const QDateTime &publishDate, const AccountPtr &account, QObject *parent = nullptr);
0029     ~PostPublishJob() override;
0030 
0031     ObjectPtr item() const;
0032 
0033 protected:
0034     void start() override;
0035     void handleReply(const QNetworkReply *reply, const QByteArray &rawData) override;
0036     void dispatchRequest(QNetworkAccessManager *accessManager, const QNetworkRequest &request, const QByteArray &data, const QString &contentType) override;
0037 
0038 private:
0039     class Private;
0040     Private *const d;
0041     friend class Private;
0042 };
0043 }
0044 }