From a03206a8e175d63636d0555bfcf8c8eb19a9ffc4 Mon Sep 17 00:00:00 2001 From: qvalentin Date: Tue, 17 May 2022 16:53:32 +0200 Subject: [PATCH] refactor long method --- .../src/main/java/link/LinkUseCase.java | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/2-Application/src/main/java/link/LinkUseCase.java b/2-Application/src/main/java/link/LinkUseCase.java index 01eae21..282c3cf 100644 --- a/2-Application/src/main/java/link/LinkUseCase.java +++ b/2-Application/src/main/java/link/LinkUseCase.java @@ -1,5 +1,7 @@ package link; +import category.Category; +import category.CategoryId; import category.CategoryName; import category.CategoryRepository; import exeptions.CategroyDoesNotExist; @@ -8,6 +10,7 @@ import tag.TaggingUseCase; import user.Username; import java.util.Set; +import java.util.function.Function; import java.util.stream.Collectors; public class LinkUseCase { @@ -45,19 +48,21 @@ public class LinkUseCase { } public Set getLinks() { - return linkRepository - .getAll() - .stream() - .map(link -> new LinkDto(link.getCreator(), - link.getUrl(), - link - .getCategoryIds() - .stream() - .map(categoryRepository::getById) - .map(optional -> optional.orElseThrow(() -> new CategroyDoesNotExist( - "A Category for a certain id does not exits. You must create it first."))) - .collect(Collectors.toSet()), - link.getTags())) - .collect(Collectors.toSet()); + return linkRepository.getAll().stream().map(convertLink()).collect(Collectors.toSet()); + } + + private Function convertLink() { + return link -> new LinkDto(link.getCreator(), link.getUrl(), getCategoriesOf(link), link.getTags()); + } + + private Set getCategoriesOf(Link link) { + return link.getCategoryIds().stream().map(getCategoryForId()).collect(Collectors.toSet()); + } + + private Function getCategoryForId() { + return id -> categoryRepository + .getById(id) + .orElseThrow(() -> new CategroyDoesNotExist( + "A Category for a certain id does not exits. You must create it first.")); } }