Allow setting custom slug
This commit is contained in:
parent
ed38de8674
commit
c05a90d9c4
28
main.go
28
main.go
|
@ -98,21 +98,27 @@ func ShortenHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var slug string
|
slug := r.URL.Query().Get("slug")
|
||||||
err := db.QueryRow("SELECT slug FROM redirect WHERE url = ?", requestUrl).Scan(&slug)
|
if slug == "" {
|
||||||
if err == nil {
|
_ = db.QueryRow("SELECT slug FROM redirect WHERE url = ?", requestUrl).Scan(&slug)
|
||||||
writeShortenedUrl(w, slug)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var exists = true
|
if slug != "" {
|
||||||
for exists == true {
|
if _, e := slugExists(slug); e {
|
||||||
slug = generateSlug()
|
writeShortenedUrl(w, slug)
|
||||||
err, exists = slugExists(slug)
|
|
||||||
if err != nil {
|
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
var exists = true
|
||||||
|
for exists == true {
|
||||||
|
slug = generateSlug()
|
||||||
|
var err error
|
||||||
|
err, exists = slugExists(slug)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stmt, err := db.Prepare("INSERT INTO redirect (slug, url, hits) VALUES (?, ?, ?)")
|
stmt, err := db.Prepare("INSERT INTO redirect (slug, url, hits) VALUES (?, ?, ?)")
|
||||||
|
|
Loading…
Reference in New Issue