diff --git a/create.go b/createHandler.go similarity index 100% rename from create.go rename to createHandler.go diff --git a/delete.go b/deleteHandler.go similarity index 57% rename from delete.go rename to deleteHandler.go index a94ce58db206954ce3677c25d1026def17b139ed..34ba7531b9c068b4e920e4101096c5c9ba6eecee 100644 --- a/delete.go +++ b/deleteHandler.go @@ -1,15 +1,11 @@ package main import ( - "fmt" - "log" "net/http" "strings" - - "github.com/dgraph-io/badger/v3" ) -func (m *model) delete(writer http.ResponseWriter, request *http.Request) { +func (m *model) deleteHandler(writer http.ResponseWriter, request *http.Request) { query := request.URL.Query() token := request.Header.Get("Authorization") @@ -25,12 +21,7 @@ func (m *model) delete(writer http.ResponseWriter, request *http.Request) { http.Error(writer, "400 Bad Request: name parameter is required", 400) } - err := m.database.Update(func(txn *badger.Txn) error { - return txn.Delete([]byte(name)) - }) - if err != nil { - log.Println(err) - } + response := m.delete(name) - http.Error(writer, fmt.Sprint("\"", name, "\" has been deleted"), 200) + writer.Write([]byte(response)) } diff --git a/edit.go b/edit.go deleted file mode 100644 index 75b27ace410c13bb8c189119d596966395fcff87..0000000000000000000000000000000000000000 --- a/edit.go +++ /dev/null @@ -1,6 +0,0 @@ -package main - -import "net/http" - -func (m model) edit(writer http.ResponseWriter, request *http.Request) { -} diff --git a/helperfuncs.go b/helperfuncs.go index 8f41f64b0da569f92dd65835734e091327ef87ef..fdf1b843a1f37c689ee33e776bad15e2db374f8f 100644 --- a/helperfuncs.go +++ b/helperfuncs.go @@ -7,6 +7,9 @@ import ( "github.com/dgraph-io/badger/v3" ) +// Create shortens a given URL with an optional name. If a name is provided, +// that name will be used. Otherwise, 4-character string will be generated and +// used instead. func (m model) create(name string, url string) string { err := m.database.Update(func(txn *badger.Txn) error { return txn.Set([]byte(name), []byte(url)) @@ -18,6 +21,20 @@ func (m model) create(name string, url string) string { return fmt.Sprint("URL mapped to ", name, "\n") } +// Delete removes a shortened URL from the database given its name. +func (m model) delete(name string) string { + err := m.database.Update(func(txn *badger.Txn) error { + return txn.Delete([]byte(name)) + }) + if err != nil { + log.Println(err) + } + + return fmt.Sprint("\"", name, "\" has been deleted") +} + +// nameExists returns true if the provided name is already stored in the +// database and false if it's not. func (m model) nameExists(name string) bool { err := m.database.View(func(txn *badger.Txn) error { _, err := txn.Get([]byte(name)) diff --git a/main.go b/main.go index e0eb07753920a3d15fcb1f8fb3f01384e8faacc8..5ede4ccd6b7803a1a4f7393a88bff23e6473763b 100644 --- a/main.go +++ b/main.go @@ -56,9 +56,9 @@ func main() { mux.HandleFunc("/login", m.login) mux.HandleFunc("/logout", m.logout) mux.HandleFunc("/create", m.createHandler) - mux.HandleFunc("/delete", m.delete) - mux.HandleFunc("/edit", m.edit) - mux.HandleFunc("/get", m.getLinks) + mux.HandleFunc("/read", m.readHandler) + mux.HandleFunc("/delete", m.deleteHandler) + mux.HandleFunc("/update", m.updateHandler) if err = httpServer.ListenAndServe(); err == http.ErrServerClosed { log.Println("Web server closed") diff --git a/getlinks.go b/readHandler.go similarity index 92% rename from getlinks.go rename to readHandler.go index 9f5e96ddbb5dc5c96d690e16d87fde84932b3449..bd17fbe4dd34aa762d818d03ac984d98e0de1f26 100644 --- a/getlinks.go +++ b/readHandler.go @@ -9,7 +9,7 @@ import ( "github.com/dgraph-io/badger/v3" ) -func (m model) getLinks(writer http.ResponseWriter, request *http.Request) { +func (m model) readHandler(writer http.ResponseWriter, request *http.Request) { token := request.Header.Get("Authorization") token = strings.TrimPrefix(token, "Bearer ") cookie, _ := request.Cookie("access_token") diff --git a/update.go b/updateHandler.go similarity index 94% rename from update.go rename to updateHandler.go index 80d0eb825f91e92434a5f004f1b70cc47a09e711..0c79806a68b510fcc030f094b8c3041a14440407 100644 --- a/update.go +++ b/updateHandler.go @@ -9,7 +9,7 @@ import ( "github.com/dgraph-io/badger/v3" ) -func (m *model) update(writer http.ResponseWriter, request *http.Request) { +func (m *model) updateHandler(writer http.ResponseWriter, request *http.Request) { query := request.URL.Query() token := request.Header.Get("Authorization")