summaryrefslogtreecommitdiff
path: root/kcore/http.go
blob: f1a2b1ab37e15c7510cef6d0499e69d67f257187 (plain) (blame)
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

package kcore

import (
	"bytes"
	"context"
	"html/template"
	"net/http"

	"github.com/a-h/templ"
)

func ExecuteTemplate(w http.ResponseWriter, tpl template.Template, name string, data interface{}) {
	var buf bytes.Buffer
	err := tpl.ExecuteTemplate(&buf, name, data)
	Expect(err, "error executing template")
	w.Header().Set("Content-Type", "text/html; charset=UTF-8")
	_, err = buf.WriteTo(w)
	Expect(err, "error writing template to response writer")
}

func RenderPage(ctx context.Context, page templ.Component, w http.ResponseWriter) {
	var buf bytes.Buffer
	err := page.Render(ctx, &buf)
	Expect(err, "error rendering page")
	w.Header().Set("Content-Type", "text/html; charset=UTF-8")
	_, err = buf.WriteTo(w)
	Expect(err, "error writing page to response writer")
}

func Unauthorized(w http.ResponseWriter, err error) {
	w.WriteHeader(http.StatusUnauthorized)
	if err != nil {
		_, err = w.Write([]byte(err.Error()))
		Expect(err, "error writing response")
	}
}