Change summary
create.go | 30 ++++--------------------------
helperfuncs.go | 33 +++++++++++++++++++++++++++++++++
main.go | 2 +-
3 files changed, 38 insertions(+), 27 deletions(-)
Detailed changes
@@ -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))
}
@@ -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
+}
@@ -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)