# HG changeset patch # User Tom Gottfried # Date 1481656017 -3600 # Node ID e49c006b9076a23d5c83c4af7e7dbd49b685c1b4 # Parent d67b10dc5d4b87787ea68c787efe8423a1d6dbac Handle errors in OrtFactory and pass them to the client. diff -r d67b10dc5d4b -r e49c006b9076 src/main/java/de/intevation/lada/rest/stamm/OrtService.java --- a/src/main/java/de/intevation/lada/rest/stamm/OrtService.java Tue Dec 13 19:05:53 2016 +0100 +++ b/src/main/java/de/intevation/lada/rest/stamm/OrtService.java Tue Dec 13 20:06:57 2016 +0100 @@ -26,6 +26,7 @@ import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.UriInfo; +import de.intevation.lada.importer.ReportItem; import de.intevation.lada.factory.OrtFactory; import de.intevation.lada.model.stammdaten.Filter; import de.intevation.lada.model.stammdaten.Ort; @@ -279,6 +280,15 @@ } ortFactory.transformCoordinates(ort); + if (ortFactory.hasErrors()) { + Violation factoryErrs = new Violation(); + for (ReportItem err : ortFactory.getErrors()) { + factoryErrs.addError(err.getKey(), err.getCode()); + } + Response response = new Response(false, 604, ort); + response.setErrors(factoryErrs.getErrors()); + return response; + } Response response = repository.create(ort, "stamm"); if(violation.hasWarnings()) { response.setWarnings(violation.getWarnings()); @@ -340,6 +350,15 @@ } ortFactory.transformCoordinates(ort); + if (ortFactory.hasErrors()) { + Violation factoryErrs = new Violation(); + for (ReportItem err : ortFactory.getErrors()) { + factoryErrs.addError(err.getKey(), err.getCode()); + } + Response response = new Response(false, 604, ort); + response.setErrors(factoryErrs.getErrors()); + return response; + } Response response = repository.update(ort, "stamm"); if(violation.hasWarnings()) { response.setWarnings(violation.getWarnings());