Skip to content

Commit baebd4c

Browse files
committed
Add separate check for deleted geometries after performing WFS-T transaction
1 parent 414407c commit baebd4c

1 file changed

Lines changed: 15 additions & 10 deletions

File tree

src/server/sendDataToGeoserver.js

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -275,24 +275,32 @@ function isDanteConcept(fieldValue) {
275275
}
276276

277277
async function performEditTransaction(geometryIds, changeMap, fieldConfiguration, authorizationString) {
278-
await performTransaction(
278+
const result = await performTransaction(
279279
geometryIds,
280-
getEditRequestXml(geometryIds, changeMap, fieldConfiguration.edit_wfs_feature_type.ValueText),
280+
getEditRequestXml(changeMap, fieldConfiguration.edit_wfs_feature_type.ValueText),
281281
fieldConfiguration.edit_wfs_url.ValueText,
282282
authorizationString
283283
);
284+
285+
if (!new RegExp('<wfs:totalUpdated>' + geometryIds.length + '<\/wfs:totalUpdated>').test(result)) {
286+
throwErrorToFrontend('Bei der Aktualisierung von Geometrie-Datensätzen ist ein Fehler aufgetreten.', result);
287+
}
284288
}
285289

286290
async function performDeleteTransaction(geometryIds, fieldConfiguration, authorizationString) {
287-
await performTransaction(
291+
const result = await performTransaction(
288292
geometryIds,
289-
getDeleteRequestXml(geometryIds, fieldConfiguration.edit_wfs_feature_type.ValueText),
293+
getDeleteRequestXml(fieldConfiguration.edit_wfs_feature_type.ValueText),
290294
fieldConfiguration.edit_wfs_url.ValueText,
291295
authorizationString
292296
);
297+
298+
if (!new RegExp('<wfs:totalDeleted>' + geometryIds.length + '<\/wfs:totalDeleted>').test(result)) {
299+
throwErrorToFrontend('Beim Löschen von Geometrie-Datensätzen ist ein Fehler aufgetreten.', result);
300+
}
293301
}
294302

295-
async function performTransaction(geometryIds, requestXml, wfsUrl, authorizationString) {
303+
async function performTransaction(requestXml, wfsUrl, authorizationString) {
296304
const transactionUrl = wfsUrl + '?service=WFS&version=1.1.0&request=Transaction';
297305

298306
try {
@@ -304,12 +312,9 @@ async function performTransaction(geometryIds, requestXml, wfsUrl, authorization
304312
},
305313
body: requestXml
306314
});
307-
const xmlResult = await response.text();
308-
if (!new RegExp('<wfs:totalUpdated>' + geometryIds.length + '<\/wfs:totalUpdated>').test(xmlResult)) {
309-
throwErrorToFrontend('Bei der Aktualisierung von Geometrie-Datensätzen ist ein Fehler aufgetreten.', xmlResult);
310-
}
315+
return await response.text();
311316
} catch (err) {
312-
throwErrorToFrontend('Bei der Aktualisierung von Geometrie-Datensätzen ist ein Fehler aufgetreten.', err);
317+
throwErrorToFrontend('Beim Zugriff auf den WFS-T ist ein Fehler aufgetreten.', JSON.stringify(err));
313318
}
314319
}
315320

0 commit comments

Comments
 (0)