Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Merge pull request #7372 from pblottiere/server_clean
[WIP][server] Clean parameters management
- Loading branch information
Showing
with
2,409 additions
and 1,561 deletions.
- +2 −0 python/server/auto_additions/qgsserverparameters.py
- +350 −0 python/server/auto_generated/qgsserverparameters.sip.in
- +5 −0 python/server/auto_generated/qgsserverrequest.sip.in
- +1 −0 python/server/server_auto.sip
- +2 −0 src/server/CMakeLists.txt
- +11 −27 src/server/qgsserver.cpp
- +1 −1 src/server/qgsserver.h
- +22 −0 src/server/qgsserverexception.h
- +469 −0 src/server/qgsserverparameters.cpp
- +328 −0 src/server/qgsserverparameters.h
- +11 −27 src/server/qgsserverrequest.cpp
- +7 −4 src/server/qgsserverrequest.h
- +3 −3 src/server/services/wfs/qgswfs.cpp
- +1 −1 src/server/services/wfs/qgswfsdescribefeaturetype.cpp
- +1 −1 src/server/services/wfs/qgswfsgetfeature.cpp
- +153 −271 src/server/services/wfs/qgswfsparameters.cpp
- +86 −48 src/server/services/wfs/qgswfsparameters.h
- +7 −6 src/server/services/wfs/qgswfsutils.cpp
- +3 −1 src/server/services/wms/qgsdxfwriter.cpp
- +28 −25 src/server/services/wms/qgswms.cpp
- +3 −1 src/server/services/wms/qgswmsgetfeatureinfo.cpp
- +3 −1 src/server/services/wms/qgswmsgetlegendgraphics.cpp
- +3 −1 src/server/services/wms/qgswmsgetmap.cpp
- +2 −1 src/server/services/wms/qgswmsgetprint.cpp
- +662 −1,033 src/server/services/wms/qgswmsparameters.cpp
- +219 −77 src/server/services/wms/qgswmsparameters.h
- +23 −28 src/server/services/wms/qgswmsrenderer.cpp
- +2 −3 src/server/services/wms/qgswmsrenderer.h
- +1 −1 tests/src/python/test_qgsserver_wms.py
@@ -0,0 +1,2 @@ | ||
# The following has been generated automatically from src/server/qgsserverparameters.h | ||
QgsServerParameter.Name.baseClass = QgsServerParameter |
@@ -0,0 +1,350 @@ | ||
/************************************************************************ | ||
* This file has been generated automatically from * | ||
* * | ||
* src/server/qgsserverparameters.h * | ||
* * | ||
* Do not edit manually ! Edit header and run scripts/sipify.pl again * | ||
************************************************************************/ | ||
|
||
|
||
|
||
|
||
class QgsServerParameterDefinition | ||
{ | ||
%Docstring | ||
Definition of a parameter with basic conversion methods | ||
|
||
.. versionadded:: 3.4 | ||
%End | ||
|
||
%TypeHeaderCode | ||
#include "qgsserverparameters.h" | ||
%End | ||
public: | ||
|
||
QgsServerParameterDefinition( const QVariant::Type type = QVariant::String, | ||
const QVariant defaultValue = QVariant( "" ) ); | ||
%Docstring | ||
Constructor for QgsServerParameterDefinition. | ||
|
||
:param type: The type of the parameter | ||
:param defaultValue: The default value of the parameter | ||
%End | ||
|
||
virtual ~QgsServerParameterDefinition(); | ||
|
||
QString typeName() const; | ||
%Docstring | ||
Returns the type of the parameter as a string. | ||
%End | ||
|
||
virtual bool isValid() const; | ||
%Docstring | ||
Returns true if the parameter is valid, false otherwise. | ||
%End | ||
|
||
QString toString() const; | ||
%Docstring | ||
Converts the parameter into a string. | ||
%End | ||
|
||
QStringList toStringList( char delimiter = ',' ) const; | ||
%Docstring | ||
Converts the parameter into a list of strings. | ||
|
||
:param delimiter: The character used for delimiting | ||
|
||
:return: A list of strings | ||
%End | ||
|
||
QList<int> toIntList( bool &ok, char delimiter = ',' ) const; | ||
%Docstring | ||
Converts the parameter into a list of integers. | ||
|
||
:param ok: True if there's no error during the conversion, false otherwise | ||
:param delimiter: The character used for delimiting | ||
|
||
:return: A list of integers | ||
%End | ||
|
||
QList<double> toDoubleList( bool &ok, char delimiter = ',' ) const; | ||
%Docstring | ||
Converts the parameter into a list of doubles. | ||
|
||
:param ok: True if there's no error during the conversion, false otherwise | ||
:param delimiter: The character used for delimiting | ||
|
||
:return: A list of doubles | ||
%End | ||
|
||
QList<QColor> toColorList( bool &ok, char delimiter = ',' ) const; | ||
%Docstring | ||
Converts the parameter into a list of colors. | ||
|
||
:param ok: True if there's no error during the conversion, false otherwise | ||
:param delimiter: The character used for delimiting | ||
|
||
:return: A list of colors | ||
%End | ||
|
||
QList<QgsGeometry> toGeomList( bool &ok, char delimiter = ',' ) const; | ||
%Docstring | ||
Converts the parameter into a list of geometries. | ||
|
||
:param ok: True if there's no error during the conversion, false otherwise | ||
:param delimiter: The character used for delimiting | ||
|
||
:return: A list of geometries | ||
%End | ||
|
||
QgsRectangle toRectangle( bool &ok ) const; | ||
%Docstring | ||
Converts the parameter into a rectangle. | ||
|
||
:param ok: True if there's no error during the conversion, false otherwise | ||
|
||
:return: A rectangle | ||
%End | ||
|
||
int toInt( bool &ok ) const; | ||
%Docstring | ||
Converts the parameter into an integer. | ||
|
||
:param ok: True if there's no error during the conversion, false otherwise | ||
|
||
:return: An integer | ||
%End | ||
|
||
double toDouble( bool &ok ) const; | ||
%Docstring | ||
Converts the parameter into a double. | ||
|
||
:param ok: True if there's no error during the conversion, false otherwise | ||
|
||
:return: A double | ||
%End | ||
|
||
bool toBool() const; | ||
%Docstring | ||
Converts the parameter into a boolean. | ||
|
||
:return: A boolean | ||
%End | ||
|
||
QColor toColor( bool &ok ) const; | ||
%Docstring | ||
Converts the parameter into a color. | ||
|
||
:param ok: True if there's no error during the conversion, false otherwise | ||
|
||
:return: A color | ||
%End | ||
|
||
static void raiseError( const QString &msg ); | ||
%Docstring | ||
Raises an exception in case of an invalid parameters. | ||
|
||
:param msg: The message describing the exception | ||
\throws QgsBadRequestException Invalid parameter exception | ||
%End | ||
|
||
QVariant::Type mType; | ||
QVariant mValue; | ||
QVariant mDefaultValue; | ||
}; | ||
|
||
class QgsServerParameter : QgsServerParameterDefinition | ||
{ | ||
%Docstring | ||
Parameter common to all services (WMS, WFS, ...) | ||
|
||
.. versionadded:: 3.4 | ||
%End | ||
|
||
%TypeHeaderCode | ||
#include "qgsserverparameters.h" | ||
%End | ||
public: | ||
static const QMetaObject staticMetaObject; | ||
|
||
public: | ||
enum Name | ||
{ | ||
UNKNOWN, | ||
SERVICE, | ||
VERSION_SERVICE, | ||
REQUEST, | ||
MAP, | ||
FILE_NAME | ||
}; | ||
|
||
QgsServerParameter( const QgsServerParameter::Name name = QgsServerParameter::UNKNOWN, | ||
const QVariant::Type type = QVariant::String, | ||
const QVariant defaultValue = QVariant( "" ) ); | ||
%Docstring | ||
Constructor for QgsServerParameter. | ||
|
||
:param name: The name of the parameter | ||
:param type: The type of the parameter | ||
:param defaultValue: The default value to use if not defined | ||
%End | ||
|
||
void raiseError() const; | ||
%Docstring | ||
Raises an error in case of an invalid conversion. | ||
\throws QgsBadRequestException Invalid parameter exception | ||
%End | ||
|
||
static QString name( const QgsServerParameter::Name name ); | ||
%Docstring | ||
Converts a parameter's name into its string representation. | ||
%End | ||
|
||
static QgsServerParameter::Name name( const QString &name ); | ||
%Docstring | ||
Converts a string into a parameter's name (UNKNOWN in case of an | ||
invalid string). | ||
%End | ||
|
||
QgsServerParameter::Name mName; | ||
}; | ||
|
||
class QgsServerParameters | ||
{ | ||
%Docstring | ||
QgsServerParameters provides an interface to retrieve and manipulate global parameters received from the client. | ||
|
||
.. versionadded:: 3.4 | ||
%End | ||
|
||
%TypeHeaderCode | ||
#include "qgsserverparameters.h" | ||
%End | ||
public: | ||
static const QMetaObject staticMetaObject; | ||
|
||
public: | ||
|
||
QgsServerParameters(); | ||
%Docstring | ||
Constructor. | ||
%End | ||
|
||
QgsServerParameters( const QUrlQuery &query ); | ||
%Docstring | ||
Constructor. | ||
%End | ||
|
||
virtual ~QgsServerParameters(); | ||
|
||
void load( const QUrlQuery &query ); | ||
%Docstring | ||
Loads new parameters. | ||
|
||
:param query: url query | ||
%End | ||
|
||
void clear(); | ||
%Docstring | ||
Removes all parameters. | ||
%End | ||
|
||
void add( const QString &key, const QString &value ); | ||
%Docstring | ||
Adds a parameter. | ||
|
||
:param key: the name of the parameter | ||
:param value: the value of the parameter | ||
%End | ||
|
||
void remove( const QString &key ); | ||
%Docstring | ||
Removes a parameter. | ||
|
||
:param key: the name of the parameter | ||
%End | ||
|
||
void remove( QgsServerParameter::Name name ); | ||
%Docstring | ||
Removes a parameter. | ||
|
||
:param name: The name of the parameter | ||
|
||
.. versionadded:: 3.4 | ||
%End | ||
|
||
QString value( const QString &key ) const; | ||
%Docstring | ||
Returns the value of a parameter. | ||
|
||
:param key: the name of the parameter | ||
%End | ||
|
||
QUrlQuery urlQuery() const; | ||
%Docstring | ||
Returns a url query with underlying parameters. | ||
%End | ||
|
||
QMap<QString, QString> toMap() const; | ||
%Docstring | ||
Returns all parameters in a map. | ||
%End | ||
|
||
QString service() const; | ||
%Docstring | ||
Returns SERVICE parameter as a string or an empty string if not | ||
defined. | ||
|
||
:return: service | ||
%End | ||
|
||
QString request() const; | ||
%Docstring | ||
Returns REQUEST parameter as a string or an empty string if not | ||
defined. | ||
|
||
:return: request | ||
%End | ||
|
||
QString map() const; | ||
%Docstring | ||
Returns MAP parameter as a string or an empty string if not | ||
defined. | ||
|
||
:return: map | ||
%End | ||
|
||
QString fileName() const; | ||
%Docstring | ||
Returns FILE_NAME parameter as a string or an empty string if not | ||
defined. | ||
|
||
:return: filename | ||
%End | ||
|
||
QString version() const; | ||
%Docstring | ||
Returns VERSION parameter as a string or an empty string if not | ||
defined. | ||
|
||
:return: version | ||
%End | ||
|
||
protected: | ||
|
||
virtual bool loadParameter( const QString &name, const QString &value ); | ||
%Docstring | ||
Loads a parameter with a specific value. This method should be | ||
implemented in subclasses. | ||
%End | ||
|
||
|
||
}; | ||
|
||
/************************************************************************ | ||
* This file has been generated automatically from * | ||
* * | ||
* src/server/qgsserverparameters.h * | ||
* * | ||
* Do not edit manually ! Edit header and run scripts/sipify.pl again * | ||
************************************************************************/ |
Oops, something went wrong.