diff options
| author | Mathias Magnusson <mathias@magnusson.space> | 2026-01-23 19:49:07 +0100 |
|---|---|---|
| committer | Mathias Magnusson <mathias@magnusson.space> | 2026-01-23 19:51:21 +0100 |
| commit | 3d113f41cacc9e1f04e453d04fcab6af6a72fbf4 (patch) | |
| tree | 5fb7fb9482c5e3896761ea21e90498cf416bba14 | |
| parent | 8160a5b604ca7bacb19b2bd8b516c47d1828924b (diff) | |
| download | hh-3d113f41cacc9e1f04e453d04fcab6af6a72fbf4.tar.gz | |
add .editorconfig
also indent .go.tmpl using tabs
| -rw-r--r-- | .editorconfig | 7 | ||||
| -rw-r--r-- | cmd/generate/templates.go.tmpl | 110 |
2 files changed, 62 insertions, 55 deletions
diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..c889c2d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,7 @@ +root = true + +[*.{go,go.tmpl}] +indent_style = tab +charset = utf-8 +end_of_line = lf +insert_final_newline = true diff --git a/cmd/generate/templates.go.tmpl b/cmd/generate/templates.go.tmpl index 9bd4e87..ff63337 100644 --- a/cmd/generate/templates.go.tmpl +++ b/cmd/generate/templates.go.tmpl @@ -4,69 +4,69 @@ package {{ .PackageName }} import ( - {{ range $_, $i := .Imports -}} - "{{ $i }}" - {{ end }} + {{ range $_, $i := .Imports -}} + "{{ $i }}" + {{ end }} ) func hhMountRoutes(mux *http.ServeMux) { - if mux == nil { - mux = http.DefaultServeMux - } - wrapper := func(handler func(w http.ResponseWriter, r *http.Request)) http.Handler { - return http.HandlerFunc(func (w http.ResponseWriter, r *http.Request) { - handler(w, r) - }) - } + if mux == nil { + mux = http.DefaultServeMux + } + wrapper := func(handler func(w http.ResponseWriter, r *http.Request)) http.Handler { + return http.HandlerFunc(func (w http.ResponseWriter, r *http.Request) { + handler(w, r) + }) + } - {{ range $_, $fn := .Functions -}} - mux.Handle({{ $fn.Pattern | quote }}, wrapper(hh_{{ $fn.Name }})) - {{ end }} + {{ range $_, $fn := .Functions -}} + mux.Handle({{ $fn.Pattern | quote }}, wrapper(hh_{{ $fn.Name }})) + {{ end }} } {{ range $_, $fn := .Functions }} func hh_{{ $fn.Name }}(w http.ResponseWriter, r *http.Request) { - defer func() { - err := recover() - if err == nil { - return - } - w.WriteHeader(http.StatusInternalServerError) - id := uuid.New() - w.Write([]byte("Internal server error. id = " + id.String())) - slog.Error("Panic in handler", "handler", {{ quote $fn.Name }}, "id", id, "error", err) - }() - {{- if $fn.DoParseForm }} - if err := r.ParseForm(); err != nil { - panic("todo: Bad request") - } - {{ end }} - var parsed {{ $fn.RequestTypeDef }} - {{- range $_, $f := $fn.RequestTypeFields }} - {{ if eq $f.TypeDef "*http.Request" }} - parsed.{{ $f.Name }} = r - {{ continue }} - {{ end }} - {{ $f.Name }}, {{ $f.Name }}Skipped := {{ extractorName $f.Extractor }}(r, {{ $f.NameInReq | quote }}) - {{ if not $f.Optional }} - if {{ $f.Name }}Skipped { - panic("todo: Bad request: " + {{ $f.Extractor | quote }} + " value " + {{ $f.NameInReq | quote }} + " missing") - } - {{ end }} + defer func() { + err := recover() + if err == nil { + return + } + w.WriteHeader(http.StatusInternalServerError) + id := uuid.New() + w.Write([]byte("Internal server error. id = " + id.String())) + slog.Error("Panic in handler", "handler", {{ quote $fn.Name }}, "id", id, "error", err) + }() + {{- if $fn.DoParseForm }} + if err := r.ParseForm(); err != nil { + panic("todo: Bad request") + } + {{ end }} + var parsed {{ $fn.RequestTypeDef }} + {{- range $_, $f := $fn.RequestTypeFields }} + {{ if eq $f.TypeDef "*http.Request" }} + parsed.{{ $f.Name }} = r + {{ continue }} + {{ end }} + {{ $f.Name }}, {{ $f.Name }}Skipped := {{ extractorName $f.Extractor }}(r, {{ $f.NameInReq | quote }}) + {{ if not $f.Optional }} + if {{ $f.Name }}Skipped { + panic("todo: Bad request: " + {{ $f.Extractor | quote }} + " value " + {{ $f.NameInReq | quote }} + " missing") + } + {{ end }} - {{ if $f.Optional }} if !{{ $f.Name }}Skipped {{ end -}} { - var err error - parsed.{{ $f.Name }}, err = {{ converterName $f.TypeDef }}({{ $f.Name }}) - if err != nil { - panic("todo: Bad request: " + {{ $f.NameInReq | quote }} + " must be a valid " + {{ $f.TypeDef | quote }}) - } - } - {{ end }} - {{ $fn.Name }}(w, parsed) - {{ if false }} - {{ range $_, $f := $fn.RequestTypeFields -}} - {{ $f.Name }}: {{ $f.Name }}, - {{ end }} - {{ end }} + {{ if $f.Optional }} if !{{ $f.Name }}Skipped {{ end -}} { + var err error + parsed.{{ $f.Name }}, err = {{ converterName $f.TypeDef }}({{ $f.Name }}) + if err != nil { + panic("todo: Bad request: " + {{ $f.NameInReq | quote }} + " must be a valid " + {{ $f.TypeDef | quote }}) + } + } + {{ end }} + {{ $fn.Name }}(w, parsed) + {{ if false }} + {{ range $_, $f := $fn.RequestTypeFields -}} + {{ $f.Name }}: {{ $f.Name }}, + {{ end }} + {{ end }} } {{ end }} |
