all sorts of things
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
qvalentin 2022-05-16 21:09:45 +02:00
parent d1fdad7cf9
commit 3ef31c9c3c
Signed by: qvalentin
GPG key ID: C979FA1EAFCABF1C
23 changed files with 228 additions and 27 deletions

View file

@ -7,7 +7,7 @@ public class CategoryUseCase {
private final CategoryRepository categoryRepository;
private final CategoryIdGenerator categoryIdGenerator;
CategoryUseCase(final CategoryRepository categoryRepository, final CategoryIdGenerator idGenerator) {
public CategoryUseCase(final CategoryRepository categoryRepository, final CategoryIdGenerator idGenerator) {
this.categoryRepository = categoryRepository;
this.categoryIdGenerator = idGenerator;
}

View file

@ -0,0 +1,11 @@
package link;
import category.Category;
import tag.Tag;
import user.Username;
import java.util.Set;
public record LinkDto(Username creator, LinkUrl url, Set<Category> categories, Set<Tag> tags) {
}

View file

@ -2,6 +2,7 @@ package link;
import category.CategoryName;
import category.CategoryRepository;
import exeptions.CategroyDoesNotExist;
import exeptions.URLIsNotReachable;
import tag.TaggingUseCase;
import user.Username;
@ -43,4 +44,20 @@ public class LinkUseCase {
linkRepository.add(link);
}
public Set<LinkDto> 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());
}
}

View file

@ -1,19 +1,21 @@
package tag;
import link.LinkUrl;
import link.RandomLinkIdGenerator;
import java.util.HashSet;
import java.util.Set;
public class TaggingUseCase {
TagMatcherRepository tagMatcherRepository;
public TaggingUseCase(TagMatcherRepository tagMatcherRepository) {
public TaggingUseCase(TagMatcherRepository tagMatcherRepository, RandomLinkIdGenerator randomLinkIdGenerator) {
this.tagMatcherRepository = tagMatcherRepository;
}
public Set<Tag> getTagsFor(LinkUrl url) {
Set<Tag> result = Set.of();
Set<Tag> result = new HashSet<>();
tagMatcherRepository.getTagMatchers().forEach(tagMatcher -> tagMatcher.ifMatches(url).addTo(result));
return result;
}