1package main
 2
 3import (
 4	"fmt"
 5	"log"
 6	"net/http"
 7	"strings"
 8
 9	"github.com/dgraph-io/badger/v3"
10)
11
12func (m *model) delete(writer http.ResponseWriter, request *http.Request) {
13	query := request.URL.Query()
14
15	token := request.Header.Get("Authorization")
16	token = strings.TrimPrefix(token, "Bearer ")
17
18	if token != m.AccessToken {
19		http.Error(writer, "401 Unauthorized: You do not have permission to delete shortlinks", 403)
20		return
21	}
22
23	name := query.Get("name")
24	if len(name) == 0 {
25		http.Error(writer, "400 Bad Request: name parameter is required", 400)
26	}
27
28	err := m.database.Update(func(txn *badger.Txn) error {
29		return txn.Delete([]byte(name))
30	})
31	if err != nil {
32		log.Println(err)
33	}
34
35	http.Error(writer, fmt.Sprint("\"", name, "\" has been deleted"), 200)
36}