Skip to content

Commit ddeaa57

Browse files
allyoucanmapofftherailz
authored andcommitted
Added filter on wfs/wps query request (#2403)
1 parent e12132c commit ddeaa57

3 files changed

Lines changed: 13 additions & 10 deletions

File tree

web/client/epics/autocomplete.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const {error} = require('../actions/notifications');
1616
const {typeNameSelector} = require('../selectors/query');
1717
const {maxFeaturesWPSSelector} = require('../selectors/queryform');
1818
const {getParsedUrl} = require('../utils/ConfigUtils');
19+
const {authkeyParamNameSelector} = require('../selectors/catalog');
1920

2021
/**
2122
* Epics for WFS query requests
@@ -25,13 +26,13 @@ const {getParsedUrl} = require('../utils/ConfigUtils');
2526

2627
module.exports = {
2728

28-
isAutoCompleteEnabled: (action$) =>
29+
isAutoCompleteEnabled: (action$, store) =>
2930
action$.ofType(FEATURE_TYPE_SELECTED)
3031
.switchMap((action) => {
3132
const parsedUrl = getParsedUrl(action.url, {
3233
"version": "1.0.0",
3334
"REQUEST": "DescribeProcess",
34-
"IDENTIFIER": "gs:PagedUnique" });
35+
"IDENTIFIER": "gs:PagedUnique" }, authkeyParamNameSelector(store.getState()));
3536
if (parsedUrl === null) {
3637
return Rx.Observable.of(setAutocompleteMode(false));
3738
}
@@ -70,7 +71,7 @@ module.exports = {
7071
startIndex: (action.fieldOptions.currentPage - 1) * maxFeaturesWPS,
7172
value: action.fieldValue
7273
});
73-
const parsedUrl = getParsedUrl(state.query.url, {"outputFormat": "json"});
74+
const parsedUrl = getParsedUrl(state.query.url, {"outputFormat": "json"}, authkeyParamNameSelector(store.getState()));
7475
if (parsedUrl === null) {
7576
return Rx.Observable.of(setAutocompleteMode(false));
7677
}

web/client/epics/wfsquery.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ const {CHANGE_MAP_VIEW} = require('../actions/map');
1414
const {FEATURE_TYPE_SELECTED, QUERY, UPDATE_QUERY, featureLoading, featureTypeLoaded, featureTypeError, querySearchResponse, queryError} = require('../actions/wfsquery');
1515
const {paginationInfo, isDescribeLoaded, describeSelector} = require('../selectors/query');
1616
const {mapSelector} = require('../selectors/map');
17+
const {authkeyParamNameSelector} = require('../selectors/catalog');
1718
const FilterUtils = require('../utils/FilterUtils');
1819
const CoordinatesUtils = require('../utils/CoordinatesUtils');
20+
const ConfigUtils = require('../utils/ConfigUtils');
1921
const assign = require('object-assign');
2022
const {spatialFieldMethodSelector, spatialFieldSelector, spatialFieldGeomTypeSelector, spatialFieldGeomCoordSelector, spatialFieldGeomSelector, spatialFieldGeomProjSelector} = require('../selectors/queryform');
2123
const {changeDrawingStatus} = require('../actions/draw');
@@ -144,10 +146,10 @@ const getWFSFilterData = (filterObj) => {
144146
return data;
145147
};
146148

147-
const getWFSFeature = (searchUrl, filterObj) => {
149+
const getWFSFeature = (searchUrl, filterObj, state) => {
148150
const data = getWFSFilterData(filterObj);
149151

150-
const urlParsedObj = Url.parse(searchUrl, true);
152+
const urlParsedObj = Url.parse(ConfigUtils.filterUrlParams(searchUrl, authkeyParamNameSelector(state)), true);
151153
let params = isObject(urlParsedObj.query) ? urlParsedObj.query : {};
152154
params.service = 'WFS';
153155
params.outputFormat = 'json';
@@ -177,7 +179,7 @@ const retryWithForcedSortOptions = (action, store) => {
177179
const sortOptions = getDefaultSortOptions(getFirstAttribute(store.getState()));
178180
return getWFSFeature(action.searchUrl, assign(action.filterObj, {
179181
sortOptions
180-
}))
182+
}), store.getState())
181183
.let(interceptOGCError)
182184
.map((newResponse) => {
183185
const state = store.getState();
@@ -206,7 +208,7 @@ const featureTypeSelectedEpic = (action$, store) =>
206208
const geometry = info.geometry[0] && info.geometry[0].attribute ? info.geometry[0].attribute : 'the_geom';
207209
return Rx.Observable.of(changeSpatialAttribute(geometry));
208210
}
209-
return Rx.Observable.defer( () => axios.get(action.url + '?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=' + action.typeName + '&outputFormat=application/json'))
211+
return Rx.Observable.defer( () => axios.get(ConfigUtils.filterUrlParams(action.url, authkeyParamNameSelector(store.getState())) + '?service=WFS&version=1.1.0&request=DescribeFeatureType&typeName=' + action.typeName + '&outputFormat=application/json'))
210212
.map((response) => {
211213
if (typeof response.data === 'object' && response.data.featureTypes && response.data.featureTypes[0]) {
212214
const info = extractInfo(response.data);
@@ -236,7 +238,7 @@ const wfsQueryEpic = (action$, store) =>
236238
action$.ofType(QUERY)
237239
.switchMap(action => {
238240
return Rx.Observable.merge(
239-
getWFSFeature(action.searchUrl, action.filterObj)
241+
getWFSFeature(action.searchUrl, action.filterObj, store.getState())
240242
.let(interceptOGCError)
241243
.switchMap((response) => {
242244
const state = store.getState();

web/client/utils/ConfigUtils.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,9 @@ var ConfigUtils = {
106106
}),
107107
mapStateSource: PropTypes.string
108108
},
109-
getParsedUrl: (urlToParse, options) => {
109+
getParsedUrl: (urlToParse, options, params = []) => {
110110
if (urlToParse) {
111-
const parsed = url.parse(urlToParse, true);
111+
const parsed = url.parse(ConfigUtils.filterUrlParams(urlToParse, params), true);
112112
let newPathname = null;
113113
if (endsWith(parsed.pathname, "wfs") || endsWith(parsed.pathname, "wms") || endsWith(parsed.pathname, "ows")) {
114114
newPathname = parsed.pathname.replace(/(wms|ows|wfs|wps)$/, "wps");

0 commit comments

Comments
 (0)