Change summary
create.go | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
Detailed changes
@@ -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 {