Skip to content
Permalink
Browse files

Simplify getLayers method for geonode client.

  • Loading branch information
ismailsunni authored and nyalldawson committed Aug 25, 2017
1 parent bdc3d36 commit 500c5c1108594923a05b14c449a51f445d1e39e8
@@ -39,12 +39,7 @@ class QgsGeoNodeRequest : QObject
:rtype: bool
%End

bool getLayers();
%Docstring
:rtype: bool
%End

QList<QgsServiceLayerDetail> parseLayers( QByteArray layerResponse );
QList<QgsServiceLayerDetail> getLayers();
%Docstring
:rtype: list of QgsServiceLayerDetail
%End
@@ -59,9 +59,15 @@ void QgsGeoNodeRequest::abort()
}
}

bool QgsGeoNodeRequest::getLayers()
QList<QgsServiceLayerDetail> QgsGeoNodeRequest::getLayers()
{
return request( QStringLiteral( "/api/layers/" ) );
QList<QgsServiceLayerDetail> layers;
bool success = request( QStringLiteral( "/api/layers/" ) );
if ( !success )
{
return layers;
}
return parseLayers( this->response() );
}

void QgsGeoNodeRequest::replyProgress( qint64 bytesReceived, qint64 bytesTotal )
@@ -83,7 +89,6 @@ void QgsGeoNodeRequest::setProtocol( const QString &protocol )
mProtocol = protocol;
}


void QgsGeoNodeRequest::replyFinished()
{
QgsMessageLog::logMessage( QStringLiteral( "Reply finished" ), tr( "GeoNode" ) );
@@ -293,19 +298,17 @@ QList<QgsServiceLayerDetail> QgsGeoNodeRequest::parseLayers( QByteArray layerRes
return layers;
}


QStringList QgsGeoNodeRequest::serviceUrls( QString serviceType )
{
QStringList urls;
bool success = getLayers();

if ( !success )
QList<QgsServiceLayerDetail> layers = getLayers();

if ( layers.empty() )
{
return urls;
}

QList<QgsServiceLayerDetail> layers = parseLayers( this->response() );

Q_FOREACH ( QgsServiceLayerDetail layer, layers )
{
QString url;
@@ -339,17 +342,16 @@ QStringList QgsGeoNodeRequest::serviceUrls( QString serviceType )
return urls;
}


QgsStringMap QgsGeoNodeRequest::serviceUrlData( QString serviceType )
{
QgsStringMap urls;
bool success = getLayers();

if ( !success )
QList<QgsServiceLayerDetail> layers = getLayers();

if ( layers.empty() )
{
return urls;
}
QList<QgsServiceLayerDetail> layers = parseLayers( this->response() );

Q_FOREACH ( QgsServiceLayerDetail layer, layers )
{
@@ -386,7 +388,6 @@ QgsStringMap QgsGeoNodeRequest::serviceUrlData( QString serviceType )
return urls;
}


bool QgsGeoNodeRequest::request( QString endPoint )
{
abort();
@@ -49,9 +49,7 @@ class CORE_EXPORT QgsGeoNodeRequest : public QObject

bool request( QString endPoint );

bool getLayers();

QList<QgsServiceLayerDetail> parseLayers( QByteArray layerResponse );
QList<QgsServiceLayerDetail> getLayers();

// Obtain list of unique URL in the geonode
QStringList serviceUrls( QString serviceType );
@@ -71,6 +69,9 @@ class CORE_EXPORT QgsGeoNodeRequest : public QObject
QString getProtocol() const;
void setProtocol( const QString &protocol );

private:
QList<QgsServiceLayerDetail> parseLayers( QByteArray layerResponse );

signals:
//! \brief emit a signal to be caught by qgisapp and display a statusQString on status bar
void statusChanged( const QString &statusQString );
@@ -248,10 +248,11 @@ void QgsGeoNodeNewConnection::testConnection()
QApplication::setOverrideCursor( Qt::BusyCursor );
QString url = txtUrl->text();
QgsGeoNodeRequest geonodeRequest( url, true );
bool success = geonodeRequest.getLayers();

QList<QgsServiceLayerDetail> layers = geonodeRequest.getLayers();
QApplication::restoreOverrideCursor();

if ( success )
if ( !layers.empty() )
{
QMessageBox::information( this,
tr( "Test connection" ),
@@ -194,10 +194,10 @@ void QgsGeoNodeSourceSelect::connectToGeonodeConnection()
QgsGeoNodeRequest geonodeRequest( url, true );

QApplication::setOverrideCursor( Qt::WaitCursor );
bool success = geonodeRequest.getLayers();
QList<QgsServiceLayerDetail> layers = geonodeRequest.getLayers();
QApplication::restoreOverrideCursor();

if ( success )
if ( !layers.empty() )
{
QgsMessageLog::logMessage( QStringLiteral( "Success" ), tr( "GeoNode" ) );
}
@@ -206,10 +206,6 @@ void QgsGeoNodeSourceSelect::connectToGeonodeConnection()
QgsMessageLog::logMessage( QStringLiteral( "Failed" ), tr( "GeoNode" ) );
}

QByteArray ba = geonodeRequest.response();

QList<QgsServiceLayerDetail> layers = geonodeRequest.parseLayers( ba );

if ( mModel )
{
mModel->removeRows( 0, mModel->rowCount() );

0 comments on commit 500c5c1

Please sign in to comment.
You can’t perform that action at this time.