libfuoten 0.8.1
Qt based library to access the ownCloud/Nextcloud News App API
Loading...
Searching...
No Matches
CreateFeed Class Reference

#include <Fuoten/API/CreateFeed>

Inheritance diagram for CreateFeed:
Component

Properties

qint64 folderId
QUrl url
Properties inherited from Component
Fuoten::AbstractConfigurationconfiguration
Fuoten::Errorerror
bool inOperation
Fuoten::AbstractNotificatornotificator
quint16 requestTimeout
Fuoten::AbstractStoragestorage
bool useStorage
Fuoten::WipeManagerwipeManager

Public Member Functions

 CreateFeed (QObject *parent=nullptr)
 ~CreateFeed () override
Q_INVOKABLE void execute () override
qint64 folderId () const
void setFolderId (qint64 nFolderId)
void setUrl (const QUrl &nUrl)
QUrl url () const
Public Member Functions inherited from Component
 Component (QObject *parent=nullptr)
 ~Component () override
AbstractConfigurationconfiguration () const
Errorerror () const
bool inOperation () const
bool isUseStorageEnabled () const
AbstractNotificatornotificator () const
quint16 requestTimeout () const
void setConfiguration (AbstractConfiguration *nAbstractConfiguration)
void setNotificator (AbstractNotificator *notificator)
void setRequestTimeout (quint16 seconds)
void setStorage (AbstractStorage *localStorage)
void setUseStorage (bool useStorage)
void setWipeManager (WipeManager *wipeManager)
AbstractStoragestorage () const
WipeManagerwipeManager () const

Signals

void folderIdChanged (qint64 folderId)
void urlChanged (const QUrl &url)
Signals inherited from Component
void configurationChanged (Fuoten::AbstractConfiguration *configuration)
void errorChanged (Fuoten::Error *error)
void failed (Fuoten::Error *error)
void inOperationChanged (bool inOperation)
void notificatorChanged (Fuoten::AbstractNotificator *notificator)
void requestTimeoutChanged (quint16 requestTimeout)
void sslErrors (QNetworkReply *reply, const QList< QSslError > &errors)
void storageChanged (Fuoten::AbstractStorage *storage)
void succeeded (const QJsonDocument &result)
void useStorageChanged (bool useStorage)
void wipeManagerChanged (Fuoten::WipeManager *wipeManager)

Protected Member Functions

bool checkInput () override
bool checkOutput () override
void extractError (QNetworkReply *reply) override
void successCallback () override
Protected Member Functions inherited from Component
void addRequestHeader (const QByteArray &headerName, const QByteArray &headerValue)
void addRequestHeaders (const QHash< QByteArray, QByteArray > &headers)
QJsonDocument jsonResult () const
void notify (AbstractNotificator::Type type, QtMsgType severity, const QVariant &data) const
void notify (const Error *e) const
QHash< QByteArray, QByteArray > requestHeaders () const
void sendRequest ()
void setApiRoute (const QString &route)
void setApiRoute (const QStringList &routeParts)
void setError (Error *nError)
void setExpectedJSONType (ExpectedJSONType type)
void setInOperation (bool nInOperation)
void setNetworkOperation (QNetworkAccessManager::Operation operation)
void setPayload (const QByteArray &payload)
void setPayload (const QJsonObject &payload)
void setRequestHeaders (const QHash< QByteArray, QByteArray > &headers)
void setRequiresAuth (bool reqAuth)
void setUrlQuery (const QUrlQuery &query)

Additional Inherited Members

Public Types inherited from Component
enum  ExpectedJSONType : quint8 { Empty = 0 , Array = 1 , Object = 2 }
Static Public Member Functions inherited from Component
static AbstractConfigurationdefaultConfiguration ()
static AbstractNotificatordefaultNotificator ()
static AbstractStoragedefaultStorage ()
static WipeManagerdefaultWipeManager ()
static AbstractNamFactorynetworkAccessManagerFactory ()
static void setDefaultConfiguration (AbstractConfiguration *config)
static void setDefaultNotificator (AbstractNotificator *notificator)
static void setDefaultStorage (AbstractStorage *storage)
static void setDefaultWipeManager (WipeManager *wipeManager)
static void setNetworkAccessManagerFactory (AbstractNamFactory *factory)

Detailed Description

Creates a new feed on the News App server.

To create a new feed, set the CreateFeed::url property to a valid URL string and set the Component::configuration to a valid object. To add the feed to a specific folder, set the CreateFeed::folderId property. Optionally set the Component::storage property to save the newly created feed in a local storage. After setting the mandatory properties, call execute() to perform the API request.

If a valid AbstractStorage object is set to the Component::storage property, AbstractStorage::feedCreated() will be called in the successCallback() to save the new feed in the local storage. If the request succeeded, the Component::succeeded() signal will be emitted, containing the JSON API reply. If something failed, the Component::failed() signal will be emitted and Component::error will contain a valid pointer to an Error object.

Mandatory properties
CreateFeed::url, Component::configuration
API route
/feeds
Method
POST

Property Documentation

◆ folderId

qint64 folderId
readwrite

ID of the parent folder.

This property can not be changed while Component::inOperation() returns true.

Access functions:
qint64folderId() const
voidsetFolderId(qint64 nFolderId)
Notifier signal:
voidfolderIdChanged(qint64 folderId)

◆ url

QUrl url
readwrite

URL of the feed to add.

This property can not be changed while Component::inOperation() returns true.

Access functions:
QStringurl() const
voidsetUrl(const QString &nUrl)
Notifier signal:
voidurlChanged(const QString &url)

Constructor & Destructor Documentation

◆ CreateFeed()

CreateFeed ( QObject * parent = nullptr)
explicit

Constructs an API request object with the given parent to create a feed on the remote server.

◆ ~CreateFeed()

~CreateFeed ( )
override

Destroys the CreateFeed object.

Member Function Documentation

◆ checkInput()

bool checkInput ( )
overrideprotectedvirtual

Checks for a valid folder ID.

This will at first perform the checks of Component::checkInput() and will than simply check if the folder id is greater than zero.

Reimplemented from Component.

◆ checkOutput()

bool checkOutput ( )
overrideprotectedvirtual

Checks if the returned JSON data contain a non-empty feed array.

Will at first perform the checks of Component::checkOutput().

Reimplemented from Component.

◆ execute()

void execute ( )
overridevirtual

Executes the API request.

To perform a successful API request to create a feed, CreateFeed::url has to be a valid URL and there has to be a AbstractConfiguration object set to Component::configuration.

Execution will not run while Component::inOperation returns true and will itself set that property to true when the request starts.

Implements Component.

◆ extractError()

void extractError ( QNetworkReply * reply)
overrideprotectedvirtual

Extracts possible errors replied by the News App API.

Reimplemented from Component.

◆ folderId()

qint64 folderId ( ) const

Returns the ID of the parent folder of the new feed.

See also
folderId

◆ folderIdChanged

void folderIdChanged ( qint64 folderId)
signal

This is emitted if the ID of the parent folder for the new feed changes.

See also
folderId

◆ setFolderId()

void setFolderId ( qint64 nFolderId)

Sets the ID of the parent folder of the new feed.

See also
folderId

◆ setUrl()

void setUrl ( const QUrl & nUrl)

Sets the URL for the new feed.

See also
url

◆ successCallback()

void successCallback ( )
overrideprotectedvirtual

Finishes the folder deletion if the request was successful.

Implements Component.

◆ url()

QUrl url ( ) const

Returns the URL of the feed to add.

See also
url

◆ urlChanged

void urlChanged ( const QUrl & url)
signal

This is emitted if the URL for the new feed changes.

See also
url