From 1938113132a9fc4e36c71ff7172aa993142bec00 Mon Sep 17 00:00:00 2001 From: Amolith Date: Wed, 9 Feb 2022 23:49:28 -0500 Subject: [PATCH] Generalise create helper/function --- create.go | 30 ++++-------------------------- helperfuncs.go | 33 +++++++++++++++++++++++++++++++++ main.go | 2 +- 3 files changed, 38 insertions(+), 27 deletions(-) create mode 100644 helperfuncs.go diff --git a/create.go b/create.go index 6522fe330112559114c69bbddcff153c3557d7fa..bf81bdee38ec185975323ddf5b3a13ac2f7508bd 100644 --- a/create.go +++ b/create.go @@ -1,23 +1,20 @@ package main import ( - "fmt" "log" "net/http" "strings" "github.com/dchest/uniuri" - "github.com/dgraph-io/badger/v3" ) -func (m *model) create(writer http.ResponseWriter, request *http.Request) { +func (m *model) createHandler(writer http.ResponseWriter, request *http.Request) { query := request.URL.Query() token := request.Header.Get("Authorization") token = strings.TrimPrefix(token, "Bearer ") - cookie, err := request.Cookie("access_token") - if token != m.AccessToken && cookie.Value != m.AccessToken { + if token != m.AccessToken { http.Error(writer, "401 Unauthorized: You do not have permission to create shortlinks", 403) return } @@ -42,26 +39,7 @@ func (m *model) create(writer http.ResponseWriter, request *http.Request) { log.Println("Saving \"" + url + "\" mapped to \"" + name + "\"") - err = m.database.Update(func(txn *badger.Txn) error { - return txn.Set([]byte(name), []byte(url)) - }) - if err != nil { - log.Fatal(err) - } - - writer.Write([]byte(fmt.Sprint("URL mapped to ", name, "\n"))) -} + response := m.create(name, url) -func (m model) nameExists(name string) bool { - err := m.database.View(func(txn *badger.Txn) error { - _, err := txn.Get([]byte(name)) - if err != nil { - return err - } - return nil - }) - if err != nil { - return true - } - return false + writer.Write([]byte(response)) } diff --git a/helperfuncs.go b/helperfuncs.go new file mode 100644 index 0000000000000000000000000000000000000000..8f41f64b0da569f92dd65835734e091327ef87ef --- /dev/null +++ b/helperfuncs.go @@ -0,0 +1,33 @@ +package main + +import ( + "fmt" + "log" + + "github.com/dgraph-io/badger/v3" +) + +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)) + }) + if err != nil { + log.Fatal(err) + } + + return fmt.Sprint("URL mapped to ", name, "\n") +} + +func (m model) nameExists(name string) bool { + err := m.database.View(func(txn *badger.Txn) error { + _, err := txn.Get([]byte(name)) + if err != nil { + return err + } + return nil + }) + if err != nil { + return true + } + return false +} diff --git a/main.go b/main.go index 21faf96d30c7664f333ce16647e25a73df8423e5..e0eb07753920a3d15fcb1f8fb3f01384e8faacc8 100644 --- a/main.go +++ b/main.go @@ -55,7 +55,7 @@ func main() { mux.HandleFunc("/", m.root) mux.HandleFunc("/login", m.login) mux.HandleFunc("/logout", m.logout) - mux.HandleFunc("/create", m.create) + mux.HandleFunc("/create", m.createHandler) mux.HandleFunc("/delete", m.delete) mux.HandleFunc("/edit", m.edit) mux.HandleFunc("/get", m.getLinks)