diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandModelAssembler.java index eb69a13aeb06a56f82e96d9f61da74940f348b65..74c0bcb2df4a2abeae92823d91b7c51a1c15ebb5 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandModelAssembler.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandModelAssembler.java @@ -34,6 +34,7 @@ import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.Link; import org.springframework.hateoas.LinkRelation; import org.springframework.hateoas.server.RepresentationModelAssembler; +import org.springframework.hateoas.server.mvc.WebMvcLinkBuilder; import org.springframework.stereotype.Component; import de.ozgcloud.alfa.bescheid.BescheidController; @@ -86,31 +87,19 @@ class CommandModelAssembler implements RepresentationModelAssembler<Command, Ent Link effectedResourceLinkByOrderType(Command entity) { var type = entity.getCommandOrder().getType(); - if (type == CommandOrder.Type.FORWARDING) { - return linkTo(methodOn(ForwardingController.class).findByVorgangId(entity.getVorgangId())).withRel(REL_EFFECTED_RESOURCE); - } - if (type == CommandOrder.Type.KOMMENTAR) { - return linkTo(KommentarController.class).slash(entity.getRelationId()).withRel(REL_EFFECTED_RESOURCE); - } - if (type == CommandOrder.Type.VORGANG) { - return linkTo(VorgangController.class).slash(entity.getRelationId()).withRel(REL_EFFECTED_RESOURCE); - } - if (type == CommandOrder.Type.VORGANG_LIST) { - return linkTo(VorgangController.class).withRel(REL_EFFECTED_RESOURCE); - } - if (type == CommandOrder.Type.WIEDERVORLAGE) { - return linkTo(WiedervorlageController.class).slash(entity.getRelationId()).withRel(REL_EFFECTED_RESOURCE); - } - if (type == CommandOrder.Type.BESCHEID) { - return linkTo(methodOn(BescheidController.class).getDraft(entity.getVorgangId())).withRel(REL_EFFECTED_RESOURCE); - } - if (type == CommandOrder.Type.DOCUMENT) { - return linkTo(DocumentController.class).slash(entity.getCreatedResource()).withRel(REL_EFFECTED_RESOURCE); - } - if (type == CommandOrder.Type.COLLABORATION) { - return linkTo(methodOn(CollaborationByVorgangController.class).getAllByVorgangId(entity.getVorgangId())).withRel(REL_EFFECTED_RESOURCE); - } - throw new IllegalArgumentException("Unknown CommandOrder: " + entity.getOrder()); + WebMvcLinkBuilder linkBuilder = switch (type) { + case FORWARDING -> linkTo(methodOn(ForwardingController.class).findByVorgangId(entity.getVorgangId())); + case KOMMENTAR -> linkTo(KommentarController.class).slash(entity.getRelationId()); + case VORGANG -> linkTo(VorgangController.class).slash(entity.getRelationId()); + case VORGANG_LIST -> linkTo(VorgangController.class); + case WIEDERVORLAGE -> linkTo(WiedervorlageController.class).slash(entity.getRelationId()); + case BESCHEID -> linkTo(methodOn(BescheidController.class).getDraft(entity.getVorgangId())); + case DOCUMENT -> linkTo(DocumentController.class).slash(entity.getCreatedResource()); + case COLLABORATION -> linkTo(methodOn(CollaborationByVorgangController.class).getAllByVorgangId(entity.getVorgangId())); + default -> throw new IllegalArgumentException("Unknown CommandOrder: " + entity.getOrder()); + }; + + return linkBuilder.withRel(REL_EFFECTED_RESOURCE); } public CollectionModel<EntityModel<Command>> toCollectionModel(Stream<Command> entities) {