Avoid adding duplicate shortUrl

This commit is contained in:
SinTan1729 2022-11-08 18:23:41 -06:00
parent 0740bc79aa
commit fab2924250
2 changed files with 20 additions and 6 deletions

View File

@ -31,11 +31,14 @@ public class Routes {
String shortUrl = split[1]; String shortUrl = split[1];
shortUrl = shortUrl.toLowerCase(); shortUrl = shortUrl.toLowerCase();
if (Utils.validate(shortUrl)) { var shortUrlPresent = urlRepository
.findForShortUrl(shortUrl);
if (shortUrlPresent.isEmpty() && Utils.validate(shortUrl)) {
return urlRepository.addUrl(longUrl, shortUrl); return urlRepository.addUrl(longUrl, shortUrl);
} else { } else {
res.status(HttpStatus.BAD_REQUEST_400); res.status(HttpStatus.BAD_REQUEST_400);
return "shortUrl not valid ([a-z0-9-_]+)"; return "shortUrl not valid or already in use";
} }
} }

View File

@ -72,11 +72,22 @@ const submitForm = () => {
method: "POST", method: "POST",
body: `${longUrl.value};${shortUrl.value}` body: `${longUrl.value};${shortUrl.value}`
}) })
.then(_ => { .then((res) => {
longUrl.value = ""; if (!res.ok) {
shortUrl.value = ""; controls = document.querySelector(".pure-controls");
errBox = document.createElement("p");
errBox.setAttribute("id", "errBox");
errBox.setAttribute("style", "color:red");
errBox.innerHTML = "Short URL not valid or already in use";
controls.appendChild(errBox);
}
else {
document.getElementById("errBox")?.remove();
longUrl.value = "";
shortUrl.value = "";
refreshData(); refreshData();
}
}); });
}; };