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

#include <Fuoten/API/MarkFolderRead>

Inheritance diagram for MarkFolderRead:
Component

Properties

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

Public Member Functions

 MarkFolderRead (QObject *parent=nullptr)
 ~MarkFolderRead () override
Q_INVOKABLE void execute () override
qint64 folderId () const
qint64 newestItemId () const
void setFolderId (qint64 nFolderId)
void setNewestItemId (qint64 nNewestItemId)
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 newestItemIdChanged (qint64 newestItemId)
void succeeded (qint64 id, qint64 newestItem)
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
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)
virtual bool checkOutput ()
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

Marks all articles in a folder as read on the News App server.

To mark an entire folder as read, you have to set valid values to MarkFolderRead::folderId, MarkFolderRead::newestItemId and Component::configuration. 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::folderMarkedRead() will be called in the successCallback() to update the local storage. If the request succeeded, the MarkFolderRead::succeeded() signal will be emitted, containing the folderId and the newestItemId. If something failed, the Component::failed() signal will be emitted and Component::error will contain a valid pointer to an Error object.

Mandatory properties
MarkFolderRead::folderId, MarkFolderRead::newestItemId, Component::configuration
API route
/folders/{folderId}/read
Method
PUT

Property Documentation

◆ folderId

qint64 folderId
readwrite

The ID of the folder that should be marked as read.

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

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

◆ newestItemId

qint64 newestItemId
readwrite

The ID of the newest item in the folder.

Will mark all items with IDs lower than equal that ID as read. This is meant to prevent marking items as read which the client does not yet know of. This property can not be changed while Component::inOperation() returns true.

Access functions:
qint64newestItemId() const
voidsetNewestItemId(qint64 nNewestItemId)
Notifier signal:
voidnewestItemIdChanged(qint64 newestItemId)

Constructor & Destructor Documentation

◆ MarkFolderRead()

MarkFolderRead ( QObject * parent = nullptr)
explicit

Constructs an API request object with the given parent to mark an entire folder as read on the remote server.

◆ ~MarkFolderRead()

~MarkFolderRead ( )
override

Destroys the MarkFolderRead object.

Member Function Documentation

◆ checkInput()

bool checkInput ( )
overrideprotectedvirtual

Will check for valid folderId and newestItemId.

Will at first perform the checks of Component::checkInput(). Will than simply check if the IDs are not lower or equal to 0.

Reimplemented from Component.

◆ execute()

void execute ( )
overridevirtual

Executes the API request.

To perform a successful API request to mark a folder as read, MarkFolderRead::folderId and MarkFolderRead::newestItemId have to be valid IDs 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 folder to be marked as read.

See also
folderId

◆ folderIdChanged

void folderIdChanged ( qint64 folderId)
signal

This signal is emitted when the ID of the folder to mark as read is changed.

See also
folderId

◆ newestItemId()

qint64 newestItemId ( ) const

Returns the ID of the item that is set to be the newest in the folder.

See also
newestItemId

◆ newestItemIdChanged

void newestItemIdChanged ( qint64 newestItemId)
signal

This signal is emitted when the ID of the newest item in the folder is changed.

See also
newestItemId

◆ setFolderId()

void setFolderId ( qint64 nFolderId)

Sets the ID of the folder to be marked as read.

See also
folderId

◆ setNewestItemId()

void setNewestItemId ( qint64 nNewestItemId)

Sets the ID of the newest item in the folder.

See also
newestItemId

◆ succeeded

void succeeded ( qint64 id,
qint64 newestItem )
signal

This signal will be emitted if the API request was successful.

Will contain the id of the folder that has been marked as read as well as the ID of the newestItem that has been marked as read in this folder.

See also
Component::failed()

◆ successCallback()

void successCallback ( )
overrideprotectedvirtual

Finished the folder marking if the request was successful.

If Component::storage contains a valid pointer, the AbstractStorage::folderMarkedRead() function will be called to update the local storage. After that the Component::inOperation property will be set to false and the succeeded() signal will be emitted.

Implements Component.