Handle case where slug param is set but slug is already in use
This commit is contained in:
parent
a0eeac4eb1
commit
4d04abb778
7
main.go
7
main.go
|
@ -98,12 +98,19 @@ func ShortenHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
slug := r.URL.Query().Get("slug")
|
slug := r.URL.Query().Get("slug")
|
||||||
|
manualSlug := false
|
||||||
if slug == "" {
|
if slug == "" {
|
||||||
_ = db.QueryRow("SELECT slug FROM redirect WHERE url = ?", requestUrl).Scan(&slug)
|
_ = db.QueryRow("SELECT slug FROM redirect WHERE url = ?", requestUrl).Scan(&slug)
|
||||||
|
} else {
|
||||||
|
manualSlug = true
|
||||||
}
|
}
|
||||||
|
|
||||||
if slug != "" {
|
if slug != "" {
|
||||||
if _, e := slugExists(slug); e {
|
if _, e := slugExists(slug); e {
|
||||||
|
if manualSlug {
|
||||||
|
http.Error(w, "slug already in use", http.StatusBadRequest)
|
||||||
|
return
|
||||||
|
}
|
||||||
writeShortenedUrl(w, slug)
|
writeShortenedUrl(w, slug)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue