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}