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 "kgapiblogger_export.h"
0010 #include "object.h"
0011 
0012 #include <QDateTime>
0013 
0014 namespace KGAPI2
0015 {
0016 namespace Blogger
0017 {
0018 
0019 class KGAPIBLOGGER_EXPORT Page : public KGAPI2::Object
0020 {
0021 public:
0022     enum Status { UnknownStatus, Draft, Live, Imported };
0023     explicit Page();
0024     ~Page() override;
0025 
0026     QString id() const;
0027     void setId(const QString &id);
0028 
0029     QString blogId() const;
0030     void setBlogId(const QString &blogId);
0031 
0032     QDateTime published() const;
0033     void setPublished(const QDateTime &published);
0034 
0035     QDateTime updated() const;
0036     void setUpdated(const QDateTime &updated);
0037 
0038     QUrl url() const;
0039     void setUrl(const QUrl &url);
0040 
0041     QString title() const;
0042     void setTitle(const QString &title);
0043 
0044     QString content() const;
0045     void setContent(const QString &content);
0046 
0047     QString authorId() const;
0048     QString authorName() const;
0049     QUrl authorUrl() const;
0050     QUrl authorImageUrl() const;
0051 
0052     Status status() const;
0053     void setStatus(Status status);
0054 
0055     static PagePtr fromJSON(const QByteArray &rawData);
0056     static ObjectsList fromJSONFeed(const QByteArray &rawData);
0057     static QByteArray toJSON(const PagePtr &page);
0058 
0059 private:
0060     Q_DISABLE_COPY(Page)
0061 
0062     class Private;
0063     Private *const d;
0064     friend class Private;
0065 };
0066 }
0067 }