From 4d04abb778ce476e9eaf0704f4bc2f0c5f2fbef8 Mon Sep 17 00:00:00 2001 From: Jan-Lukas Else Date: Sun, 29 Mar 2020 13:32:28 +0200 Subject: [PATCH] Handle case where slug param is set but slug is already in use --- main.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/main.go b/main.go index 0ba6505..31d222f 100644 --- a/main.go +++ b/main.go @@ -98,12 +98,19 @@ func ShortenHandler(w http.ResponseWriter, r *http.Request) { } slug := r.URL.Query().Get("slug") + manualSlug := false if slug == "" { _ = db.QueryRow("SELECT slug FROM redirect WHERE url = ?", requestUrl).Scan(&slug) + } else { + manualSlug = true } if slug != "" { if _, e := slugExists(slug); e { + if manualSlug { + http.Error(w, "slug already in use", http.StatusBadRequest) + return + } writeShortenedUrl(w, slug) return }