|
31 | 31 | #include "qgswmsgetfeatureinfo.h"
|
32 | 32 | #include "qgswmsdescribelayer.h"
|
33 | 33 | #include "qgswmsgetlegendgraphics.h"
|
| 34 | +#include "qgswmsparameters.h" |
34 | 35 |
|
35 | 36 | #define QSTR_COMPARE( str, lit )\
|
36 | 37 | (str.compare( QStringLiteral( lit ), Qt::CaseInsensitive ) == 0)
|
@@ -69,83 +70,85 @@ namespace QgsWms
|
69 | 70 | void executeRequest( const QgsServerRequest &request, QgsServerResponse &response,
|
70 | 71 | const QgsProject *project ) override
|
71 | 72 | {
|
72 |
| - QgsServerRequest::Parameters params = request.parameters(); |
73 |
| - QString versionString = params.value( "VERSION" ); |
74 |
| - if ( versionString.isEmpty() ) |
| 73 | + const QgsWmsParameters parameters( QUrlQuery( request.url() ) ); |
| 74 | + |
| 75 | + QString version = parameters.version(); |
| 76 | + if ( version.isEmpty() ) |
75 | 77 | {
|
76 |
| - //WMTVER needs to be supported by WMS 1.1.1 for backwards compatibility with WMS 1.0.0 |
77 |
| - versionString = params.value( "WMTVER" ); |
| 78 | + // WMTVER needs to be supported by WMS 1.1.1 for backwards |
| 79 | + // compatibility with WMS 1.0.0 |
| 80 | + version = parameters.wmtver(); |
78 | 81 | }
|
79 | 82 |
|
80 | 83 | // Set the default version
|
81 |
| - const bool valid = versionString.compare( "1.1.1" ) == 0 || versionString.compare( "1.3.0" ) == 0; |
82 |
| - if ( versionString.isEmpty() || !valid ) |
| 84 | + if ( version.isEmpty() || !parameters.versionIsValid( version ) ) |
83 | 85 | {
|
84 |
| - versionString = mVersion; |
| 86 | + version = mVersion; |
85 | 87 | }
|
86 | 88 |
|
87 | 89 | // Get the request
|
88 |
| - QString req = params.value( QStringLiteral( "REQUEST" ) ); |
| 90 | + const QString req = parameters.request(); |
89 | 91 | if ( req.isEmpty() )
|
90 | 92 | {
|
91 | 93 | throw QgsServiceException( QStringLiteral( "OperationNotSupported" ),
|
92 | 94 | QStringLiteral( "Please check the value of the REQUEST parameter" ) );
|
93 | 95 | }
|
94 | 96 |
|
95 |
| - if ( ( QSTR_COMPARE( mVersion, "1.1.1" ) && QSTR_COMPARE( req, "capabilities" ) ) |
96 |
| - || QSTR_COMPARE( req, "GetCapabilities" ) ) |
| 97 | + if ( ( mVersion.compare( QStringLiteral( "1.1.1" ) ) == 0 \ |
| 98 | + && req.compare( QStringLiteral( "capabilities" ) ) == 0 ) |
| 99 | + || req.compare( QStringLiteral( "GetCapabilities" ) ) == 0 ) |
97 | 100 | {
|
98 |
| - writeGetCapabilities( mServerIface, project, versionString, request, response, false ); |
| 101 | + writeGetCapabilities( mServerIface, project, version, request, response, false ); |
99 | 102 | }
|
100 | 103 | else if ( QSTR_COMPARE( req, "GetProjectSettings" ) )
|
101 | 104 | {
|
102 | 105 | //getProjectSettings extends WMS 1.3.0 capabilities
|
103 |
| - versionString = QStringLiteral( "1.3.0" ); |
104 |
| - writeGetCapabilities( mServerIface, project, versionString, request, response, true ); |
| 106 | + version = QStringLiteral( "1.3.0" ); |
| 107 | + writeGetCapabilities( mServerIface, project, version, request, response, true ); |
105 | 108 | }
|
106 | 109 | else if ( QSTR_COMPARE( req, "GetMap" ) )
|
107 | 110 | {
|
108 |
| - QString format = params.value( QStringLiteral( "FORMAT" ) ); |
| 111 | + QString format = parameters.formatAsString(); |
109 | 112 | if QSTR_COMPARE( format, "application/dxf" )
|
110 | 113 | {
|
111 |
| - writeAsDxf( mServerIface, project, versionString, request, response ); |
| 114 | + writeAsDxf( mServerIface, project, version, request, response ); |
112 | 115 | }
|
113 | 116 | else
|
114 | 117 | {
|
115 |
| - writeGetMap( mServerIface, project, versionString, request, response ); |
| 118 | + writeGetMap( mServerIface, project, version, request, response ); |
116 | 119 | }
|
117 | 120 | }
|
118 | 121 | else if ( QSTR_COMPARE( req, "GetFeatureInfo" ) )
|
119 | 122 | {
|
120 |
| - writeGetFeatureInfo( mServerIface, project, versionString, request, response ); |
| 123 | + writeGetFeatureInfo( mServerIface, project, version, request, response ); |
121 | 124 | }
|
122 | 125 | else if ( QSTR_COMPARE( req, "GetContext" ) )
|
123 | 126 | {
|
124 |
| - writeGetContext( mServerIface, project, versionString, request, response ); |
| 127 | + writeGetContext( mServerIface, project, version, request, response ); |
125 | 128 | }
|
126 | 129 | else if ( QSTR_COMPARE( req, "GetSchemaExtension" ) )
|
127 | 130 | {
|
128 |
| - writeGetSchemaExtension( mServerIface, versionString, request, response ); |
| 131 | + writeGetSchemaExtension( mServerIface, version, request, response ); |
129 | 132 | }
|
130 | 133 | else if ( QSTR_COMPARE( req, "GetStyle" ) )
|
131 | 134 | {
|
132 |
| - writeGetStyle( mServerIface, project, versionString, request, response ); |
| 135 | + writeGetStyle( mServerIface, project, version, request, response ); |
133 | 136 | }
|
134 | 137 | else if ( QSTR_COMPARE( req, "GetStyles" ) )
|
135 | 138 | {
|
136 |
| - writeGetStyles( mServerIface, project, versionString, request, response ); |
| 139 | + writeGetStyles( mServerIface, project, version, request, response ); |
137 | 140 | }
|
138 | 141 | else if ( QSTR_COMPARE( req, "DescribeLayer" ) )
|
139 | 142 | {
|
140 |
| - writeDescribeLayer( mServerIface, project, versionString, request, response ); |
| 143 | + writeDescribeLayer( mServerIface, project, version, request, response ); |
141 | 144 | }
|
142 | 145 | else if ( QSTR_COMPARE( req, "GetLegendGraphic" ) || QSTR_COMPARE( req, "GetLegendGraphics" ) )
|
143 | 146 | {
|
144 |
| - writeGetLegendGraphics( mServerIface, project, versionString, request, response ); |
| 147 | + writeGetLegendGraphics( mServerIface, project, version, request, response ); |
145 | 148 | }
|
146 | 149 | else if ( QSTR_COMPARE( req, "GetPrint" ) )
|
147 | 150 | {
|
148 |
| - writeGetPrint( mServerIface, project, versionString, request, response ); |
| 151 | + writeGetPrint( mServerIface, project, version, request, response ); |
149 | 152 | }
|
150 | 153 | else
|
151 | 154 | {
|
|
0 commit comments