libfuoten 0.8.2
Qt based library to access the Nextcloud News App API.
Loading...
Searching...
No Matches
Fuoten::StarItem Class Reference

Stars or unstars an item/article on the remote News App. More...

#include <Fuoten/API/StarItem>

Inheritance diagram for Fuoten::StarItem:
Fuoten::Component QObject

Properties

qint64 feedId
 ID of the feed the item/article to star/unstar belongs to.
QString guidHash
 GUID hash of the item/article to star/unstar.
bool starred
 True if the item/article should be starred, otherwise false.
Properties inherited from Fuoten::Component
Fuoten::AbstractConfigurationconfiguration
 Pointer to an AbstractConfiguration derived object.
Fuoten::Errorerror
 Pointer to an error object, if any error occurred.
bool inOperation
 Returns true while the request is in operation.
Fuoten::AbstractNotificatornotificator
 Pointer to an object derived from AbstractNotificator.
quint16 requestTimeout
 Timeout in seconds for network requests.
Fuoten::AbstractStoragestorage
 Pointer to an AbstractStorage derived object.
bool useStorage
 If true (the default), a local storage should be used in the successCallback() function to further process the request results.
Fuoten::WipeManagerwipeManager
 Pointer to a WipeManager to handle remote wipe requests.

Public Member Functions

 StarItem (qint64 feedId, const QString &guidHash, bool starred, QObject *parent=nullptr)
 Constructs a new StarItem object with the given arguments and parent.
 StarItem (QObject *parent=nullptr)
 Constructs a new StarItem object with default values and the given parent.
 ~StarItem () override
 Destroys the StarItem object.
Q_INVOKABLE void execute () override
 Executes the API request.
qint64 feedId () const
 Getter function for the feedId property.
QString guidHash () const
 Getter function for the guidHash property.
void setFeedId (qint64 nFeedId)
 Setter function for the feedId property. Emits the feedIdChanged() signal if nFeedId is not equal to the stored value. Can not be changed while Component::inOperation returns true.
void setGuidHash (const QString &nGuidHash)
 Setter function for the guidHash property. Emits the guidHashChanged() signal if nGuidHash is not equal to the stored value. Can not be changed while Component::inOperation returns true.
void setStarred (bool nStarred)
 Setter function for the starred property. Emits the starredChanged() signal if nStarred is not equal to the stored value. Can not be changed while Component::inOperation returns true.
bool starred () const
 Getter function for the starred property.
Public Member Functions inherited from Fuoten::Component
 Component (QObject *parent=nullptr)
 Constructs a component with the given parent.
 ~Component () override
 Destroys the Component object.
AbstractConfigurationconfiguration () const
 Returns a pointer to the AbstractConfiguration that is currently set.
Errorerror () const
 Returns a pointer to an Error object, if any error occurred.
bool inOperation () const
 Returns true while the API request is running.
bool isUseStorageEnabled () const
 Getter function for the useStorage property.
AbstractNotificatornotificator () const
 Getter function for the notificator property.
quint16 requestTimeout () const
 Returns the currently set request timeout.
void setConfiguration (AbstractConfiguration *nAbstractConfiguration)
 Sets a pointer to a AbstractConfiguration to use for the API request.
void setNotificator (AbstractNotificator *notificator)
 Setter function for the notificator property.
void setRequestTimeout (quint16 seconds)
 Sets the timeout for the API request in seconds.
void setStorage (AbstractStorage *localStorage)
 Setter function for the storage property.
void setUseStorage (bool useStorage)
 Setter function for the useStorage property.
void setWipeManager (WipeManager *wipeManager)
 Setter function for the wipeManager property.
AbstractStoragestorage () const
 Getter function for the storage property.
WipeManagerwipeManager () const
 Getter function for the wipeManager property.

Signals

void feedIdChanged (qint64 feedId)
 This is emitted if the value of the feedId property changes.
void guidHashChanged (const QString &guidHash)
 This is emitted if the value of the guidHash property changes.
void starredChanged (bool starred)
 This is emitted if the value of the starred property changes.
void succeeded (qint64 feedId, const QString &guidHash, bool starred)
 This signal is emitted if the request to star/unstar an item/article was successful.
Signals inherited from Fuoten::Component
void configurationChanged (Fuoten::AbstractConfiguration *configuration)
 This signal is emitted when the pointer to the AbstractConfiguration object changes.
void errorChanged (Fuoten::Error *error)
 This signal is emitted when the pointer to the Error object changes. error will be a nullptr if no error occurred or the current error has been reset.
void failed (Fuoten::Error *error)
 Emit this signal in a subclass when the request failed for some reason.
void inOperationChanged (bool inOperation)
 This signal is emitted when the in operation status changes.
void notificatorChanged (Fuoten::AbstractNotificator *notificator)
 Notifier signal for the notificator property.
void requestTimeoutChanged (quint16 requestTimeout)
 This signal is emitte when the timeout for the request changes.
void sslErrors (QNetworkReply *reply, const QList< QSslError > &errors)
 This signal is emitted if the SSL/TLS session encountered errors during the set up.
void storageChanged (Fuoten::AbstractStorage *storage)
 Notifier signal for the storage property.
void succeeded (const QJsonDocument &result)
 Emit this signal in a subclass when the request was successful.
void useStorageChanged (bool useStorage)
 Notifier signal for the useStorage property.
void wipeManagerChanged (Fuoten::WipeManager *wipeManager)
 Notifier signal for the wipeManager property.

Protected Member Functions

bool checkInput () override
 Will check for valid feedId and non-empty guidHash.
void extractError (QNetworkReply *reply) override
 Extracts possible errors replied by the News App API.
void successCallback () override
 Finishes the article starring/unstarring if the request was successful.
Protected Member Functions inherited from Fuoten::Component
void addRequestHeader (const QByteArray &headerName, const QByteArray &headerValue)
 Adds a header to the HTTP request.
void addRequestHeaders (const QHash< QByteArray, QByteArray > &headers)
 Adds headers to the HTTP request.
virtual bool checkOutput ()
 Performs basic output checks.
QJsonDocument jsonResult () const
 Returns the JSON result document.
void notify (AbstractNotificator::Type type, QtMsgType severity, const QVariant &data) const
 Checks if a notificator has been set and will use it to notify the user.
void notify (const Error *e) const
 Checks if a notificator has been set and will use it to notify about an occured error.
QHash< QByteArray, QByteArrayrequestHeaders () const
 Returns the currently set HTTP headers for the request.
void sendRequest ()
 Sends the request to the server.
void setApiRoute (const QString &route)
 Sets the API route.
void setApiRoute (const QStringList &routeParts)
 Sets the API route constructed from a route part list.
void setError (Error *nError)
 Sets the pointer of the error property.
void setExpectedJSONType (ExpectedJSONType type)
 Sets the expected JSON type for initial output check.
void setInOperation (bool nInOperation)
 Sets the value of the inOperation property.
void setNetworkOperation (QNetworkAccessManager::Operation operation)
 Sets the operation the network manager should perform for this call.
void setPayload (const QByteArray &payload)
 Sets the payload for the request.
void setPayload (const QJsonObject &payload)
 Sets the payload for the request.
void setRequestHeaders (const QHash< QByteArray, QByteArray > &headers)
 Sets the headers to use for the HTTP request.
void setRequiresAuth (bool reqAuth)
 Set this to true if the request requires authentication.
void setUrlQuery (const QUrlQuery &query)
 Sets the URL query for the request.

Additional Inherited Members

Public Types inherited from Fuoten::Component
enum  ExpectedJSONType : quint8 { Empty = 0 , Array = 1 , Object = 2 }
 Defines the expected JSON type. More...
Static Public Member Functions inherited from Fuoten::Component
static AbstractConfigurationdefaultConfiguration ()
 Returns the global default configuration.
static QNetworkAccessManagerdefaultNam ()
 Returns the global network access manager.
static AbstractNotificatordefaultNotificator ()
 Returns the global default notificator.
static AbstractStoragedefaultStorage ()
 Returns the global default storage.
static WipeManagerdefaultWipeManager ()
 Returns the global default wipe manager.
static AbstractNamFactorynetworkAccessManagerFactory ()
 Returns the currently set network access manager factory.
static void setDefaultConfiguration (AbstractConfiguration *config)
 Sets the global default configuration.
static void setDefaultNam (QNetworkAccessManager *nam)
 Sets the global default network access manager.
static void setDefaultNotificator (AbstractNotificator *notificator)
 Sets the global default notificator.
static void setDefaultStorage (AbstractStorage *storage)
 Sets the global default storage.
static void setDefaultWipeManager (WipeManager *wipeManager)
 Sets the global default wipe manager.
static void setNetworkAccessManagerFactory (AbstractNamFactory *factory)
 Sets the network access manager factory. The factory will be used to create QNetworkAccessManager objects on demand. If no factory is set, a default QNetworkAccessManager object will be created. The Component class will take ownership of the created QNetworkAccessManager.

Detailed Description

Stars or unstars an item/article on the remote News App.

To star or unstar an item/article, you have to set StarItem::feedId to a valid feed ID, StarItem::guidHash to a valid item/article guid hash and Component::configuration to a valid AbstractConfiguration derived object that provides the authentication credentials and server information. 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::itemStarred() will be called in the successCallback() to update the local storage. If the request succeeded, the StarItem::succeeded() signal will be emitted, containing the feedId, the guidHash and the starred status. If something failed, the Component::failed() signal will be emitted and Component::error will contain a valid pointer to an Error object.

Mandatory properties
StarItem::feedId, StarItem::guidHash, Component::configuration
API route
/folders/{feedId}/{guidHash}/{star|unstar}
Method
PUT

Property Documentation

◆ feedId

qint64 Fuoten::StarItem::feedId
readwrite

ID of the feed the item/article to star/unstar belongs to.

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

Access functions:
qint64feedId() const
voidsetFeedId(qint64 nFeedId)
Notifier signal:
voidfeedIdChanged(qint64 feedId)

◆ guidHash

QString Fuoten::StarItem::guidHash
readwrite

GUID hash of the item/article to star/unstar.

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

Access functions:
QStringguidHash() const
voidsetGuidHash(const QString &nGuidHash)
Notifier signal:
voidguidHashChanged(const QString &guidHash)

◆ starred

bool Fuoten::StarItem::starred
readwrite

True if the item/article should be starred, otherwise false.

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

Access functions:
boolstarred() const
voidsetStarred(bool nStarred)
Notifier signal:
voidstarredChanged(bool starred)

Constructor & Destructor Documentation

◆ StarItem() [1/2]

StarItem::StarItem ( QObject * parent = nullptr)
explicit

Constructs a new StarItem object with default values and the given parent.

◆ StarItem() [2/2]

StarItem::StarItem ( qint64 feedId,
const QString & guidHash,
bool starred,
QObject * parent = nullptr )

Constructs a new StarItem object with the given arguments and parent.

◆ ~StarItem()

StarItem::~StarItem ( )
override

Destroys the StarItem object.

Member Function Documentation

◆ checkInput()

bool StarItem::checkInput ( )
overrideprotectedvirtual

Will check for valid feedId and non-empty guidHash.

Will at first perform the checks of Component::checkInput(). Will than simply check if the feedId is not lower or equal to 0 and if the guidHash is not empty.

Reimplemented from Fuoten::Component.

◆ execute()

void StarItem::execute ( )
overridevirtual

Executes the API request.

To perform a successful API request to star or unstar an article/item, StarItem::feedId has to be a valid feed ID, StarItem::guidHash has to be an valid item/article guid hash and there has to be an 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 Fuoten::Component.

◆ extractError()

void StarItem::extractError ( QNetworkReply * reply)
overrideprotectedvirtual

Extracts possible errors replied by the News App API.

Reimplemented from Fuoten::Component.

◆ feedId()

qint64 StarItem::feedId ( ) const

Getter function for the feedId property.

See also
StarItem::setFeedId(), StarItem::feedIdChanged()
Returns
the ID of the feed the item/article that should be starred/unstarred belongs to

◆ feedIdChanged

void Fuoten::StarItem::feedIdChanged ( qint64 feedId)
signal

This is emitted if the value of the feedId property changes.

See also
StarItem::feedId(), StarItem::setFeedId()
Parameters
feedIdID of the feed the item that should be starred/unstarred belongs to

◆ guidHash()

QString StarItem::guidHash ( ) const

Getter function for the guidHash property.

See also
StarItem::setGuidHash(), StarItem::guidHashChanged()
Returns
the GUID hash of the item/article that should be starred/ustarred

◆ guidHashChanged

void Fuoten::StarItem::guidHashChanged ( const QString & guidHash)
signal

This is emitted if the value of the guidHash property changes.

See also
StarItem::guidHash(), StarItem::setGuidHash()
Parameters
guidHashthe GUID hash of the article that should be starred/unstarred

◆ setFeedId()

void StarItem::setFeedId ( qint64 nFeedId)

Setter function for the feedId property. Emits the feedIdChanged() signal if nFeedId is not equal to the stored value. Can not be changed while Component::inOperation returns true.

See also
StarItem::feedId(), StarItem::feedIdChanged()
Parameters
nFeedIdID of the feed the item that should be starred/unstarred belongs to

◆ setGuidHash()

void StarItem::setGuidHash ( const QString & nGuidHash)

Setter function for the guidHash property. Emits the guidHashChanged() signal if nGuidHash is not equal to the stored value. Can not be changed while Component::inOperation returns true.

See also
StarItem::guidHash(), StarItem::guidHashChanged()
Parameters
nGuidHashthe GUID hash of the article that should be starred/unstarred

◆ setStarred()

void StarItem::setStarred ( bool nStarred)

Setter function for the starred property. Emits the starredChanged() signal if nStarred is not equal to the stored value. Can not be changed while Component::inOperation returns true.

See also
StarItem::starred(), StarItem::starredChanged()
Parameters
nStarredtrue if the article should be starred, false if it should be unstarred

◆ starred()

bool StarItem::starred ( ) const

Getter function for the starred property.

See also
StarItem::setStarred(), StarItem::starredChanged()
Returns
true if the item/article should be starred, false if it should be unstarred

◆ starredChanged

void Fuoten::StarItem::starredChanged ( bool starred)
signal

This is emitted if the value of the starred property changes.

See also
StarItem::starred(), StarItem::setStarred()
Parameters
starredtrue if the article should be starred, false if it should be unstarred

◆ succeeded

void Fuoten::StarItem::succeeded ( qint64 feedId,
const QString & guidHash,
bool starred )
signal

This signal is emitted if the request to star/unstar an item/article was successful.

Parameters
feedIdID of the feed the starred/unstarred item/article belongs to
guidHashGUID hash of the item/article that has been starred/unstarred
starredtrue if the article has been starred, false if it has been unstarred

◆ successCallback()

void StarItem::successCallback ( )
overrideprotectedvirtual

Finishes the article starring/unstarring if the request was successful.

If Component::storage contains a valid pointer, the AbstractStorage::itemStarred() 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 Fuoten::Component.


The documentation for this class was generated from the following files:
  • Fuoten/API/staritem.h
  • build/Fuoten/FuotenQt5_autogen/include/moc_staritem.cpp
  • Fuoten/API/staritem.cpp