mirror of
https://github.com/qgis/QGIS.git
synced 2025-12-15 00:07:25 -05:00
ArcGIS URL's with web proxy prefix support
Support of the ArcGIS server links with WEB Proxy prefixes
This commit is contained in:
parent
080f23b0dc
commit
88ac2056a3
@ -25,7 +25,7 @@ Utility functions for working with ArcGIS REST services.
|
||||
%End
|
||||
public:
|
||||
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0 );
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, const QString &urlPrefix = QString() );
|
||||
%Docstring
|
||||
Retrieves JSON user info for the specified user name.
|
||||
|
||||
@ -36,6 +36,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
:param authcfg: authentication configuration ID
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - JSON user info
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -44,7 +45,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
.. versionadded:: 3.24
|
||||
%End
|
||||
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0 ) /Deprecated/;
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, const QString &urlPrefix = QString() ) /Deprecated/;
|
||||
%Docstring
|
||||
Retrieves JSON user info for the specified user name. Only to avoid API break.
|
||||
|
||||
@ -55,6 +56,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
:param authcfg: authentication configuration ID
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - JSON user info
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -64,7 +66,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
use the version with :py:class:`QgsHttpHeaders` instead
|
||||
%End
|
||||
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0 );
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, const QString &urlPrefix = QString() );
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all groups which the specified user name is a member of.
|
||||
|
||||
@ -75,6 +77,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
:param authcfg: authentication configuration ID
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON group info
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -83,7 +86,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
.. versionadded:: 3.24
|
||||
%End
|
||||
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0 ) /Deprecated/;
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, const QString &urlPrefix = QString() ) /Deprecated/;
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all groups which the specified user name is a member of. Only to avoid API break.
|
||||
|
||||
@ -94,6 +97,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
:param authcfg: authentication configuration ID
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON group info
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -103,7 +107,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
use the version with :py:class:`QgsHttpHeaders` instead
|
||||
%End
|
||||
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, int pageSize = 100 );
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, int pageSize = 100, const QString &urlPrefix = QString() );
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all items which belong the the specified ``groupId``.
|
||||
|
||||
@ -113,6 +117,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param pageSize: number of results to retrieve for each request. Maximum value is 100.
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON item info for all items within the group
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -121,7 +126,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
.. versionadded:: 3.24
|
||||
%End
|
||||
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, int pageSize = 100 ) /Deprecated/;
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, int pageSize = 100, const QString &urlPrefix = QString() ) /Deprecated/;
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all items which belong the the specified ``groupId``. Only to avoid API break.
|
||||
|
||||
@ -131,6 +136,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param pageSize: number of results to retrieve for each request. Maximum value is 100.
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON item info for all items within the group
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -142,7 +148,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
|
||||
static QVariantList retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg,
|
||||
const QList< int > &itemTypes,
|
||||
QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, int pageSize = 100 );
|
||||
QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, int pageSize = 100, const QString &urlPrefix = QString() );
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all items which belong the the specified ``groupId``.
|
||||
|
||||
@ -153,6 +159,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param pageSize: number of results to retrieve for each request. Maximum value is 100.
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON item info for all items within the group
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -163,7 +170,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
|
||||
static QVariantList retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg,
|
||||
const QList< int > &itemTypes,
|
||||
QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, int pageSize = 100 ) /Deprecated/;
|
||||
QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, int pageSize = 100, const QString &urlPrefix = QString() ) /Deprecated/;
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all items which belong the the specified ``groupId``. Only to avoid API break.
|
||||
|
||||
@ -174,6 +181,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param pageSize: number of results to retrieve for each request. Maximum value is 100.
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON item info for all items within the group
|
||||
- errorTitle: title summary of any encountered errors
|
||||
|
||||
@ -25,7 +25,7 @@ Utility functions for working with ArcGIS REST services.
|
||||
%End
|
||||
public:
|
||||
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0 );
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, const QString &urlPrefix = QString() );
|
||||
%Docstring
|
||||
Retrieves JSON user info for the specified user name.
|
||||
|
||||
@ -36,6 +36,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
:param authcfg: authentication configuration ID
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - JSON user info
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -44,7 +45,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
.. versionadded:: 3.24
|
||||
%End
|
||||
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0 ) /Deprecated/;
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, const QString &urlPrefix = QString() ) /Deprecated/;
|
||||
%Docstring
|
||||
Retrieves JSON user info for the specified user name. Only to avoid API break.
|
||||
|
||||
@ -55,6 +56,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
:param authcfg: authentication configuration ID
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - JSON user info
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -64,7 +66,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
use the version with :py:class:`QgsHttpHeaders` instead
|
||||
%End
|
||||
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0 );
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, const QString &urlPrefix = QString() );
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all groups which the specified user name is a member of.
|
||||
|
||||
@ -75,6 +77,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
:param authcfg: authentication configuration ID
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON group info
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -83,7 +86,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
.. versionadded:: 3.24
|
||||
%End
|
||||
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0 ) /Deprecated/;
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, const QString &urlPrefix = QString() ) /Deprecated/;
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all groups which the specified user name is a member of. Only to avoid API break.
|
||||
|
||||
@ -94,6 +97,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
:param authcfg: authentication configuration ID
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON group info
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -103,7 +107,7 @@ If ``user`` is blank then the user associated with the current logon details wil
|
||||
use the version with :py:class:`QgsHttpHeaders` instead
|
||||
%End
|
||||
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, int pageSize = 100 );
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, int pageSize = 100, const QString &urlPrefix = QString() );
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all items which belong the the specified ``groupId``.
|
||||
|
||||
@ -113,6 +117,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param pageSize: number of results to retrieve for each request. Maximum value is 100.
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON item info for all items within the group
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -121,7 +126,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
.. versionadded:: 3.24
|
||||
%End
|
||||
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, int pageSize = 100 ) /Deprecated/;
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, int pageSize = 100, const QString &urlPrefix = QString() ) /Deprecated/;
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all items which belong the the specified ``groupId``. Only to avoid API break.
|
||||
|
||||
@ -131,6 +136,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param pageSize: number of results to retrieve for each request. Maximum value is 100.
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON item info for all items within the group
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -142,7 +148,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
|
||||
static QVariantList retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg,
|
||||
const QList< int > &itemTypes,
|
||||
QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, int pageSize = 100 );
|
||||
QString &errorTitle /Out/, QString &errorText /Out/, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = 0, int pageSize = 100, const QString &urlPrefix = QString() );
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all items which belong the the specified ``groupId``.
|
||||
|
||||
@ -153,6 +159,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param pageSize: number of results to retrieve for each request. Maximum value is 100.
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON item info for all items within the group
|
||||
- errorTitle: title summary of any encountered errors
|
||||
@ -163,7 +170,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
|
||||
static QVariantList retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg,
|
||||
const QList< int > &itemTypes,
|
||||
QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, int pageSize = 100 ) /Deprecated/;
|
||||
QString &errorTitle /Out/, QString &errorText /Out/, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = 0, int pageSize = 100, const QString &urlPrefix = QString() ) /Deprecated/;
|
||||
%Docstring
|
||||
Retrieves JSON definitions for all items which belong the the specified ``groupId``. Only to avoid API break.
|
||||
|
||||
@ -174,6 +181,7 @@ Retrieves JSON definitions for all items which belong the the specified ``groupI
|
||||
:param requestHeaders: optional additional request headers
|
||||
:param feedback: optional feedback argument for cancellation support
|
||||
:param pageSize: number of results to retrieve for each request. Maximum value is 100.
|
||||
:param urlPrefix: http web proxy url prefix
|
||||
|
||||
:return: - a list of JSON item info for all items within the group
|
||||
- errorTitle: title summary of any encountered errors
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
#include <QUrl>
|
||||
#include <QUrlQuery>
|
||||
|
||||
QVariantMap QgsArcGisPortalUtils::retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback )
|
||||
QVariantMap QgsArcGisPortalUtils::retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, const QString &urlPrefix )
|
||||
{
|
||||
QString endPoint = communityUrl;
|
||||
if ( endPoint.endsWith( '/' ) )
|
||||
@ -35,26 +35,26 @@ QVariantMap QgsArcGisPortalUtils::retrieveUserInfo( const QString &communityUrl,
|
||||
query.addQueryItem( QStringLiteral( "f" ), QStringLiteral( "json" ) );
|
||||
queryUrl.setQuery( query );
|
||||
|
||||
return QgsArcGisRestQueryUtils::queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, feedback );
|
||||
return QgsArcGisRestQueryUtils::queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, feedback, urlPrefix );
|
||||
}
|
||||
|
||||
QVariantMap QgsArcGisPortalUtils::retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback )
|
||||
QVariantMap QgsArcGisPortalUtils::retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback, const QString &urlPrefix )
|
||||
{
|
||||
return QgsArcGisPortalUtils::retrieveUserInfo( communityUrl, user, authcfg, errorTitle, errorText, QgsHttpHeaders( requestHeaders ), feedback );
|
||||
return QgsArcGisPortalUtils::retrieveUserInfo( communityUrl, user, authcfg, errorTitle, errorText, QgsHttpHeaders( requestHeaders ), feedback, urlPrefix );
|
||||
}
|
||||
|
||||
QVariantList QgsArcGisPortalUtils::retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback )
|
||||
QVariantList QgsArcGisPortalUtils::retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, const QString &urlPrefix )
|
||||
{
|
||||
const QVariantMap info = retrieveUserInfo( communityUrl, user, authcfg, errorTitle, errorText, requestHeaders, feedback );
|
||||
const QVariantMap info = retrieveUserInfo( communityUrl, user, authcfg, errorTitle, errorText, requestHeaders, feedback, urlPrefix );
|
||||
return info.value( QStringLiteral( "groups" ) ).toList();
|
||||
}
|
||||
|
||||
QVariantList QgsArcGisPortalUtils::retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback )
|
||||
QVariantList QgsArcGisPortalUtils::retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback, const QString &urlPrefix )
|
||||
{
|
||||
return QgsArcGisPortalUtils::retrieveUserGroups( communityUrl, user, authcfg, errorTitle, errorText, QgsHttpHeaders( requestHeaders ), feedback );
|
||||
return QgsArcGisPortalUtils::retrieveUserGroups( communityUrl, user, authcfg, errorTitle, errorText, QgsHttpHeaders( requestHeaders ), feedback, urlPrefix );
|
||||
}
|
||||
|
||||
QVariantList QgsArcGisPortalUtils::retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, int pageSize )
|
||||
QVariantList QgsArcGisPortalUtils::retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, int pageSize, const QString &urlPrefix )
|
||||
{
|
||||
QString endPoint = contentUrl;
|
||||
if ( endPoint.endsWith( '/' ) )
|
||||
@ -74,7 +74,7 @@ QVariantList QgsArcGisPortalUtils::retrieveGroupContent( const QString &contentU
|
||||
query.addQueryItem( QStringLiteral( "num" ), QString::number( pageSize ) );
|
||||
queryUrl.setQuery( query );
|
||||
|
||||
const QVariantMap response = QgsArcGisRestQueryUtils::queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, feedback );
|
||||
const QVariantMap response = QgsArcGisRestQueryUtils::queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, feedback, urlPrefix );
|
||||
if ( !errorText.isEmpty() )
|
||||
return QVariantList();
|
||||
|
||||
@ -91,14 +91,14 @@ QVariantList QgsArcGisPortalUtils::retrieveGroupContent( const QString &contentU
|
||||
return items;
|
||||
}
|
||||
|
||||
QVariantList QgsArcGisPortalUtils::retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle, QString &errorText, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback, int pageSize )
|
||||
QVariantList QgsArcGisPortalUtils::retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle, QString &errorText, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback, int pageSize, const QString &urlPrefix )
|
||||
{
|
||||
return QgsArcGisPortalUtils::retrieveGroupContent( contentUrl, groupId, authcfg, errorTitle, errorText, QgsHttpHeaders( requestHeaders ), feedback, pageSize );
|
||||
return QgsArcGisPortalUtils::retrieveGroupContent( contentUrl, groupId, authcfg, errorTitle, errorText, QgsHttpHeaders( requestHeaders ), feedback, pageSize, urlPrefix );
|
||||
}
|
||||
|
||||
QVariantList QgsArcGisPortalUtils::retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg, const QList<int> &itemTypes, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, int pageSize )
|
||||
QVariantList QgsArcGisPortalUtils::retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg, const QList<int> &itemTypes, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, int pageSize, const QString &urlPrefix )
|
||||
{
|
||||
const QVariantList items = retrieveGroupContent( contentUrl, groupId, authcfg, errorTitle, errorText, requestHeaders, feedback, pageSize );
|
||||
const QVariantList items = retrieveGroupContent( contentUrl, groupId, authcfg, errorTitle, errorText, requestHeaders, feedback, pageSize, urlPrefix );
|
||||
|
||||
// filter results to desired types
|
||||
QVariantList result;
|
||||
@ -119,9 +119,9 @@ QVariantList QgsArcGisPortalUtils::retrieveGroupItemsOfType( const QString &cont
|
||||
return result;
|
||||
}
|
||||
|
||||
QVariantList QgsArcGisPortalUtils::retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg, const QList<int> &itemTypes, QString &errorTitle, QString &errorText, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback, int pageSize )
|
||||
QVariantList QgsArcGisPortalUtils::retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg, const QList<int> &itemTypes, QString &errorTitle, QString &errorText, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback, int pageSize, const QString &urlPrefix )
|
||||
{
|
||||
return QgsArcGisPortalUtils::retrieveGroupItemsOfType( contentUrl, groupId, authcfg, itemTypes, errorTitle, errorText, QgsHttpHeaders( requestHeaders ), feedback, pageSize );
|
||||
return QgsArcGisPortalUtils::retrieveGroupItemsOfType( contentUrl, groupId, authcfg, itemTypes, errorTitle, errorText, QgsHttpHeaders( requestHeaders ), feedback, pageSize, urlPrefix );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -50,11 +50,12 @@ class CORE_EXPORT QgsArcGisPortalUtils
|
||||
* \param errorText error text of any encountered errors
|
||||
* \param requestHeaders optional additional request headers
|
||||
* \param feedback optional feedback argument for cancellation support
|
||||
* \param urlPrefix http web proxy url prefix
|
||||
*
|
||||
* \returns JSON user info
|
||||
* \since QGIS 3.24
|
||||
*/
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr );
|
||||
static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Retrieves JSON user info for the specified user name. Only to avoid API break.
|
||||
@ -68,11 +69,12 @@ class CORE_EXPORT QgsArcGisPortalUtils
|
||||
* \param errorText error text of any encountered errors
|
||||
* \param requestHeaders optional additional request headers
|
||||
* \param feedback optional feedback argument for cancellation support
|
||||
* \param urlPrefix http web proxy url prefix
|
||||
*
|
||||
* \returns JSON user info
|
||||
* \deprecated since QGIS 3.24, use the version with QgsHttpHeaders instead
|
||||
*/
|
||||
Q_DECL_DEPRECATED static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = nullptr ) SIP_DEPRECATED;
|
||||
Q_DECL_DEPRECATED static QVariantMap retrieveUserInfo( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = nullptr, const QString &urlPrefix = QString() ) SIP_DEPRECATED;
|
||||
|
||||
/**
|
||||
* Retrieves JSON definitions for all groups which the specified user name is a member of.
|
||||
@ -86,11 +88,12 @@ class CORE_EXPORT QgsArcGisPortalUtils
|
||||
* \param errorText error text of any encountered errors
|
||||
* \param requestHeaders optional additional request headers
|
||||
* \param feedback optional feedback argument for cancellation support
|
||||
* \param urlPrefix http web proxy url prefix
|
||||
*
|
||||
* \returns a list of JSON group info
|
||||
* \since QGIS 3.24
|
||||
*/
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr );
|
||||
static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Retrieves JSON definitions for all groups which the specified user name is a member of. Only to avoid API break.
|
||||
@ -104,11 +107,12 @@ class CORE_EXPORT QgsArcGisPortalUtils
|
||||
* \param errorText error text of any encountered errors
|
||||
* \param requestHeaders optional additional request headers
|
||||
* \param feedback optional feedback argument for cancellation support
|
||||
* \param urlPrefix http web proxy url prefix
|
||||
*
|
||||
* \returns a list of JSON group info
|
||||
* \deprecated since QGIS 3.24, use the version with QgsHttpHeaders instead
|
||||
*/
|
||||
Q_DECL_DEPRECATED static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = nullptr ) SIP_DEPRECATED;
|
||||
Q_DECL_DEPRECATED static QVariantList retrieveUserGroups( const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = nullptr, const QString &urlPrefix = QString() ) SIP_DEPRECATED;
|
||||
|
||||
/**
|
||||
* Retrieves JSON definitions for all items which belong the the specified \a groupId.
|
||||
@ -121,11 +125,12 @@ class CORE_EXPORT QgsArcGisPortalUtils
|
||||
* \param requestHeaders optional additional request headers
|
||||
* \param feedback optional feedback argument for cancellation support
|
||||
* \param pageSize number of results to retrieve for each request. Maximum value is 100.
|
||||
* \param urlPrefix http web proxy url prefix
|
||||
*
|
||||
* \returns a list of JSON item info for all items within the group
|
||||
* \since QGIS 3.24
|
||||
*/
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, int pageSize = 100 );
|
||||
static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, int pageSize = 100, const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Retrieves JSON definitions for all items which belong the the specified \a groupId. Only to avoid API break.
|
||||
@ -138,11 +143,12 @@ class CORE_EXPORT QgsArcGisPortalUtils
|
||||
* \param requestHeaders optional additional request headers
|
||||
* \param feedback optional feedback argument for cancellation support
|
||||
* \param pageSize number of results to retrieve for each request. Maximum value is 100.
|
||||
* \param urlPrefix http web proxy url prefix
|
||||
*
|
||||
* \returns a list of JSON item info for all items within the group
|
||||
* \deprecated since QGIS 3.24, use the version with QgsHttpHeaders instead
|
||||
*/
|
||||
Q_DECL_DEPRECATED static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = nullptr, int pageSize = 100 ) SIP_DEPRECATED;
|
||||
Q_DECL_DEPRECATED static QVariantList retrieveGroupContent( const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = nullptr, int pageSize = 100, const QString &urlPrefix = QString() ) SIP_DEPRECATED;
|
||||
|
||||
/**
|
||||
* Retrieves JSON definitions for all items which belong the the specified \a groupId.
|
||||
@ -156,13 +162,14 @@ class CORE_EXPORT QgsArcGisPortalUtils
|
||||
* \param requestHeaders optional additional request headers
|
||||
* \param feedback optional feedback argument for cancellation support
|
||||
* \param pageSize number of results to retrieve for each request. Maximum value is 100.
|
||||
* \param urlPrefix http web proxy url prefix
|
||||
*
|
||||
* \returns a list of JSON item info for all items within the group
|
||||
* \since QGIS 3.24
|
||||
*/
|
||||
static QVariantList retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg,
|
||||
const QList< int > &itemTypes,
|
||||
QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, int pageSize = 100 );
|
||||
QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, int pageSize = 100, const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Retrieves JSON definitions for all items which belong the the specified \a groupId. Only to avoid API break.
|
||||
@ -176,13 +183,14 @@ class CORE_EXPORT QgsArcGisPortalUtils
|
||||
* \param requestHeaders optional additional request headers
|
||||
* \param feedback optional feedback argument for cancellation support
|
||||
* \param pageSize number of results to retrieve for each request. Maximum value is 100.
|
||||
* \param urlPrefix http web proxy url prefix
|
||||
*
|
||||
* \returns a list of JSON item info for all items within the group
|
||||
* \deprecated since QGIS 3.24, use the version with QgsHttpHeaders instead
|
||||
*/
|
||||
Q_DECL_DEPRECATED static QVariantList retrieveGroupItemsOfType( const QString &contentUrl, const QString &groupId, const QString &authcfg,
|
||||
const QList< int > &itemTypes,
|
||||
QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = nullptr, int pageSize = 100 ) SIP_DEPRECATED;
|
||||
QString &errorTitle SIP_OUT, QString &errorText SIP_OUT, const QMap< QString, QVariant > &requestHeaders, QgsFeedback *feedback = nullptr, int pageSize = 100, const QString &urlPrefix = QString() ) SIP_DEPRECATED;
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@ -29,27 +29,27 @@
|
||||
#include <QRegularExpression>
|
||||
#include <QJsonParseError>
|
||||
|
||||
QVariantMap QgsArcGisRestQueryUtils::getServiceInfo( const QString &baseurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders )
|
||||
QVariantMap QgsArcGisRestQueryUtils::getServiceInfo( const QString &baseurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, const QString &urlPrefix )
|
||||
{
|
||||
// http://sampleserver5.arcgisonline.com/arcgis/rest/services/Energy/Geology/FeatureServer?f=json
|
||||
QUrl queryUrl( baseurl );
|
||||
QUrlQuery query( queryUrl );
|
||||
query.addQueryItem( QStringLiteral( "f" ), QStringLiteral( "json" ) );
|
||||
queryUrl.setQuery( query );
|
||||
return queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders );
|
||||
return queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, nullptr, urlPrefix );
|
||||
}
|
||||
|
||||
QVariantMap QgsArcGisRestQueryUtils::getLayerInfo( const QString &layerurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders )
|
||||
QVariantMap QgsArcGisRestQueryUtils::getLayerInfo( const QString &layerurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, const QString &urlPrefix )
|
||||
{
|
||||
// http://sampleserver5.arcgisonline.com/arcgis/rest/services/Energy/Geology/FeatureServer/1?f=json
|
||||
QUrl queryUrl( layerurl );
|
||||
QUrlQuery query( queryUrl );
|
||||
query.addQueryItem( QStringLiteral( "f" ), QStringLiteral( "json" ) );
|
||||
queryUrl.setQuery( query );
|
||||
return queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders );
|
||||
return queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, nullptr, urlPrefix );
|
||||
}
|
||||
|
||||
QVariantMap QgsArcGisRestQueryUtils::getObjectIds( const QString &layerurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, const QgsRectangle &bbox, const QString &whereClause )
|
||||
QVariantMap QgsArcGisRestQueryUtils::getObjectIds( const QString &layerurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, const QString &urlPrefix, const QgsRectangle &bbox, const QString &whereClause )
|
||||
{
|
||||
// http://sampleserver5.arcgisonline.com/arcgis/rest/services/Energy/Geology/FeatureServer/1/query?where=1%3D1&returnIdsOnly=true&f=json
|
||||
QUrl queryUrl( layerurl + "/query" );
|
||||
@ -66,10 +66,10 @@ QVariantMap QgsArcGisRestQueryUtils::getObjectIds( const QString &layerurl, cons
|
||||
query.addQueryItem( QStringLiteral( "spatialRel" ), QStringLiteral( "esriSpatialRelEnvelopeIntersects" ) );
|
||||
}
|
||||
queryUrl.setQuery( query );
|
||||
return queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders );
|
||||
return queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, nullptr, urlPrefix );
|
||||
}
|
||||
|
||||
QgsRectangle QgsArcGisRestQueryUtils::getExtent( const QString &layerurl, const QString &whereClause, const QString &authcfg, const QgsHttpHeaders &requestHeaders )
|
||||
QgsRectangle QgsArcGisRestQueryUtils::getExtent( const QString &layerurl, const QString &whereClause, const QString &authcfg, const QgsHttpHeaders &requestHeaders, const QString &urlPrefix )
|
||||
{
|
||||
// http://sampleserver5.arcgisonline.com/arcgis/rest/services/Energy/Geology/FeatureServer/1/query?where=1%3D1&returnExtentOnly=true&f=json
|
||||
QUrl queryUrl( layerurl + "/query" );
|
||||
@ -80,7 +80,7 @@ QgsRectangle QgsArcGisRestQueryUtils::getExtent( const QString &layerurl, const
|
||||
queryUrl.setQuery( query );
|
||||
QString errorTitle;
|
||||
QString errorText;
|
||||
const QVariantMap res = queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders );
|
||||
const QVariantMap res = queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, nullptr, urlPrefix );
|
||||
if ( res.isEmpty() )
|
||||
{
|
||||
QgsDebugError( QStringLiteral( "getExtent failed: %1 - %2" ).arg( errorTitle, errorText ) );
|
||||
@ -94,7 +94,7 @@ QVariantMap QgsArcGisRestQueryUtils::getObjects( const QString &layerurl, const
|
||||
bool fetchGeometry, const QStringList &fetchAttributes,
|
||||
bool fetchM, bool fetchZ,
|
||||
const QgsRectangle &filterRect,
|
||||
QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback )
|
||||
QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, const QString &urlPrefix )
|
||||
{
|
||||
QStringList ids;
|
||||
for ( const int id : objectIds )
|
||||
@ -129,10 +129,10 @@ QVariantMap QgsArcGisRestQueryUtils::getObjects( const QString &layerurl, const
|
||||
query.addQueryItem( QStringLiteral( "spatialRel" ), QStringLiteral( "esriSpatialRelEnvelopeIntersects" ) );
|
||||
}
|
||||
queryUrl.setQuery( query );
|
||||
return queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, feedback );
|
||||
return queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, feedback, urlPrefix );
|
||||
}
|
||||
|
||||
QList<quint32> QgsArcGisRestQueryUtils::getObjectIdsByExtent( const QString &layerurl, const QgsRectangle &filterRect, QString &errorTitle, QString &errorText, const QString &authcfg, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, const QString &whereClause )
|
||||
QList<quint32> QgsArcGisRestQueryUtils::getObjectIdsByExtent( const QString &layerurl, const QgsRectangle &filterRect, QString &errorTitle, QString &errorText, const QString &authcfg, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, const QString &whereClause, const QString &urlPrefix )
|
||||
{
|
||||
QUrl queryUrl( layerurl + "/query" );
|
||||
QUrlQuery query( queryUrl );
|
||||
@ -145,7 +145,7 @@ QList<quint32> QgsArcGisRestQueryUtils::getObjectIdsByExtent( const QString &lay
|
||||
query.addQueryItem( QStringLiteral( "geometryType" ), QStringLiteral( "esriGeometryEnvelope" ) );
|
||||
query.addQueryItem( QStringLiteral( "spatialRel" ), QStringLiteral( "esriSpatialRelEnvelopeIntersects" ) );
|
||||
queryUrl.setQuery( query );
|
||||
const QVariantMap objectIdData = queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, feedback );
|
||||
const QVariantMap objectIdData = queryServiceJSON( queryUrl, authcfg, errorTitle, errorText, requestHeaders, feedback, urlPrefix );
|
||||
|
||||
if ( objectIdData.isEmpty() )
|
||||
{
|
||||
@ -162,9 +162,12 @@ QList<quint32> QgsArcGisRestQueryUtils::getObjectIdsByExtent( const QString &lay
|
||||
return ids;
|
||||
}
|
||||
|
||||
QByteArray QgsArcGisRestQueryUtils::queryService( const QUrl &u, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, QString *contentType )
|
||||
QByteArray QgsArcGisRestQueryUtils::queryService( const QUrl &u, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, QString *contentType, const QString &urlPrefix )
|
||||
{
|
||||
const QUrl url = parseUrl( u );
|
||||
QUrl url = parseUrl( u );
|
||||
|
||||
if ( !urlPrefix.isEmpty() )
|
||||
url = QUrl( urlPrefix + url.toString() );
|
||||
|
||||
QNetworkRequest request( url );
|
||||
QgsSetRequestInitiatorClass( request, QStringLiteral( "QgsArcGisRestUtils" ) );
|
||||
@ -202,9 +205,9 @@ QByteArray QgsArcGisRestQueryUtils::queryService( const QUrl &u, const QString &
|
||||
return content.content();
|
||||
}
|
||||
|
||||
QVariantMap QgsArcGisRestQueryUtils::queryServiceJSON( const QUrl &url, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback )
|
||||
QVariantMap QgsArcGisRestQueryUtils::queryServiceJSON( const QUrl &url, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders, QgsFeedback *feedback, const QString &urlPrefix )
|
||||
{
|
||||
const QByteArray reply = queryService( url, authcfg, errorTitle, errorText, requestHeaders, feedback );
|
||||
const QByteArray reply = queryService( url, authcfg, errorTitle, errorText, requestHeaders, feedback, nullptr, urlPrefix );
|
||||
if ( !errorTitle.isEmpty() )
|
||||
{
|
||||
return QVariantMap();
|
||||
@ -512,10 +515,13 @@ QgsArcGisAsyncQuery::~QgsArcGisAsyncQuery()
|
||||
mReply->deleteLater();
|
||||
}
|
||||
|
||||
void QgsArcGisAsyncQuery::start( const QUrl &url, const QString &authCfg, QByteArray *result, bool allowCache, const QgsHttpHeaders &headers )
|
||||
void QgsArcGisAsyncQuery::start( const QUrl &url, const QString &authCfg, QByteArray *result, bool allowCache, const QgsHttpHeaders &headers, const QString &urlPrefix )
|
||||
{
|
||||
mResult = result;
|
||||
QNetworkRequest request( url );
|
||||
QUrl mUrl = url;
|
||||
if ( !urlPrefix.isEmpty() )
|
||||
mUrl = QUrl( urlPrefix + url.toString() );
|
||||
QNetworkRequest request( mUrl );
|
||||
|
||||
headers.updateNetworkRequest( request );
|
||||
|
||||
|
||||
@ -51,17 +51,17 @@ class CORE_EXPORT QgsArcGisRestQueryUtils
|
||||
/**
|
||||
* Retrieves JSON service info for the specified base URL.
|
||||
*/
|
||||
static QVariantMap getServiceInfo( const QString &baseurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders() );
|
||||
static QVariantMap getServiceInfo( const QString &baseurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Retrieves JSON layer info for the specified layer URL.
|
||||
*/
|
||||
static QVariantMap getLayerInfo( const QString &layerurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders() );
|
||||
static QVariantMap getLayerInfo( const QString &layerurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Retrieves all object IDs for the specified layer URL.
|
||||
*/
|
||||
static QVariantMap getObjectIds( const QString &layerurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(),
|
||||
static QVariantMap getObjectIds( const QString &layerurl, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), const QString &urlPrefix = QString(),
|
||||
const QgsRectangle &bbox = QgsRectangle(),
|
||||
const QString &whereClause = QString() );
|
||||
|
||||
@ -71,30 +71,30 @@ class CORE_EXPORT QgsArcGisRestQueryUtils
|
||||
*
|
||||
* \since QGIS 3.28
|
||||
*/
|
||||
static QgsRectangle getExtent( const QString &layerurl, const QString &whereClause, const QString &authcfg, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders() );
|
||||
static QgsRectangle getExtent( const QString &layerurl, const QString &whereClause, const QString &authcfg, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Retrieves all matching objects from the specified layer URL.
|
||||
*/
|
||||
static QVariantMap getObjects( const QString &layerurl, const QString &authcfg, const QList<quint32> &objectIds, const QString &crs,
|
||||
bool fetchGeometry, const QStringList &fetchAttributes, bool fetchM, bool fetchZ,
|
||||
const QgsRectangle &filterRect, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr );
|
||||
const QgsRectangle &filterRect, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Gets a list of object IDs which fall within the specified extent.
|
||||
*/
|
||||
static QList<quint32> getObjectIdsByExtent( const QString &layerurl, const QgsRectangle &filterRect, QString &errorTitle, QString &errorText, const QString &authcfg, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr,
|
||||
const QString &whereClause = QString() );
|
||||
const QString &whereClause = QString(), const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Performs a blocking request to a URL and returns the retrieved data.
|
||||
*/
|
||||
static QByteArray queryService( const QUrl &url, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, QString *contentType = nullptr );
|
||||
static QByteArray queryService( const QUrl &url, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, QString *contentType = nullptr, const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Performs a blocking request to a URL and returns the retrieved JSON content.
|
||||
*/
|
||||
static QVariantMap queryServiceJSON( const QUrl &url, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr );
|
||||
static QVariantMap queryServiceJSON( const QUrl &url, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders = QgsHttpHeaders(), QgsFeedback *feedback = nullptr, const QString &urlPrefix = QString() );
|
||||
|
||||
/**
|
||||
* Calls the specified \a visitor function on all folder items found within the given service data.
|
||||
@ -131,7 +131,7 @@ class CORE_EXPORT QgsArcGisAsyncQuery : public QObject
|
||||
QgsArcGisAsyncQuery( QObject *parent = nullptr );
|
||||
~QgsArcGisAsyncQuery() override;
|
||||
|
||||
void start( const QUrl &url, const QString &authCfg, QByteArray *result, bool allowCache = false, const QgsHttpHeaders &headers = QgsHttpHeaders() );
|
||||
void start( const QUrl &url, const QString &authCfg, QByteArray *result, bool allowCache = false, const QgsHttpHeaders &headers = QgsHttpHeaders(), const QString &urlPrefix = QString() );
|
||||
signals:
|
||||
void finished();
|
||||
void failed( QString errorTitle, QString errorName );
|
||||
|
||||
@ -51,6 +51,7 @@ const QgsSettingsEntryString *QgsArcGisConnectionSettings::settingsAuthcfg = new
|
||||
const QgsSettingsEntryString *QgsArcGisConnectionSettings::settingsUsername = new QgsSettingsEntryString( QStringLiteral( "username" ), sTreeConnectionArcgis );
|
||||
const QgsSettingsEntryString *QgsArcGisConnectionSettings::settingsPassword = new QgsSettingsEntryString( QStringLiteral( "password" ), sTreeConnectionArcgis );
|
||||
const QgsSettingsEntryVariantMap *QgsArcGisConnectionSettings::settingsHeaders = new QgsSettingsEntryVariantMap( QStringLiteral( "http-header" ), sTreeConnectionArcgis );
|
||||
const QgsSettingsEntryString *QgsArcGisConnectionSettings::settingsUrlPrefix = new QgsSettingsEntryString( QStringLiteral( "urlprefix" ), sTreeConnectionArcgis );
|
||||
const QgsSettingsEntryString *QgsArcGisConnectionSettings::settingsContentEndpoint = new QgsSettingsEntryString( QStringLiteral( "content-endpoint" ), sTreeConnectionArcgis );
|
||||
const QgsSettingsEntryString *QgsArcGisConnectionSettings::settingsCommunityEndpoint = new QgsSettingsEntryString( QStringLiteral( "community-endpoint" ), sTreeConnectionArcgis );
|
||||
|
||||
|
||||
@ -79,6 +79,7 @@ class CORE_EXPORT QgsArcGisConnectionSettings SIP_SKIP
|
||||
static const QgsSettingsEntryVariantMap *settingsHeaders;
|
||||
static const QgsSettingsEntryString *settingsContentEndpoint;
|
||||
static const QgsSettingsEntryString *settingsCommunityEndpoint;
|
||||
static const QgsSettingsEntryString *settingsUrlPrefix;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -46,13 +46,14 @@ QgsAfsProvider::QgsAfsProvider( const QString &uri, const ProviderOptions &optio
|
||||
QString errorTitle, errorMessage;
|
||||
|
||||
mRequestHeaders = mSharedData->mDataSource.httpHeaders();
|
||||
const QString &urlPrefix = mSharedData->mDataSource.param( QStringLiteral( "urlprefix" ) );
|
||||
|
||||
std::unique_ptr< QgsScopedRuntimeProfile > profile;
|
||||
if ( QgsApplication::profiler()->groupIsActive( QStringLiteral( "projectload" ) ) )
|
||||
profile = std::make_unique< QgsScopedRuntimeProfile >( tr( "Retrieve service definition" ), QStringLiteral( "projectload" ) );
|
||||
|
||||
const QVariantMap layerData = QgsArcGisRestQueryUtils::getLayerInfo( mSharedData->mDataSource.param( QStringLiteral( "url" ) ),
|
||||
authcfg, errorTitle, errorMessage, mRequestHeaders );
|
||||
authcfg, errorTitle, errorMessage, mRequestHeaders, urlPrefix );
|
||||
if ( layerData.isEmpty() )
|
||||
{
|
||||
pushError( errorTitle + ": " + errorMessage );
|
||||
@ -75,7 +76,7 @@ QgsAfsProvider::QgsAfsProvider( const QString &uri, const ProviderOptions &optio
|
||||
{
|
||||
adminUrl.replace( QLatin1String( "/rest/services/" ), QLatin1String( "/rest/admin/services/" ) );
|
||||
const QVariantMap adminData = QgsArcGisRestQueryUtils::getLayerInfo( adminUrl,
|
||||
authcfg, errorTitle, errorMessage, mRequestHeaders );
|
||||
authcfg, errorTitle, errorMessage, mRequestHeaders, urlPrefix );
|
||||
if ( !adminData.isEmpty() )
|
||||
{
|
||||
mAdminUrl = adminUrl;
|
||||
|
||||
@ -110,7 +110,7 @@ bool QgsAfsSharedData::getObjectIds( QString &errorMessage )
|
||||
QString errorTitle;
|
||||
QString error;
|
||||
QVariantMap objectIdData = QgsArcGisRestQueryUtils::getObjectIds( mDataSource.param( QStringLiteral( "url" ) ), mDataSource.authConfigId(),
|
||||
errorTitle, error, mDataSource.httpHeaders(), mLimitBBox ? mExtent : QgsRectangle(), mDataSource.sql() );
|
||||
errorTitle, error, mDataSource.httpHeaders(), mDataSource.param( QStringLiteral( "urlprefix" ) ), mLimitBBox ? mExtent : QgsRectangle(), mDataSource.sql() );
|
||||
if ( objectIdData.isEmpty() )
|
||||
{
|
||||
errorMessage = QObject::tr( "getObjectIds failed: %1 - %2" ).arg( errorTitle, error );
|
||||
@ -205,7 +205,7 @@ bool QgsAfsSharedData::getFeature( QgsFeatureId id, QgsFeature &f, const QgsRect
|
||||
queryData = QgsArcGisRestQueryUtils::getObjects(
|
||||
mDataSource.param( QStringLiteral( "url" ) ), authcfg, objectIds, mDataSource.param( QStringLiteral( "crs" ) ), true,
|
||||
QStringList(), QgsWkbTypes::hasM( mGeometryType ), QgsWkbTypes::hasZ( mGeometryType ),
|
||||
filterRect, errorTitle, errorMessage, mDataSource.httpHeaders(), feedback );
|
||||
filterRect, errorTitle, errorMessage, mDataSource.httpHeaders(), feedback, mDataSource.param( QStringLiteral( "urlprefix" ) ) );
|
||||
|
||||
if ( feedback && feedback->isCanceled() )
|
||||
{
|
||||
@ -306,7 +306,7 @@ QgsFeatureIds QgsAfsSharedData::getFeatureIdsInExtent( const QgsRectangle &exten
|
||||
|
||||
const QString authcfg = mDataSource.authConfigId();
|
||||
const QList<quint32> objectIdsInRect = QgsArcGisRestQueryUtils::getObjectIdsByExtent( mDataSource.param( QStringLiteral( "url" ) ),
|
||||
extent, errorTitle, errorText, authcfg, mDataSource.httpHeaders(), feedback, mDataSource.sql() );
|
||||
extent, errorTitle, errorText, authcfg, mDataSource.httpHeaders(), feedback, mDataSource.sql(), mDataSource.param( QStringLiteral( "urlprefix" ) ) );
|
||||
|
||||
QgsReadWriteLocker locker( mReadWriteLock, QgsReadWriteLocker::Read );
|
||||
QgsFeatureIds ids;
|
||||
|
||||
@ -81,12 +81,13 @@ void QgsAmsLegendFetcher::start()
|
||||
// http://sampleserver5.arcgisonline.com/arcgis/rest/services/CommunityAddressing/MapServer/legend?f=pjson
|
||||
QgsDataSourceUri dataSource( mProvider->dataSourceUri() );
|
||||
const QString authCfg = dataSource.authConfigId();
|
||||
const QString urlPrefix = dataSource.param( QStringLiteral( "urlprefix" ) );
|
||||
|
||||
QUrl queryUrl( dataSource.param( QStringLiteral( "url" ) ) + "/legend" );
|
||||
QUrlQuery query( queryUrl );
|
||||
query.addQueryItem( QStringLiteral( "f" ), QStringLiteral( "json" ) );
|
||||
queryUrl.setQuery( query );
|
||||
mQuery->start( queryUrl, authCfg, &mQueryReply, false, dataSource.httpHeaders() );
|
||||
mQuery->start( queryUrl, authCfg, &mQueryReply, false, dataSource.httpHeaders(), urlPrefix );
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -118,6 +119,7 @@ void QgsAmsLegendFetcher::handleFinished()
|
||||
QVariantMap queryResults = doc.object().toVariantMap();
|
||||
QgsDataSourceUri dataSource( mProvider->dataSourceUri() );
|
||||
QVector< QPair<QString, QImage> > legendEntries;
|
||||
|
||||
const QVariantList layersList = queryResults.value( QStringLiteral( "layers" ) ).toList();
|
||||
for ( const QVariant &result : layersList )
|
||||
{
|
||||
@ -189,6 +191,7 @@ QgsAmsProvider::QgsAmsProvider( const QString &uri, const ProviderOptions &optio
|
||||
{
|
||||
QgsDataSourceUri dataSource( dataSourceUri() );
|
||||
mRequestHeaders = dataSource.httpHeaders();
|
||||
mUrlPrefix = dataSource.param( QStringLiteral( "urlprefix" ) );
|
||||
|
||||
mLegendFetcher = new QgsAmsLegendFetcher( this, QImage() );
|
||||
|
||||
@ -197,7 +200,7 @@ QgsAmsProvider::QgsAmsProvider( const QString &uri, const ProviderOptions &optio
|
||||
|
||||
const QString serviceUrl = dataSource.param( QStringLiteral( "url" ) );
|
||||
if ( !serviceUrl.isEmpty() )
|
||||
mServiceInfo = QgsArcGisRestQueryUtils::getServiceInfo( serviceUrl, authcfg, mErrorTitle, mError, mRequestHeaders );
|
||||
mServiceInfo = QgsArcGisRestQueryUtils::getServiceInfo( serviceUrl, authcfg, mErrorTitle, mError, mRequestHeaders, mUrlPrefix );
|
||||
|
||||
QString layerUrl;
|
||||
if ( dataSource.param( QStringLiteral( "layer" ) ).isEmpty() )
|
||||
@ -210,7 +213,7 @@ QgsAmsProvider::QgsAmsProvider( const QString &uri, const ProviderOptions &optio
|
||||
else
|
||||
{
|
||||
layerUrl = dataSource.param( QStringLiteral( "url" ) ) + "/" + dataSource.param( QStringLiteral( "layer" ) );
|
||||
mLayerInfo = QgsArcGisRestQueryUtils::getLayerInfo( layerUrl, authcfg, mErrorTitle, mError, mRequestHeaders );
|
||||
mLayerInfo = QgsArcGisRestQueryUtils::getLayerInfo( layerUrl, authcfg, mErrorTitle, mError, mRequestHeaders, mUrlPrefix );
|
||||
}
|
||||
|
||||
QVariantMap extentData;
|
||||
@ -330,6 +333,7 @@ QgsAmsProvider::QgsAmsProvider( const QgsAmsProvider &other, const QgsDataProvid
|
||||
, mMaxImageHeight( other.mMaxImageHeight )
|
||||
, mLayerMetadata( other.mLayerMetadata )
|
||||
, mResolutions( other.mResolutions )
|
||||
, mUrlPrefix( other.mUrlPrefix )
|
||||
// intentionally omitted:
|
||||
// - mErrorTitle
|
||||
// - mError
|
||||
@ -702,7 +706,7 @@ QImage QgsAmsProvider::draw( const QgsRectangle &viewExtent, int pixelWidth, int
|
||||
cmp.center = viewExtent.center();
|
||||
std::sort( requestsFinal.begin(), requestsFinal.end(), cmp );
|
||||
|
||||
QgsAmsTiledImageDownloadHandler handler( authcfg, mRequestHeaders, mTileReqNo, requestsFinal, &image, viewExtent, feedback );
|
||||
QgsAmsTiledImageDownloadHandler handler( authcfg, mRequestHeaders, mTileReqNo, requestsFinal, &image, viewExtent, feedback, mUrlPrefix );
|
||||
handler.downloadBlocking();
|
||||
}
|
||||
|
||||
@ -751,7 +755,7 @@ QImage QgsAmsProvider::draw( const QgsRectangle &viewExtent, int pixelWidth, int
|
||||
mError.clear();
|
||||
mErrorTitle.clear();
|
||||
QString contentType;
|
||||
QByteArray reply = QgsArcGisRestQueryUtils::queryService( requestUrl, authcfg, mErrorTitle, mError, mRequestHeaders, feedback, &contentType );
|
||||
QByteArray reply = QgsArcGisRestQueryUtils::queryService( requestUrl, authcfg, mErrorTitle, mError, mRequestHeaders, feedback, &contentType, mUrlPrefix );
|
||||
if ( !mError.isEmpty() )
|
||||
{
|
||||
p.end();
|
||||
@ -935,7 +939,7 @@ bool QgsAmsProvider::readBlock( int /*bandNo*/, const QgsRectangle &viewExtent,
|
||||
// QgsAmsTiledImageDownloadHandler
|
||||
//
|
||||
|
||||
QgsAmsTiledImageDownloadHandler::QgsAmsTiledImageDownloadHandler( const QString &auth, const QgsHttpHeaders &requestHeaders, int tileReqNo, const QgsAmsProvider::TileRequests &requests, QImage *image, const QgsRectangle &viewExtent, QgsRasterBlockFeedback *feedback )
|
||||
QgsAmsTiledImageDownloadHandler::QgsAmsTiledImageDownloadHandler( const QString &auth, const QgsHttpHeaders &requestHeaders, int tileReqNo, const QgsAmsProvider::TileRequests &requests, QImage *image, const QgsRectangle &viewExtent, QgsRasterBlockFeedback *feedback, const QString &urlPrefix )
|
||||
: mAuth( auth )
|
||||
, mRequestHeaders( requestHeaders )
|
||||
, mImage( image )
|
||||
@ -943,6 +947,7 @@ QgsAmsTiledImageDownloadHandler::QgsAmsTiledImageDownloadHandler( const QString
|
||||
, mEventLoop( new QEventLoop )
|
||||
, mTileReqNo( tileReqNo )
|
||||
, mFeedback( feedback )
|
||||
, mUrlPrefix( urlPrefix )
|
||||
{
|
||||
if ( feedback )
|
||||
{
|
||||
|
||||
@ -161,6 +161,7 @@ class QgsAmsProvider : public QgsRasterDataProvider
|
||||
int mMaxImageHeight = 4096;
|
||||
QgsLayerMetadata mLayerMetadata;
|
||||
QList< double > mResolutions;
|
||||
QString mUrlPrefix;
|
||||
|
||||
/**
|
||||
* Resets cached image
|
||||
@ -174,7 +175,7 @@ class QgsAmsTiledImageDownloadHandler : public QObject
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
QgsAmsTiledImageDownloadHandler( const QString &auth, const QgsHttpHeaders &requestHeaders, int reqNo, const QgsAmsProvider::TileRequests &requests, QImage *image, const QgsRectangle &viewExtent, QgsRasterBlockFeedback *feedback );
|
||||
QgsAmsTiledImageDownloadHandler( const QString &auth, const QgsHttpHeaders &requestHeaders, int reqNo, const QgsAmsProvider::TileRequests &requests, QImage *image, const QgsRectangle &viewExtent, QgsRasterBlockFeedback *feedback, const QString &urlPrefix );
|
||||
~QgsAmsTiledImageDownloadHandler() override;
|
||||
|
||||
void downloadBlocking();
|
||||
@ -218,6 +219,7 @@ class QgsAmsTiledImageDownloadHandler : public QObject
|
||||
QList<QNetworkReply *> mReplies;
|
||||
|
||||
QgsRasterBlockFeedback *mFeedback = nullptr;
|
||||
QString mUrlPrefix;
|
||||
};
|
||||
|
||||
class QgsAmsProviderMetadata: public QgsProviderMetadata
|
||||
|
||||
@ -72,36 +72,36 @@ void QgsArcGisRestRootItem::onConnectionsChanged()
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void addFolderItems( QVector< QgsDataItem * > &items, const QVariantMap &serviceData, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, QgsDataItem *parent,
|
||||
void addFolderItems( QVector< QgsDataItem * > &items, const QVariantMap &serviceData, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix, QgsDataItem *parent,
|
||||
const QString &supportedFormats )
|
||||
{
|
||||
QgsArcGisRestQueryUtils::visitFolderItems( [parent, &baseUrl, &items, headers, authcfg, supportedFormats]( const QString & name, const QString & url )
|
||||
QgsArcGisRestQueryUtils::visitFolderItems( [parent, &baseUrl, &items, headers, urlPrefix, authcfg, supportedFormats]( const QString & name, const QString & url )
|
||||
{
|
||||
std::unique_ptr< QgsArcGisRestFolderItem > folderItem = std::make_unique< QgsArcGisRestFolderItem >( parent, name, url, baseUrl, authcfg, headers );
|
||||
std::unique_ptr< QgsArcGisRestFolderItem > folderItem = std::make_unique< QgsArcGisRestFolderItem >( parent, name, url, baseUrl, authcfg, headers, urlPrefix );
|
||||
folderItem->setSupportedFormats( supportedFormats );
|
||||
items.append( folderItem.release() );
|
||||
}, serviceData, baseUrl );
|
||||
}
|
||||
|
||||
void addServiceItems( QVector< QgsDataItem * > &items, const QVariantMap &serviceData, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, QgsDataItem *parent,
|
||||
void addServiceItems( QVector< QgsDataItem * > &items, const QVariantMap &serviceData, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix, QgsDataItem *parent,
|
||||
const QString &supportedFormats )
|
||||
{
|
||||
QgsArcGisRestQueryUtils::visitServiceItems(
|
||||
[&items, parent, authcfg, headers, supportedFormats]( const QString & name, const QString & url, Qgis::ArcGisRestServiceType serviceType )
|
||||
[&items, parent, authcfg, headers, urlPrefix, supportedFormats]( const QString & name, const QString & url, Qgis::ArcGisRestServiceType serviceType )
|
||||
{
|
||||
switch ( serviceType )
|
||||
{
|
||||
case Qgis::ArcGisRestServiceType::MapServer:
|
||||
case Qgis::ArcGisRestServiceType::ImageServer:
|
||||
{
|
||||
std::unique_ptr< QgsArcGisMapServiceItem > serviceItem = std::make_unique< QgsArcGisMapServiceItem >( parent, name, url, url, authcfg, headers, serviceType );
|
||||
std::unique_ptr< QgsArcGisMapServiceItem > serviceItem = std::make_unique< QgsArcGisMapServiceItem >( parent, name, url, url, authcfg, headers, urlPrefix, serviceType );
|
||||
items.append( serviceItem.release() );
|
||||
break;
|
||||
}
|
||||
|
||||
case Qgis::ArcGisRestServiceType::FeatureServer:
|
||||
{
|
||||
std::unique_ptr< QgsArcGisFeatureServiceItem > serviceItem = std::make_unique< QgsArcGisFeatureServiceItem >( parent, name, url, url, authcfg, headers );
|
||||
std::unique_ptr< QgsArcGisFeatureServiceItem > serviceItem = std::make_unique< QgsArcGisFeatureServiceItem >( parent, name, url, url, authcfg, headers, urlPrefix );
|
||||
serviceItem->setSupportedFormats( supportedFormats );
|
||||
items.append( serviceItem.release() );
|
||||
break;
|
||||
@ -116,13 +116,13 @@ void addServiceItems( QVector< QgsDataItem * > &items, const QVariantMap &servic
|
||||
}, serviceData, baseUrl );
|
||||
}
|
||||
|
||||
void addLayerItems( QVector< QgsDataItem * > &items, const QVariantMap &serviceData, const QString &parentUrl, const QString &authcfg, const QgsHttpHeaders &headers, QgsDataItem *parent, QgsArcGisRestQueryUtils::ServiceTypeFilter serviceTypeFilter,
|
||||
void addLayerItems( QVector< QgsDataItem * > &items, const QVariantMap &serviceData, const QString &parentUrl, const QString &authcfg, const QgsHttpHeaders &headers, const QString urlPrefix, QgsDataItem *parent, QgsArcGisRestQueryUtils::ServiceTypeFilter serviceTypeFilter,
|
||||
const QString &supportedFormats )
|
||||
{
|
||||
QMultiMap< QString, QgsDataItem * > layerItems;
|
||||
QMap< QString, QString > parents;
|
||||
|
||||
QgsArcGisRestQueryUtils::addLayerItems( [parent, &layerItems, &parents, authcfg, headers, serviceTypeFilter, supportedFormats]( const QString & parentLayerId, QgsArcGisRestQueryUtils::ServiceTypeFilter serviceType, Qgis::GeometryType geometryType, const QString & id, const QString & name, const QString & description, const QString & url, bool isParent, const QString & authid, const QString & format )
|
||||
QgsArcGisRestQueryUtils::addLayerItems( [parent, &layerItems, &parents, authcfg, headers, urlPrefix, serviceTypeFilter, supportedFormats]( const QString & parentLayerId, QgsArcGisRestQueryUtils::ServiceTypeFilter serviceType, Qgis::GeometryType geometryType, const QString & id, const QString & name, const QString & description, const QString & url, bool isParent, const QString & authid, const QString & format )
|
||||
{
|
||||
Q_UNUSED( description )
|
||||
|
||||
@ -133,7 +133,7 @@ void addLayerItems( QVector< QgsDataItem * > &items, const QVariantMap &serviceD
|
||||
{
|
||||
if ( !layerItems.value( id ) )
|
||||
{
|
||||
std::unique_ptr< QgsArcGisRestParentLayerItem > layerItem = std::make_unique< QgsArcGisRestParentLayerItem >( parent, name, url, authcfg, headers );
|
||||
std::unique_ptr< QgsArcGisRestParentLayerItem > layerItem = std::make_unique< QgsArcGisRestParentLayerItem >( parent, name, url, authcfg, headers, urlPrefix );
|
||||
layerItems.insert( id, layerItem.release() );
|
||||
}
|
||||
}
|
||||
@ -143,14 +143,14 @@ void addLayerItems( QVector< QgsDataItem * > &items, const QVariantMap &serviceD
|
||||
switch ( serviceTypeFilter == QgsArcGisRestQueryUtils::ServiceTypeFilter::AllTypes ? serviceType : serviceTypeFilter )
|
||||
{
|
||||
case QgsArcGisRestQueryUtils::ServiceTypeFilter::Vector:
|
||||
layerItem = std::make_unique< QgsArcGisFeatureServiceLayerItem >( parent, name, url, name, authid, authcfg, headers, geometryType == Qgis::GeometryType::Polygon ? Qgis::BrowserLayerType::Polygon :
|
||||
layerItem = std::make_unique< QgsArcGisFeatureServiceLayerItem >( parent, name, url, name, authid, authcfg, headers, urlPrefix, geometryType == Qgis::GeometryType::Polygon ? Qgis::BrowserLayerType::Polygon :
|
||||
geometryType == Qgis::GeometryType::Line ? Qgis::BrowserLayerType::Line
|
||||
: geometryType == Qgis::GeometryType::Point ? Qgis::BrowserLayerType::Point :
|
||||
geometryType == Qgis::GeometryType::Null ? Qgis::BrowserLayerType::TableLayer : Qgis::BrowserLayerType::Vector );
|
||||
break;
|
||||
|
||||
case QgsArcGisRestQueryUtils::ServiceTypeFilter::Raster:
|
||||
layerItem = std::make_unique< QgsArcGisMapServiceLayerItem >( parent, name, url, id, name, authid, format, authcfg, headers );
|
||||
layerItem = std::make_unique< QgsArcGisMapServiceLayerItem >( parent, name, url, id, name, authid, format, authcfg, headers, urlPrefix );
|
||||
static_cast< QgsArcGisMapServiceLayerItem * >( layerItem.get() )->setSupportedFormats( supportedFormats );
|
||||
break;
|
||||
|
||||
@ -197,18 +197,19 @@ QVector<QgsDataItem *> QgsArcGisRestConnectionItem::createChildren()
|
||||
const QString url = QgsArcGisConnectionSettings::settingsUrl->value( mConnName );
|
||||
const QString authcfg = QgsArcGisConnectionSettings::settingsAuthcfg->value( mConnName );
|
||||
|
||||
QgsHttpHeaders headers( QgsArcGisConnectionSettings::settingsHeaders->value() );
|
||||
QgsHttpHeaders headers( QgsArcGisConnectionSettings::settingsHeaders->value( mConnName ) );
|
||||
const QString urlPrefix = QgsArcGisConnectionSettings::settingsUrlPrefix->value( mConnName );
|
||||
|
||||
QVector<QgsDataItem *> items;
|
||||
if ( !mPortalCommunityEndpoint.isEmpty() && !mPortalContentEndpoint.isEmpty() )
|
||||
{
|
||||
items << new QgsArcGisPortalGroupsItem( this, QStringLiteral( "groups" ), authcfg, headers, mPortalCommunityEndpoint, mPortalContentEndpoint );
|
||||
items << new QgsArcGisRestServicesItem( this, url, QStringLiteral( "services" ), authcfg, headers );
|
||||
items << new QgsArcGisPortalGroupsItem( this, QStringLiteral( "groups" ), authcfg, headers, urlPrefix, mPortalCommunityEndpoint, mPortalContentEndpoint );
|
||||
items << new QgsArcGisRestServicesItem( this, url, QStringLiteral( "services" ), authcfg, headers, urlPrefix );
|
||||
}
|
||||
else
|
||||
{
|
||||
QString errorTitle, errorMessage;
|
||||
const QVariantMap serviceData = QgsArcGisRestQueryUtils::getServiceInfo( url, authcfg, errorTitle, errorMessage, headers );
|
||||
const QVariantMap serviceData = QgsArcGisRestQueryUtils::getServiceInfo( url, authcfg, errorTitle, errorMessage, headers, urlPrefix );
|
||||
if ( serviceData.isEmpty() )
|
||||
{
|
||||
if ( !errorMessage.isEmpty() )
|
||||
@ -221,9 +222,9 @@ QVector<QgsDataItem *> QgsArcGisRestConnectionItem::createChildren()
|
||||
return items;
|
||||
}
|
||||
|
||||
addFolderItems( items, serviceData, url, authcfg, headers, this, QString() );
|
||||
addServiceItems( items, serviceData, url, authcfg, headers, this, QString() );
|
||||
addLayerItems( items, serviceData, url, authcfg, headers, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::AllTypes, QString() );
|
||||
addFolderItems( items, serviceData, url, authcfg, headers, urlPrefix, this, QString() );
|
||||
addServiceItems( items, serviceData, url, authcfg, headers, urlPrefix, this, QString() );
|
||||
addLayerItems( items, serviceData, url, authcfg, headers, urlPrefix, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::AllTypes, QString() );
|
||||
}
|
||||
|
||||
return items;
|
||||
@ -245,10 +246,11 @@ QString QgsArcGisRestConnectionItem::url() const
|
||||
// QgsArcGisPortalGroupsItem
|
||||
//
|
||||
|
||||
QgsArcGisPortalGroupsItem::QgsArcGisPortalGroupsItem( QgsDataItem *parent, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers, const QString &communityEndpoint, const QString &contentEndpoint )
|
||||
QgsArcGisPortalGroupsItem::QgsArcGisPortalGroupsItem( QgsDataItem *parent, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix, const QString &communityEndpoint, const QString &contentEndpoint )
|
||||
: QgsDataCollectionItem( parent, tr( "Groups" ), path, QStringLiteral( "AFS" ) )
|
||||
, mAuthCfg( authcfg )
|
||||
, mHeaders( headers )
|
||||
, mUrlPrefix( urlPrefix )
|
||||
, mPortalCommunityEndpoint( communityEndpoint )
|
||||
, mPortalContentEndpoint( contentEndpoint )
|
||||
{
|
||||
@ -282,7 +284,7 @@ QVector<QgsDataItem *> QgsArcGisPortalGroupsItem::createChildren()
|
||||
const QVariantMap groupData = group.toMap();
|
||||
items << new QgsArcGisPortalGroupItem( this, groupData.value( QStringLiteral( "id" ) ).toString(),
|
||||
groupData.value( QStringLiteral( "title" ) ).toString(),
|
||||
mAuthCfg, mHeaders, mPortalCommunityEndpoint, mPortalContentEndpoint );
|
||||
mAuthCfg, mHeaders, mUrlPrefix, mPortalCommunityEndpoint, mPortalContentEndpoint );
|
||||
items.last()->setToolTip( groupData.value( QStringLiteral( "snippet" ) ).toString() );
|
||||
}
|
||||
|
||||
@ -299,11 +301,12 @@ bool QgsArcGisPortalGroupsItem::equal( const QgsDataItem *other )
|
||||
//
|
||||
// QgsArcGisPortalGroupItem
|
||||
//
|
||||
QgsArcGisPortalGroupItem::QgsArcGisPortalGroupItem( QgsDataItem *parent, const QString &groupId, const QString &name, const QString &authcfg, const QgsHttpHeaders &headers, const QString &communityEndpoint, const QString &contentEndpoint )
|
||||
QgsArcGisPortalGroupItem::QgsArcGisPortalGroupItem( QgsDataItem *parent, const QString &groupId, const QString &name, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix, const QString &communityEndpoint, const QString &contentEndpoint )
|
||||
: QgsDataCollectionItem( parent, name, groupId, QStringLiteral( "AFS" ) )
|
||||
, mId( groupId )
|
||||
, mAuthCfg( authcfg )
|
||||
, mHeaders( headers )
|
||||
, mUrlPrefix( urlPrefix )
|
||||
, mPortalCommunityEndpoint( communityEndpoint )
|
||||
, mPortalContentEndpoint( contentEndpoint )
|
||||
{
|
||||
@ -342,13 +345,13 @@ QVector<QgsDataItem *> QgsArcGisPortalGroupItem::createChildren()
|
||||
{
|
||||
items << new QgsArcGisFeatureServiceItem( this, itemData.value( QStringLiteral( "title" ) ).toString(),
|
||||
itemData.value( QStringLiteral( "url" ) ).toString(),
|
||||
itemData.value( QStringLiteral( "url" ) ).toString(), mAuthCfg, mHeaders );
|
||||
itemData.value( QStringLiteral( "url" ) ).toString(), mAuthCfg, mHeaders, mUrlPrefix );
|
||||
}
|
||||
else
|
||||
{
|
||||
items << new QgsArcGisMapServiceItem( this, itemData.value( QStringLiteral( "title" ) ).toString(),
|
||||
itemData.value( QStringLiteral( "url" ) ).toString(),
|
||||
itemData.value( QStringLiteral( "url" ) ).toString(), mAuthCfg, mHeaders, itemData.value( QStringLiteral( "type" ) ).toString().compare( QStringLiteral( "Map Service" ), Qt::CaseInsensitive ) == 0 ? Qgis::ArcGisRestServiceType::MapServer : Qgis::ArcGisRestServiceType::ImageServer );
|
||||
itemData.value( QStringLiteral( "url" ) ).toString(), mAuthCfg, mHeaders, mUrlPrefix, itemData.value( QStringLiteral( "type" ) ).toString().compare( QStringLiteral( "Map Service" ), Qt::CaseInsensitive ) == 0 ? Qgis::ArcGisRestServiceType::MapServer : Qgis::ArcGisRestServiceType::ImageServer );
|
||||
}
|
||||
}
|
||||
|
||||
@ -366,11 +369,12 @@ bool QgsArcGisPortalGroupItem::equal( const QgsDataItem *other )
|
||||
// QgsArcGisRestServicesItem
|
||||
//
|
||||
|
||||
QgsArcGisRestServicesItem::QgsArcGisRestServicesItem( QgsDataItem *parent, const QString &url, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers )
|
||||
QgsArcGisRestServicesItem::QgsArcGisRestServicesItem( QgsDataItem *parent, const QString &url, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers, const QString urlPrefix )
|
||||
: QgsDataCollectionItem( parent, tr( "Services" ), path, QStringLiteral( "AFS" ) )
|
||||
, mUrl( url )
|
||||
, mAuthCfg( authcfg )
|
||||
, mHeaders( headers )
|
||||
, mUrlPrefix( urlPrefix )
|
||||
{
|
||||
mIconName = QStringLiteral( "mIconDbSchema.svg" );
|
||||
mCapabilities |= Qgis::BrowserItemCapability::Collapse;
|
||||
@ -380,7 +384,7 @@ QVector<QgsDataItem *> QgsArcGisRestServicesItem::createChildren()
|
||||
{
|
||||
QVector<QgsDataItem *> items;
|
||||
QString errorTitle, errorMessage;
|
||||
const QVariantMap serviceData = QgsArcGisRestQueryUtils::getServiceInfo( mUrl, mAuthCfg, errorTitle, errorMessage, mHeaders );
|
||||
const QVariantMap serviceData = QgsArcGisRestQueryUtils::getServiceInfo( mUrl, mAuthCfg, errorTitle, errorMessage, mHeaders, mUrlPrefix );
|
||||
if ( serviceData.isEmpty() )
|
||||
{
|
||||
if ( !errorMessage.isEmpty() )
|
||||
@ -393,9 +397,9 @@ QVector<QgsDataItem *> QgsArcGisRestServicesItem::createChildren()
|
||||
return items;
|
||||
}
|
||||
|
||||
addFolderItems( items, serviceData, mUrl, mAuthCfg, mHeaders, this, QString() );
|
||||
addServiceItems( items, serviceData, mUrl, mAuthCfg, mHeaders, this, QString() );
|
||||
addLayerItems( items, serviceData, mUrl, mAuthCfg, mHeaders, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::AllTypes, QString() );
|
||||
addFolderItems( items, serviceData, mUrl, mAuthCfg, mHeaders, mUrlPrefix, this, QString() );
|
||||
addServiceItems( items, serviceData, mUrl, mAuthCfg, mHeaders, mUrlPrefix, this, QString() );
|
||||
addLayerItems( items, serviceData, mUrl, mAuthCfg, mHeaders, mUrlPrefix, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::AllTypes, QString() );
|
||||
return items;
|
||||
}
|
||||
|
||||
@ -410,11 +414,12 @@ bool QgsArcGisRestServicesItem::equal( const QgsDataItem *other )
|
||||
//
|
||||
// QgsArcGisRestFolderItem
|
||||
//
|
||||
QgsArcGisRestFolderItem::QgsArcGisRestFolderItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers )
|
||||
QgsArcGisRestFolderItem::QgsArcGisRestFolderItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix )
|
||||
: QgsDataCollectionItem( parent, name, path, QStringLiteral( "AFS" ) )
|
||||
, mBaseUrl( baseUrl )
|
||||
, mAuthCfg( authcfg )
|
||||
, mHeaders( headers )
|
||||
, mUrlPrefix( urlPrefix )
|
||||
{
|
||||
mIconName = QStringLiteral( "mIconDbSchema.svg" );
|
||||
mCapabilities |= Qgis::BrowserItemCapability::Collapse;
|
||||
@ -446,9 +451,9 @@ QVector<QgsDataItem *> QgsArcGisRestFolderItem::createChildren()
|
||||
return items;
|
||||
}
|
||||
|
||||
addFolderItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, this, mSupportedFormats );
|
||||
addServiceItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, this, mSupportedFormats );
|
||||
addLayerItems( items, serviceData, mPath, mAuthCfg, mHeaders, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::Vector, mSupportedFormats );
|
||||
addFolderItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, mUrlPrefix, this, mSupportedFormats );
|
||||
addServiceItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, mUrlPrefix, this, mSupportedFormats );
|
||||
addLayerItems( items, serviceData, mPath, mAuthCfg, mHeaders, mUrlPrefix, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::Vector, mSupportedFormats );
|
||||
return items;
|
||||
}
|
||||
|
||||
@ -461,11 +466,12 @@ bool QgsArcGisRestFolderItem::equal( const QgsDataItem *other )
|
||||
//
|
||||
// QgsArcGisFeatureServiceItem
|
||||
//
|
||||
QgsArcGisFeatureServiceItem::QgsArcGisFeatureServiceItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers )
|
||||
QgsArcGisFeatureServiceItem::QgsArcGisFeatureServiceItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix )
|
||||
: QgsDataCollectionItem( parent, name, path, QStringLiteral( "AFS" ) )
|
||||
, mBaseUrl( baseUrl )
|
||||
, mAuthCfg( authcfg )
|
||||
, mHeaders( headers )
|
||||
, mUrlPrefix( urlPrefix )
|
||||
{
|
||||
mIconName = QStringLiteral( "mIconDbSchema.svg" );
|
||||
mCapabilities |= Qgis::BrowserItemCapability::Collapse;
|
||||
@ -483,7 +489,7 @@ QVector<QgsDataItem *> QgsArcGisFeatureServiceItem::createChildren()
|
||||
|
||||
QVector<QgsDataItem *> items;
|
||||
QString errorTitle, errorMessage;
|
||||
const QVariantMap serviceData = QgsArcGisRestQueryUtils::getServiceInfo( url, mAuthCfg, errorTitle, errorMessage, mHeaders );
|
||||
const QVariantMap serviceData = QgsArcGisRestQueryUtils::getServiceInfo( url, mAuthCfg, errorTitle, errorMessage, mHeaders, mUrlPrefix );
|
||||
if ( serviceData.isEmpty() )
|
||||
{
|
||||
if ( !errorMessage.isEmpty() )
|
||||
@ -496,9 +502,9 @@ QVector<QgsDataItem *> QgsArcGisFeatureServiceItem::createChildren()
|
||||
return items;
|
||||
}
|
||||
|
||||
addFolderItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, this, mSupportedFormats );
|
||||
addServiceItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, this, mSupportedFormats );
|
||||
addLayerItems( items, serviceData, mPath, mAuthCfg, mHeaders, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::Vector, mSupportedFormats );
|
||||
addFolderItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, mUrlPrefix, this, mSupportedFormats );
|
||||
addServiceItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, mUrlPrefix, this, mSupportedFormats );
|
||||
addLayerItems( items, serviceData, mPath, mAuthCfg, mHeaders, mUrlPrefix, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::Vector, mSupportedFormats );
|
||||
return items;
|
||||
}
|
||||
|
||||
@ -513,11 +519,12 @@ bool QgsArcGisFeatureServiceItem::equal( const QgsDataItem *other )
|
||||
// QgsArcGisMapServiceItem
|
||||
//
|
||||
|
||||
QgsArcGisMapServiceItem::QgsArcGisMapServiceItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, Qgis::ArcGisRestServiceType serviceType )
|
||||
QgsArcGisMapServiceItem::QgsArcGisMapServiceItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix, Qgis::ArcGisRestServiceType serviceType )
|
||||
: QgsDataCollectionItem( parent, name, path, QStringLiteral( "AMS" ) )
|
||||
, mBaseUrl( baseUrl )
|
||||
, mAuthCfg( authcfg )
|
||||
, mHeaders( headers )
|
||||
, mUrlPrefix( urlPrefix )
|
||||
, mServiceType( serviceType )
|
||||
{
|
||||
mIconName = QStringLiteral( "mIconDbSchema.svg" );
|
||||
@ -531,7 +538,7 @@ QVector<QgsDataItem *> QgsArcGisMapServiceItem::createChildren()
|
||||
|
||||
QVector<QgsDataItem *> items;
|
||||
QString errorTitle, errorMessage;
|
||||
const QVariantMap serviceData = QgsArcGisRestQueryUtils::getServiceInfo( url, mAuthCfg, errorTitle, errorMessage, mHeaders );
|
||||
const QVariantMap serviceData = QgsArcGisRestQueryUtils::getServiceInfo( url, mAuthCfg, errorTitle, errorMessage, mHeaders, mUrlPrefix );
|
||||
if ( serviceData.isEmpty() )
|
||||
{
|
||||
if ( !errorMessage.isEmpty() )
|
||||
@ -548,9 +555,9 @@ QVector<QgsDataItem *> QgsArcGisMapServiceItem::createChildren()
|
||||
QStringLiteral( "JPGPNG,PNG,PNG8,PNG24,JPG,BMP,GIF,TIFF,PNG32,BIP,BSQ,LERC" ) // ImageServer supported formats
|
||||
: serviceData.value( QStringLiteral( "supportedImageFormatTypes" ) ).toString();
|
||||
|
||||
addFolderItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, this, supportedFormats );
|
||||
addServiceItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, this, supportedFormats );
|
||||
addLayerItems( items, serviceData, mPath, mAuthCfg, mHeaders, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::AllTypes, supportedFormats );
|
||||
addFolderItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, mUrlPrefix, this, supportedFormats );
|
||||
addServiceItems( items, serviceData, mBaseUrl, mAuthCfg, mHeaders, mUrlPrefix, this, supportedFormats );
|
||||
addLayerItems( items, serviceData, mPath, mAuthCfg, mHeaders, mUrlPrefix, this, QgsArcGisRestQueryUtils::ServiceTypeFilter::AllTypes, supportedFormats );
|
||||
return items;
|
||||
}
|
||||
|
||||
@ -565,13 +572,16 @@ bool QgsArcGisMapServiceItem::equal( const QgsDataItem *other )
|
||||
// QgsArcGisFeatureServiceLayerItem
|
||||
//
|
||||
|
||||
QgsArcGisFeatureServiceLayerItem::QgsArcGisFeatureServiceLayerItem( QgsDataItem *parent, const QString &, const QString &url, const QString &title, const QString &authid, const QString &authcfg, const QgsHttpHeaders &headers, Qgis::BrowserLayerType geometryType )
|
||||
QgsArcGisFeatureServiceLayerItem::QgsArcGisFeatureServiceLayerItem( QgsDataItem *parent, const QString &, const QString &url, const QString &title, const QString &authid, const QString &authcfg, const QgsHttpHeaders &headers, const QString urlPrefix, Qgis::BrowserLayerType geometryType )
|
||||
: QgsLayerItem( parent, title, url, QString(), geometryType, QStringLiteral( "arcgisfeatureserver" ) )
|
||||
{
|
||||
mUri = QStringLiteral( "crs='%1' url='%2'" ).arg( authid, url );
|
||||
if ( !authcfg.isEmpty() )
|
||||
mUri += QStringLiteral( " authcfg='%1'" ).arg( authcfg );
|
||||
|
||||
if ( !urlPrefix.isEmpty() )
|
||||
mUri += QStringLiteral( " urlprefix='%1'" ).arg( urlPrefix );
|
||||
|
||||
mUri += headers.toSpacedString();
|
||||
|
||||
setState( Qgis::BrowserItemState::Populated );
|
||||
@ -582,7 +592,7 @@ QgsArcGisFeatureServiceLayerItem::QgsArcGisFeatureServiceLayerItem( QgsDataItem
|
||||
// QgsArcGisMapServiceLayerItem
|
||||
//
|
||||
|
||||
QgsArcGisMapServiceLayerItem::QgsArcGisMapServiceLayerItem( QgsDataItem *parent, const QString &, const QString &url, const QString &id, const QString &title, const QString &authid, const QString &format, const QString &authcfg, const QgsHttpHeaders &headers )
|
||||
QgsArcGisMapServiceLayerItem::QgsArcGisMapServiceLayerItem( QgsDataItem *parent, const QString &, const QString &url, const QString &id, const QString &title, const QString &authid, const QString &format, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix )
|
||||
: QgsLayerItem( parent, title, url, QString(), Qgis::BrowserLayerType::Raster, QStringLiteral( "arcgismapserver" ) )
|
||||
{
|
||||
const QString trimmedUrl = id.isEmpty() ? url : url.left( url.length() - 1 - id.length() ); // trim '/0' from end of url -- AMS provider requires this omitted
|
||||
@ -590,6 +600,9 @@ QgsArcGisMapServiceLayerItem::QgsArcGisMapServiceLayerItem( QgsDataItem *parent,
|
||||
if ( !authcfg.isEmpty() )
|
||||
mUri += QStringLiteral( " authcfg='%1'" ).arg( authcfg );
|
||||
|
||||
if ( !urlPrefix.isEmpty() )
|
||||
mUri += QStringLiteral( " urlprefix='%1'" ).arg( urlPrefix );
|
||||
|
||||
mUri += headers.toSpacedString();
|
||||
|
||||
setState( Qgis::BrowserItemState::Populated );
|
||||
@ -600,10 +613,11 @@ QgsArcGisMapServiceLayerItem::QgsArcGisMapServiceLayerItem( QgsDataItem *parent,
|
||||
// QgsArcGisRestParentLayerItem
|
||||
//
|
||||
|
||||
QgsArcGisRestParentLayerItem::QgsArcGisRestParentLayerItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers )
|
||||
QgsArcGisRestParentLayerItem::QgsArcGisRestParentLayerItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix )
|
||||
: QgsDataItem( Qgis::BrowserItemType::Collection, parent, name, path )
|
||||
, mAuthCfg( authcfg )
|
||||
, mHeaders( headers )
|
||||
, mUrlPrefix( urlPrefix )
|
||||
{
|
||||
mCapabilities |= Qgis::BrowserItemCapability::Fast;
|
||||
mIconName = QStringLiteral( "mIconDbSchema.svg" );
|
||||
|
||||
@ -78,13 +78,14 @@ class QgsArcGisPortalGroupsItem : public QgsDataCollectionItem
|
||||
Q_OBJECT
|
||||
public:
|
||||
QgsArcGisPortalGroupsItem( QgsDataItem *parent, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers,
|
||||
const QString &communityEndpoint, const QString &contentEndpoint );
|
||||
const QString &urlPrefix, const QString &communityEndpoint, const QString &contentEndpoint );
|
||||
QVector<QgsDataItem *> createChildren() override;
|
||||
bool equal( const QgsDataItem *other ) override;
|
||||
|
||||
private:
|
||||
QString mAuthCfg;
|
||||
QgsHttpHeaders mHeaders;
|
||||
QString mUrlPrefix;
|
||||
QString mPortalCommunityEndpoint;
|
||||
QString mPortalContentEndpoint;
|
||||
};
|
||||
@ -100,7 +101,7 @@ class QgsArcGisPortalGroupItem : public QgsDataCollectionItem
|
||||
Q_OBJECT
|
||||
public:
|
||||
QgsArcGisPortalGroupItem( QgsDataItem *parent, const QString &groupId, const QString &name, const QString &authcfg, const QgsHttpHeaders &headers,
|
||||
const QString &communityEndpoint, const QString &contentEndpoint );
|
||||
const QString &urlPrefix, const QString &communityEndpoint, const QString &contentEndpoint );
|
||||
QVector<QgsDataItem *> createChildren() override;
|
||||
bool equal( const QgsDataItem *other ) override;
|
||||
|
||||
@ -108,6 +109,7 @@ class QgsArcGisPortalGroupItem : public QgsDataCollectionItem
|
||||
QString mId;
|
||||
QString mAuthCfg;
|
||||
QgsHttpHeaders mHeaders;
|
||||
QString mUrlPrefix;
|
||||
QString mPortalCommunityEndpoint;
|
||||
QString mPortalContentEndpoint;
|
||||
};
|
||||
@ -124,7 +126,7 @@ class QgsArcGisRestServicesItem : public QgsDataCollectionItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QgsArcGisRestServicesItem( QgsDataItem *parent, const QString &url, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers );
|
||||
QgsArcGisRestServicesItem( QgsDataItem *parent, const QString &url, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers, const QString urlPrefix );
|
||||
QVector<QgsDataItem *> createChildren() override;
|
||||
bool equal( const QgsDataItem *other ) override;
|
||||
|
||||
@ -132,6 +134,7 @@ class QgsArcGisRestServicesItem : public QgsDataCollectionItem
|
||||
QString mUrl;
|
||||
QString mAuthCfg;
|
||||
QgsHttpHeaders mHeaders;
|
||||
QString mUrlPrefix;
|
||||
QString mPortalCommunityEndpoint;
|
||||
QString mPortalContentEndpoint;
|
||||
};
|
||||
@ -146,7 +149,7 @@ class QgsArcGisRestFolderItem : public QgsDataCollectionItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QgsArcGisRestFolderItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers );
|
||||
QgsArcGisRestFolderItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix );
|
||||
void setSupportedFormats( const QString &formats );
|
||||
|
||||
QVector<QgsDataItem *> createChildren() override;
|
||||
@ -157,6 +160,7 @@ class QgsArcGisRestFolderItem : public QgsDataCollectionItem
|
||||
QString mBaseUrl;
|
||||
QString mAuthCfg;
|
||||
QgsHttpHeaders mHeaders;
|
||||
QString mUrlPrefix;
|
||||
QString mSupportedFormats;
|
||||
};
|
||||
|
||||
@ -171,7 +175,7 @@ class QgsArcGisFeatureServiceItem : public QgsDataCollectionItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QgsArcGisFeatureServiceItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers );
|
||||
QgsArcGisFeatureServiceItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix );
|
||||
void setSupportedFormats( const QString &formats );
|
||||
QVector<QgsDataItem *> createChildren() override;
|
||||
bool equal( const QgsDataItem *other ) override;
|
||||
@ -181,6 +185,7 @@ class QgsArcGisFeatureServiceItem : public QgsDataCollectionItem
|
||||
QString mBaseUrl;
|
||||
QString mAuthCfg;
|
||||
QgsHttpHeaders mHeaders;
|
||||
QString mUrlPrefix;
|
||||
QString mSupportedFormats;
|
||||
};
|
||||
|
||||
@ -194,7 +199,7 @@ class QgsArcGisMapServiceItem : public QgsDataCollectionItem
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
QgsArcGisMapServiceItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, Qgis::ArcGisRestServiceType serviceType );
|
||||
QgsArcGisMapServiceItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &baseUrl, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix, Qgis::ArcGisRestServiceType serviceType );
|
||||
QVector<QgsDataItem *> createChildren() override;
|
||||
bool equal( const QgsDataItem *other ) override;
|
||||
|
||||
@ -203,6 +208,7 @@ class QgsArcGisMapServiceItem : public QgsDataCollectionItem
|
||||
QString mBaseUrl;
|
||||
QString mAuthCfg;
|
||||
QgsHttpHeaders mHeaders;
|
||||
QString mUrlPrefix;
|
||||
Qgis::ArcGisRestServiceType mServiceType = Qgis::ArcGisRestServiceType::Unknown;
|
||||
};
|
||||
|
||||
@ -214,13 +220,14 @@ class QgsArcGisRestParentLayerItem : public QgsDataItem
|
||||
Q_OBJECT
|
||||
public:
|
||||
|
||||
QgsArcGisRestParentLayerItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers );
|
||||
QgsArcGisRestParentLayerItem( QgsDataItem *parent, const QString &name, const QString &path, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix );
|
||||
bool equal( const QgsDataItem *other ) override;
|
||||
|
||||
private:
|
||||
|
||||
QString mAuthCfg;
|
||||
QgsHttpHeaders mHeaders;
|
||||
QString mUrlPrefix;
|
||||
|
||||
};
|
||||
|
||||
@ -234,7 +241,7 @@ class QgsArcGisFeatureServiceLayerItem : public QgsLayerItem
|
||||
public:
|
||||
|
||||
QgsArcGisFeatureServiceLayerItem( QgsDataItem *parent, const QString &name, const QString &url, const QString &title, const QString &authid, const QString &authcfg, const QgsHttpHeaders &headers,
|
||||
Qgis::BrowserLayerType geometryType );
|
||||
const QString urlPrefix, Qgis::BrowserLayerType geometryType );
|
||||
|
||||
};
|
||||
|
||||
@ -247,7 +254,7 @@ class QgsArcGisMapServiceLayerItem : public QgsLayerItem
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QgsArcGisMapServiceLayerItem( QgsDataItem *parent, const QString &name, const QString &url, const QString &id, const QString &title, const QString &authid, const QString &format, const QString &authcfg, const QgsHttpHeaders &headers );
|
||||
QgsArcGisMapServiceLayerItem( QgsDataItem *parent, const QString &name, const QString &url, const QString &id, const QString &title, const QString &authid, const QString &format, const QString &authcfg, const QgsHttpHeaders &headers, const QString &urlPrefix );
|
||||
void setSupportedFormats( const QString &formats ) { mSupportedFormats = formats; }
|
||||
QString supportedFormats() const { return mSupportedFormats; }
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ QgsNewArcGisRestConnectionDialog::QgsNewArcGisRestConnectionDialog( QWidget *par
|
||||
txtName->setText( connectionName );
|
||||
txtUrl->setText( QgsArcGisConnectionSettings::settingsUrl->value( connectionName ) );
|
||||
mHttpHeaders->setHeaders( QgsHttpHeaders( QgsArcGisConnectionSettings::settingsHeaders->value( connectionName ) ) );
|
||||
|
||||
mUrlPrefix->setText( QgsArcGisConnectionSettings::settingsUrlPrefix->value( connectionName ) );
|
||||
|
||||
// portal
|
||||
mContentEndPointLineEdit->setText( QgsArcGisConnectionSettings::settingsContentEndpoint->value( connectionName ) );
|
||||
@ -179,6 +179,7 @@ void QgsNewArcGisRestConnectionDialog::accept()
|
||||
QgsArcGisConnectionSettings::settingsAuthcfg->setValue( mAuthSettings->configId(), newName );
|
||||
|
||||
QgsArcGisConnectionSettings::settingsHeaders->setValue( mHttpHeaders->httpHeaders().headers(), newName );
|
||||
QgsArcGisConnectionSettings::settingsUrlPrefix->setValue( mUrlPrefix->text(), newName );
|
||||
|
||||
QgsArcGisConnectionSettings::sTreeConnectionArcgis->setSelectedItem( newName );
|
||||
|
||||
|
||||
@ -144,6 +144,26 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="TextLabel1_5">
|
||||
<property name="text">
|
||||
<string>Prefix</string>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="mUrlPrefix">
|
||||
<property name="toolTip">
|
||||
<string>HTTP address Proxy Prefix of the Web Map Server</string>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string>https://mysite.com/proxy.jsp?</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -201,6 +221,7 @@
|
||||
<tabstops>
|
||||
<tabstop>txtName</tabstop>
|
||||
<tabstop>txtUrl</tabstop>
|
||||
<tabstop>mUrlPrefix</tabstop>
|
||||
<tabstop>mCommunityEndPointLineEdit</tabstop>
|
||||
<tabstop>mContentEndPointLineEdit</tabstop>
|
||||
<tabstop>mAuthSettings</tabstop>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user