Skip to content
Snippets Groups Projects

Ozg 7501 weiterleitung vorbereiten

Merged Krzysztof Witukiewicz requested to merge OZG-7501-weiterleitung-vorbereiten into main
6 files
+ 134
8
Compare changes
  • Side-by-side
  • Inline
Files
6
/*
* Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.ozgcloud.alfa.forwarding;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import de.ozgcloud.alfa.collaboration.OrganisationsEinheitController;
import de.ozgcloud.alfa.common.command.CommandController;
import de.ozgcloud.alfa.common.command.CommandService;
import de.ozgcloud.alfa.common.command.CreateCommand;
import lombok.RequiredArgsConstructor;
@RestController
@RequestMapping(ForwardByVorgangCommandController.PATH)
@RequiredArgsConstructor
class ForwardByVorgangCommandController {
static final String PATH = "/api/vorgangs/{vorgangId}/{vorgangVersion}/forwarding";
private final CommandService commandService;
private final OrganisationsEinheitController organisationsEinheitController;
private final ForwardVorgangCommandBodyMapper bodyMapper;
@PostMapping
public ResponseEntity<Void> createCommand(@PathVariable String vorgangId, @PathVariable long vorgangVersion, @RequestBody CreateCommand command) {
var completeBody = addOrganisationEinheitData((ForwardVorgangCommandBody) command.getBody());
var enrichedCommand = command.toBuilder()
.vorgangId(vorgangId)
.relationId(vorgangId)
.body(completeBody)
.build();
var created = commandService.createCommand(enrichedCommand, vorgangVersion);
return ResponseEntity.created(linkTo(CommandController.class).slash(created.getId()).toUri()).build();
}
private ForwardVorgangCommandBody addOrganisationEinheitData(ForwardVorgangCommandBody body) {
var organisationEinheit = organisationsEinheitController.getOrganisationEinheit(body.getOrganisationEinheitId());
return bodyMapper.updateFromOrganisationEinheit(organisationEinheit, body);
}
}
Loading