libfuoten  0.8.1
Qt based library to access the ownCloud/Nextcloud News App API
Properties | Public Member Functions | Signals | Protected Member Functions | List of all members
GetUpdatedItems Class Reference

#include <Fuoten/API/GetUpdatedItems>

Inheritance diagram for GetUpdatedItems:
Component

Properties

QDateTime lastModified
 
qint64 parentId
 
Fuoten::FuotenEnums::Type type
 
- Properties inherited from Component
Fuoten::AbstractConfiguration configuration
 
Fuoten::Error error
 
bool inOperation
 
Fuoten::AbstractNotificator notificator
 
quint16 requestTimeout
 
Fuoten::AbstractStorage storage
 
bool useStorage
 
Fuoten::WipeManager wipeManager
 

Public Member Functions

 GetUpdatedItems (QObject *parent=nullptr)
 
 GetUpdatedItems (const QDateTime &lastModified, FuotenEnums::Type type, qint64 parentId, QObject *parent=nullptr)
 
 ~GetUpdatedItems () override
 
Q_INVOKABLE void execute () override
 
QDateTime lastModified () const
 
qint64 parentId () const
 
void setLastModified (const QDateTime &nLastModified)
 
void setParentId (qint64 nParentId)
 
void setType (FuotenEnums::Type nType)
 
FuotenEnums::Type type () 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 lastModifiedChanged (const QDateTime &lastModified)
 
void parentIdChanged (qint64 parentId)
 
void typeChanged (FuotenEnums::Type type)
 
- 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 successCallback () override
 
- Protected Member Functions inherited from Component
void addRequestHeader (const QByteArray &headerName, const QByteArray &headerValue)
 
void addRequestHeaders (const QHash< QByteArray, QByteArray > &headers)
 
virtual void extractError (QNetworkReply *reply)
 
QJsonDocument jsonResult () const
 
void notify (const Error *e) const
 
void notify (AbstractNotificator::Type type, QtMsgType severity, const QVariant &data) 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

Requests updated items/articles from the News App API.

To request updated items/articles, the Component::configuration property has to be set to a valid AbstractConfiguration object and a valid timestamp has to be set to GetUpdatedItems::lastModified. 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::itemsRequested will be called in the successCallback() to save the requested items in the local storage. If the request succeeded, the Component::succeeded() signal will be emitted, containing the JSON api reply.

If something failed, Component::failed() will be emitted and the Component::error property will contain a valid pointer to an Error object.

Mandatory properties
Component::configuration, GetUpdatedItems::lastModified
API route
/items/updated
Method
GET
See also
Synchronizer

Property Documentation

◆ lastModified

QDateTime lastModified
readwrite

Return only items with a lastModified timestamp >= this one.

This may also return already existing items whose read or starred status has been changed. This property can not be changed while Component::inOperation() returns true.

Access functions:
QDateTimelastModified() const
voidsetLastModified(const QDateTime &nLastModified)
Notifier signal:
voidlastModifiedChanged(const QDateTime &lastModified)

◆ parentId

qint64 parentId
readwrite

ID of the folder or feed, use 0 for Starred and All.

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

Access functions:
qint64parentId() const
voidsetParentId(qint64 nParentId)
Notifier signal:
voidparentIdChanged(qint64 parentId)

◆ type

FuotenEnums::Type type
readwrite

Type of the query.

Defaults to FuotenEnums::All. This property can not be changed while Component::inOperation() returns true.

Access functions:
FuotenEnums::Typetype() const
voidsetType(FuotenEnums::Type nType)
Notifier signal:
voidtypeChanged(FuotenEnums::Type type)

Constructor & Destructor Documentation

◆ GetUpdatedItems() [1/2]

GetUpdatedItems ( QObject *  parent = nullptr)
explicit

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

◆ GetUpdatedItems() [2/2]

GetUpdatedItems ( const QDateTime &  lastModified,
FuotenEnums::Type  type,
qint64  parentId,
QObject *  parent = nullptr 
)

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

◆ ~GetUpdatedItems()

~GetUpdatedItems ( )
override

Destroys the GetUpdatedItems object.

Member Function Documentation

◆ checkInput()

bool checkInput ( )
overrideprotectedvirtual

Checks for valid input values.

Will at first perfrom the checks from Component::checkInput() and will than check if the values of the properties are in valid ranges.

Reimplemented from Component.

◆ checkOutput()

bool checkOutput ( )
overrideprotectedvirtual

Checks for an items array in the JSON API reply.

Will at first perform the checks from Component::checkOutput() and will than check if the items array is present. Will not check if the array is empty.

Reimplemented from Component.

◆ execute()

void execute ( )
overridevirtual

Executes the API request.

To perform a successful API request, Component::configuration has to be set to a valid AbstractConfiguration object and GetUpdatedItems::lastModified has to contain a valid time.

Execution will not run if Component::inOperation returns true and will itself set that property to true when start to perform the request.

Implements Component.

◆ lastModified()

QDateTime lastModified ( ) const

◆ lastModifiedChanged

void lastModifiedChanged ( const QDateTime &  lastModified)
signal

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

See also
GetUpdatedItems::lastModified(), GetUpdatedItems::setLastModified()

◆ parentId()

qint64 parentId ( ) const

◆ parentIdChanged

void parentIdChanged ( qint64  parentId)
signal

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

See also
GetUpdatedItems::parentId(), GetUpdatedItems::setParentId()

◆ setLastModified()

void setLastModified ( const QDateTime &  nLastModified)

Setter function for the lastModified property. Emits the lastModifiedChanged() signal if nLastModified is not equal to the stored value.

See also
GetUpdatedItems::lastModified(), GetUpdatedItems::lastModifiedChanged()

◆ setParentId()

void setParentId ( qint64  nParentId)

Setter function for the parentId property. Emits the parentIdChanged() signal if nParentId is not equal to the stored value.

See also
GetUpdatedItems::parentId(), GetUpdatedItems::parentIdChanged()

◆ setType()

void setType ( FuotenEnums::Type  nType)

Setter function for the type property. Emits the typeChanged() signal if nType is not equal to the stored value.

See also
GetUpdatedItems::type(), GetUpdatedItems::typeChanged()

◆ successCallback()

void successCallback ( )
overrideprotectedvirtual

Finishes the the operation if the request was successful.

If Component::storage points to a valid object, it will use AbstractStorage::itemsRequested() to store, update and delete the items in the local storage according to the server reply. Afterwards it will set Component::inOperation to false and will emit the Component::succeeded() signal.

Implements Component.

◆ type()

FuotenEnums::Type type ( ) const

Getter function for the type property.

See also
GetUpdatedItems::setType(), GetUpdatedItems::typeChanged()

◆ typeChanged

void typeChanged ( FuotenEnums::Type  type)
signal

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

See also
GetUpdatedItems::type(), GetUpdatedItems::setType()