create.go

 1package main
 2
 3import (
 4	"log"
 5	"net/http"
 6
 7	"github.com/dchest/uniuri"
 8	"github.com/dgraph-io/badger/v3"
 9)
10
11func create(writer http.ResponseWriter, request *http.Request) {
12	var url string
13	if request.URL.Query().Get("url") == "" {
14		http.Error(writer, "Bad request - URL parameter is required", 400)
15	} else {
16		url = request.URL.Query().Get("url")
17	}
18
19	var name string
20	if request.URL.Query().Get("name") == "" {
21		name = request.URL.Query().Get("name")
22	} else {
23		name = uniuri.NewLen(4)
24	}
25
26	err := db.Update(func(txn *badger.Txn) error {
27		return txn.Set([]byte(name), []byte(url))
28	})
29	if err != nil {
30		log.Fatal(err)
31	}
32}