Skip to content
Permalink
Browse files

Merge pull request #7372 from pblottiere/server_clean

[WIP][server] Clean parameters management
  • Loading branch information
pblottiere committed Jul 23, 2018
2 parents b3fb647 + e48de20 commit cc1511c04a9e011c88d9e8e5d023e87a6b1bce30
Showing with 2,409 additions and 1,561 deletions.
  1. +2 −0 python/server/auto_additions/qgsserverparameters.py
  2. +350 −0 python/server/auto_generated/qgsserverparameters.sip.in
  3. +5 −0 python/server/auto_generated/qgsserverrequest.sip.in
  4. +1 −0 python/server/server_auto.sip
  5. +2 −0 src/server/CMakeLists.txt
  6. +11 −27 src/server/qgsserver.cpp
  7. +1 −1 src/server/qgsserver.h
  8. +22 −0 src/server/qgsserverexception.h
  9. +469 −0 src/server/qgsserverparameters.cpp
  10. +328 −0 src/server/qgsserverparameters.h
  11. +11 −27 src/server/qgsserverrequest.cpp
  12. +7 −4 src/server/qgsserverrequest.h
  13. +3 −3 src/server/services/wfs/qgswfs.cpp
  14. +1 −1 src/server/services/wfs/qgswfsdescribefeaturetype.cpp
  15. +1 −1 src/server/services/wfs/qgswfsgetfeature.cpp
  16. +153 −271 src/server/services/wfs/qgswfsparameters.cpp
  17. +86 −48 src/server/services/wfs/qgswfsparameters.h
  18. +7 −6 src/server/services/wfs/qgswfsutils.cpp
  19. +3 −1 src/server/services/wms/qgsdxfwriter.cpp
  20. +28 −25 src/server/services/wms/qgswms.cpp
  21. +3 −1 src/server/services/wms/qgswmsgetfeatureinfo.cpp
  22. +3 −1 src/server/services/wms/qgswmsgetlegendgraphics.cpp
  23. +3 −1 src/server/services/wms/qgswmsgetmap.cpp
  24. +2 −1 src/server/services/wms/qgswmsgetprint.cpp
  25. +662 −1,033 src/server/services/wms/qgswmsparameters.cpp
  26. +219 −77 src/server/services/wms/qgswmsparameters.h
  27. +23 −28 src/server/services/wms/qgswmsrenderer.cpp
  28. +2 −3 src/server/services/wms/qgswmsrenderer.h
  29. +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 *
************************************************************************/
@@ -72,6 +72,11 @@ Constructor
%Docstring
Returns a map of query parameters with keys converted
to uppercase
%End

QgsServerParameters serverParameters() const;
%Docstring
Returns parameters
%End

void setParameter( const QString &key, const QString &value );
@@ -4,6 +4,7 @@
%Include auto_generated/qgscapabilitiescache.sip
%Include auto_generated/qgsconfigcache.sip
%Include auto_generated/qgsserversettings.sip
%Include auto_generated/qgsserverparameters.sip
%Include auto_generated/qgsbufferserverrequest.sip
%Include auto_generated/qgsbufferserverresponse.sip
%Include auto_generated/qgsrequesthandler.sip
@@ -30,6 +30,7 @@ SET(QGIS_SERVER_SRCS
qgsfilterrestorer.cpp
qgsrequesthandler.cpp
qgsserver.cpp
qgsserverparameters.cpp
qgsserverexception.cpp
qgsserverinterface.cpp
qgsserverinterfaceimpl.cpp
@@ -56,6 +57,7 @@ SET (QGIS_SERVER_MOC_HDRS
qgsconfigcache.h
qgsserverlogger.h
qgsserversettings.h
qgsserverparameters.h
)


0 comments on commit cc1511c

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