diff --git a/create.go b/create.go index ba523a714c984727a40319ff94d1ba59f906d836..6522fe330112559114c69bbddcff153c3557d7fa 100644 --- a/create.go +++ b/create.go @@ -30,27 +30,26 @@ func (m *model) create(writer http.ResponseWriter, request *http.Request) { name := query.Get("name") if len(name) == 0 { - for { + name = uniuri.NewLen(4) + for !m.nameExists(name) { name = uniuri.NewLen(4) - if !m.nameExists(name) { - break - } + log.Println("Generated new name:", name) } - } else if m.nameExists(name) { + } else if !m.nameExists(name) { http.Error(writer, "406 Not Acceptable: A shortened URL with this name already exists", 406) return } log.Println("Saving \"" + url + "\" mapped to \"" + name + "\"") - err := m.database.Update(func(txn *badger.Txn) error { + err = m.database.Update(func(txn *badger.Txn) error { return txn.Set([]byte(name), []byte(url)) }) if err != nil { log.Fatal(err) } - http.Error(writer, fmt.Sprint("URL mapped to "+name), 200) + writer.Write([]byte(fmt.Sprint("URL mapped to ", name, "\n"))) } func (m model) nameExists(name string) bool {