Mercurial > lada > lada-server
diff src/main/java/de/intevation/lada/rest/stamm/OrtService.java @ 1227:a0968660a4c5
Use reusable validation rule instead of in-service implementation.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 09 Dec 2016 16:34:44 +0100 |
parents | 6e6134bf1d6d |
children | 32e27cb8cfef |
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/rest/stamm/OrtService.java Fri Dec 09 16:33:42 2016 +0100 +++ b/src/main/java/de/intevation/lada/rest/stamm/OrtService.java Fri Dec 09 16:34:44 2016 +0100 @@ -38,6 +38,9 @@ import de.intevation.lada.util.data.RepositoryType; import de.intevation.lada.util.rest.RequestMethod; import de.intevation.lada.util.rest.Response; +import de.intevation.lada.validation.Validator; +import de.intevation.lada.validation.Violation; +import de.intevation.lada.validation.annotation.ValidationConfig; /** * REST service for SOrt objects. @@ -95,6 +98,10 @@ @Inject private OrtFactory ortFactory; + @Inject + @ValidationConfig(type="Ort") + private Validator validator; + /** * Get all SOrt objects. * <p> @@ -262,22 +269,22 @@ ) { return new Response(false, 699, ort); } - QueryBuilder<Ort> builder = - new QueryBuilder<Ort>( - repository.entityManager("stamm"), - Ort.class - ); - builder.and("ortId", ort.getOrtId()); - builder.and("netzbetreiberId", ort.getNetzbetreiberId()); - List<Ort> orte = - repository.filterPlain(builder.getQuery(), "stamm"); - if (orte.isEmpty() || - orte.get(0).getId() == ort.getId()) { - ortFactory.transformCoordinates(ort); - return repository.create(ort, "stamm"); + Violation violation = validator.validate(ort); + if (violation.hasErrors()) { + Response response = new Response(false, 604, ort); + response.setErrors(violation.getErrors()); + response.setWarnings(violation.getWarnings()); + return response; } - return new Response(false, 672, null); + + ortFactory.transformCoordinates(ort); + Response response = repository.create(ort, "stamm"); + if(violation.hasWarnings()) { + response.setWarnings(violation.getWarnings()); + } + + return response; } /**