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
35
36
37
38
39
40
|
package handlers
import (
"log"
"net/http"
"go.lindenii.runxiyu.org/forge/forged/internal/database/queries"
"go.lindenii.runxiyu.org/forge/forged/internal/incoming/web/templates"
"go.lindenii.runxiyu.org/forge/forged/internal/incoming/web/types"
wtypes "go.lindenii.runxiyu.org/forge/forged/internal/incoming/web/types"
)
type IndexHTTP struct {
r templates.Renderer
}
func NewIndexHTTP(r templates.Renderer) *IndexHTTP {
return &IndexHTTP{
r: r,
}
}
func (h *IndexHTTP) Index(w http.ResponseWriter, r *http.Request, _ wtypes.Vars) {
groups, err := types.Base(r).Queries.GetRootGroups(r.Context())
if err != nil {
http.Error(w, "failed to get root groups", http.StatusInternalServerError)
log.Println("failed to get root groups", "error", err)
return
}
err = h.r.Render(w, "index", struct {
BaseData *types.BaseData
Groups []queries.GetRootGroupsRow
}{
BaseData: types.Base(r),
Groups: groups,
})
if err != nil {
log.Println("failed to render index page", "error", err)
}
}
|