24using namespace Qt::StringLiterals;
28 QString endPoint = communityUrl;
29 if ( endPoint.endsWith(
'/' ) )
33 endPoint +=
"/self"_L1;
35 endPoint += u
"/users/"_s + user;
37 QUrl queryUrl( endPoint );
38 QUrlQuery query( queryUrl );
39 query.addQueryItem( u
"f"_s, u
"json"_s );
40 queryUrl.setQuery( query );
45QVariantMap
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 )
52 const QVariantMap info =
retrieveUserInfo( communityUrl, user, authcfg, errorTitle, errorText, requestHeaders, feedback, urlPrefix );
53 return info.value( u
"groups"_s ).toList();
56QVariantList
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 )
63 QString endPoint = contentUrl;
64 if ( endPoint.endsWith(
'/' ) )
67 endPoint += u
"/groups/"_s + groupId;
74 QUrl queryUrl( endPoint );
75 QUrlQuery query( queryUrl );
76 query.addQueryItem( u
"f"_s, u
"json"_s );
77 query.addQueryItem( u
"start"_s, QString::number( start ) );
78 query.addQueryItem( u
"num"_s, QString::number( pageSize ) );
79 queryUrl.setQuery( query );
82 if ( !errorText.isEmpty() )
83 return QVariantList();
85 items.append( response.value( u
"items"_s ).toList() );
90 const int total = response.value( u
"total"_s ).toInt();
98QVariantList
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 )
105 const QVariantList items =
retrieveGroupContent( contentUrl, groupId, authcfg, errorTitle, errorText, requestHeaders, feedback, pageSize, urlPrefix );
109 for (
const QVariant &item : items )
111 const QVariantMap itemDef = item.toMap();
112 const QString itemType = itemDef.value( u
"type"_s ).toString();
114 for (
const int filterType : itemTypes )
126QVariantList
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 )
138 return u
"Feature Service"_s;
140 return u
"Map Service"_s;
142 return u
"Image Service"_s;
144 return u
"Scene Service"_s;
ArcGisRestServiceType
Available ArcGIS REST service types.
@ GeocodeServer
GeocodeServer.
@ SceneServer
SceneServer.
@ Unknown
Other unknown/unsupported type.
@ GlobeServer
GlobeServer.
@ ImageServer
ImageServer.
@ FeatureServer
FeatureServer.
static QVariantList retrieveGroupItemsOfType(const QString &contentUrl, const QString &groupId, const QString &authcfg, const QList< int > &itemTypes, QString &errorTitle, QString &errorText, 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 groupId.
static QVariantMap retrieveUserInfo(const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders=QgsHttpHeaders(), QgsFeedback *feedback=nullptr, const QString &urlPrefix=QString())
Retrieves JSON user info for the specified user name.
static QVariantList retrieveUserGroups(const QString &communityUrl, const QString &user, const QString &authcfg, QString &errorTitle, QString &errorText, 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.
static QVariantList retrieveGroupContent(const QString &contentUrl, const QString &groupId, const QString &authcfg, QString &errorTitle, QString &errorText, 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 groupId.
static QVariantMap queryServiceJSON(const QUrl &url, const QString &authcfg, QString &errorTitle, QString &errorText, const QgsHttpHeaders &requestHeaders=QgsHttpHeaders(), QgsFeedback *feedback=nullptr, const QString &urlPrefix=QString())
Performs a blocking request to a URL and returns the retrieved JSON content.
Base class for feedback objects to be used for cancellation of something running in a worker thread.
bool isCanceled() const
Tells whether the operation has been canceled already.
#define BUILTIN_UNREACHABLE