diff --git a/2-Application/src/main/java/link/LinkUseCase.java b/2-Application/src/main/java/link/LinkUseCase.java index 2d12a7c..c6c8ffc 100644 --- a/2-Application/src/main/java/link/LinkUseCase.java +++ b/2-Application/src/main/java/link/LinkUseCase.java @@ -2,6 +2,7 @@ package link; import category.CategoryName; import category.CategoryRepository; +import exeptions.URLIsNotReachable; import tag.TaggingUseCase; import user.Username; @@ -27,7 +28,9 @@ public class LinkUseCase { public void addLink(LinkUrl url, Set categoryNames, Username creator) { - OnlineCheck.of(url); + if (!OnlineCheck.isReachable(url)) { + throw new URLIsNotReachable("The url " + url + " does not seem online. Check if it is correct and you have internet access."); + } var categoryIds = categoryNames.stream().map(categoryRepository::getIdByName).collect(Collectors.toSet()); diff --git a/3-Domain/src/main/java/exeptions/URLIsNotReachable.java b/3-Domain/src/main/java/exeptions/URLIsNotReachable.java new file mode 100644 index 0000000..d5e8acc --- /dev/null +++ b/3-Domain/src/main/java/exeptions/URLIsNotReachable.java @@ -0,0 +1,8 @@ +package exeptions; + +public class URLIsNotReachable extends RuntimeException { + + public URLIsNotReachable(String message) { + super(message); + } +} diff --git a/3-Domain/src/main/java/link/OnlineCheck.java b/3-Domain/src/main/java/link/OnlineCheck.java index 0a3e7b7..b67e446 100644 --- a/3-Domain/src/main/java/link/OnlineCheck.java +++ b/3-Domain/src/main/java/link/OnlineCheck.java @@ -5,7 +5,7 @@ import java.net.HttpURLConnection; public class OnlineCheck { - static Boolean of(LinkUrl url) { + static Boolean isReachable(LinkUrl url) { int responseCode = getResponseCode(url); return (responseCode < 400 || responseCode == 401 || responseCode == 403); }