21#ifndef QGSSERVERAPIUTILS_H
22#define QGSSERVERAPIUTILS_H
24#include "qgis_server.h"
35#ifdef HAVE_SERVER_PYTHON_PLUGINS
45#include <nlohmann/json_fwd.hpp>
46using namespace nlohmann;
97 template<
typename T,
class T2>
static T parseTemporalInterval(
const QString &interval )
SIP_SKIP;
183#ifdef HAVE_SERVER_PYTHON_PLUGINS
191 const auto constLayers { project->
layers<T>() };
192 for (
const auto &layer : constLayers )
194 if ( !wfsLayerIds.contains( layer->
id() ) )
198#ifdef HAVE_SERVER_PYTHON_PLUGINS
204 result.push_back( layer );
217 static QString sanitizedFieldValue(
const QString &value );
223 static QStringList publishedCrsList(
const QgsProject *project );
236 static QString appendMapParameter(
const QString &path,
const QUrl &requestUrl );
A helper class that centralizes restrictions given by all the access control filter plugins.
bool layerReadPermission(const QgsMapLayer *layer) const
Returns the layer read right.
Represents a coordinate reference system (CRS).
Handles parsing and evaluation of expressions (formerly called "search strings").
Encapsulates a QGIS project, including sets of map layers and their styles, layouts,...
QVector< T > layers() const
Returns a list of registered map layers with a specified layer type.
A rectangle specified with double values.
Bad request error API exception.
Encapsulates the resources for a particular client request.
const QgsProject * project() const
Returns the (possibly NULL) project.
QgsServerInterface * serverInterface() const
Returns the server interface.
Contains helper functions to handle common API operations.
static const QVector< T > publishedWfsLayers(const QgsServerApiContext &context)
Returns the list of layers of type T accessible to the WFS service for a given project.
static QgsExpression temporalFilterExpression(const QgsVectorLayer *layer, const QString &interval)
Parses the interval and constructs a (possibly invalid) temporal filter expression for the given laye...
static QVariantList temporalExtentList(const QgsVectorLayer *layer)
temporalExtent returns a json array with an array of [min, max] temporal extent for the given layer.
static QString fieldName(const QString &name, const QgsVectorLayer *layer)
Given a field name (or display name) and a layer returns the actual name of the field.
static QgsCoordinateReferenceSystem parseCrs(const QString &bboxCrs)
Parses the CRS URI bboxCrs (example: "http://www.opengis.net/def/crs/OGC/1.3/CRS84") into a QGIS CRS ...
static json temporalExtent(const QgsVectorLayer *layer)
temporalExtent returns a json array with an array of [min, max] temporal extent for the given layer.
static const QVector< QgsVectorLayer * > publishedWfsLayers(const QgsServerApiContext &context)
Returns the list of layers accessible to the service for a given context.
static json layerExtent(const QgsVectorLayer *layer)
layerExtent returns json array with [xMin,yMin,xMax,yMax] CRS84 extent for the given layer
static QgsDateTimeRange parseTemporalDateTimeInterval(const QString &interval)
Parses a datetime interval and returns a QgsDateTimeRange.
static QgsDateRange parseTemporalDateInterval(const QString &interval)
Parses a date interval and returns a QgsDateRange.
static QList< QgsServerWmsDimensionProperties::WmsDimensionInfo > temporalDimensions(const QgsVectorLayer *layer)
Returns a list of temporal dimensions information for the given layer (either configured in wmsDimens...
static QgsRectangle parseBbox(const QString &bbox)
Parses a comma separated bbox into a (possibly empty) QgsRectangle.
virtual QgsAccessControl * accessControls() const =0
Gets the registered access control filters.
static QStringList wfsLayerIds(const QgsProject &project)
Returns the Layer ids list defined in a QGIS project as published in WFS.
Represents a vector layer which manages a vector based dataset.
#define SIP_THROW(name,...)
QgsTemporalRange< QDate > QgsDateRange
QgsRange which stores a range of dates.
QgsTemporalRange< QDateTime > QgsDateTimeRange
QgsRange which stores a range of date times.