diff --git a/src/main/java/de/assecutor/pdftool/api/InvoiceSigningController.java b/src/main/java/de/assecutor/pdftool/api/InvoiceSigningController.java index 56e6470..73910b0 100644 --- a/src/main/java/de/assecutor/pdftool/api/InvoiceSigningController.java +++ b/src/main/java/de/assecutor/pdftool/api/InvoiceSigningController.java @@ -60,6 +60,11 @@ public class InvoiceSigningController { this.validator = validator; } + /** + * Erzeugt aus PDF und Metadaten eine ZUGFeRD-Rechnung als ZIP (PDF + Prüfbericht). + * HTTP 200 bei gültiger, HTTP 422 bei ungültiger Rechnung; das ZIP wird in + * beiden Fällen geliefert. + */ @PostMapping(value = "/sign", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public ResponseEntity sign(@RequestPart("file") MultipartFile file, @RequestPart("metadata") String metadataJson) throws IOException { @@ -70,7 +75,8 @@ public class InvoiceSigningController { headers.setContentType(MediaType.parseMediaType("application/zip")); headers.setContentDisposition(ContentDisposition.attachment().filename(result.zipFileName()).build()); headers.set(VALIDATION_HEADER, String.valueOf(result.valid())); - return new ResponseEntity<>(result.zip(), headers, HttpStatus.OK); + return new ResponseEntity<>(result.zip(), headers, + result.valid() ? HttpStatus.OK : HttpStatus.UNPROCESSABLE_ENTITY); } /**