1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package gatewayhttp
import (
"log/slog"
"net/http"
"github.com/johnandersen777/socialweb-computer-kcp/internal/kit/pinneddownloads"
)
const DownloadsRoute = "GET /downloads/{sha256}/{name}"
type DownloadsOptions struct {
Downloads *pinneddownloads.Set
Log *slog.Logger
}
type Downloads struct {
handler *pinneddownloads.Handler
}
func NewDownloads(opts DownloadsOptions) *Downloads {
return &Downloads{handler: pinneddownloads.NewHandler(opts.Downloads, opts.Log)}
}
func (d *Downloads) Register(mux *http.ServeMux) {
d.handler.Register(mux, DownloadsRoute)
}
func (d *Downloads) Handler() http.Handler {
mux := http.NewServeMux()
d.Register(mux)
return mux
}