summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarson Fleming <cflems@cflems.net>2025-01-24 19:47:58 -0500
committerCarson Fleming <cflems@cflems.net>2025-01-24 19:47:58 -0500
commit33d0bd50cb663d1201d50d1c6a8ec5d8fd2a9807 (patch)
tree42d60cc65bfd8f794915f3e322b71f7a255d6475
parent6fefa86f7e4d5be811bdf357b09ecb8e41bfb390 (diff)
downloadfle.ms-main.tar.gz
relax slug validation patternHEADmain
-rw-r--r--routes.js4
-rw-r--r--utils.js4
2 files changed, 4 insertions, 4 deletions
diff --git a/routes.js b/routes.js
index ec333ec..8e7a21a 100644
--- a/routes.js
+++ b/routes.js
@@ -8,8 +8,8 @@ async function createRoute(res, url, slug) {
try {
if (!utils.isUrlFormatted(url))
return utils.sendBadRequestError(res, 'URL "'+url+'" is malformatted. Must be a valid URL.', 'Malformed URL');
- if (!utils.isAlphaNumeric(slug))
- return utils.sendBadRequestError(res, 'Slug "'+slug+'" is malformatted. Must be alphanumeric.', 'Malformed Short URL');
+ if (!utils.isSlugFormatted(slug))
+ return utils.sendBadRequestError(res, 'Slug "'+slug+'" is malformatted. Must be 2+ letters or numbers with optional dashes in the middle.', 'Malformed Short URL');
slug = slug.toLowerCase();
if (await Url.exists({slug: slug}))
diff --git a/utils.js b/utils.js
index 1fc17c6..379c65e 100644
--- a/utils.js
+++ b/utils.js
@@ -34,8 +34,8 @@ const helperFunctions = {
sendSuccessfulSlugCreation : function (res, slug) {
res.status(201).json({status: "SUCCESS", statusCode: 201, data: {shortUrl: config.BASE+slug}});
},
- isAlphaNumeric : function (str) {
- return str.match(/^[a-zA-Z0-9]+$/) !== null;
+ isSlugFormatted : function (str) {
+ return str.match(/^[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]$/) !== null;
},
isUrlFormatted : function (str) {
try {