28 lines
602 B
Go
28 lines
602 B
Go
package router
|
|
|
|
import (
|
|
"fmt"
|
|
"html/template"
|
|
"io"
|
|
|
|
"allaboutapps.dev/aw/go-starter/internal/api/router/templates"
|
|
"github.com/labstack/echo/v4"
|
|
)
|
|
|
|
type echoRenderer struct {
|
|
templates map[templates.ViewTemplate]*template.Template
|
|
}
|
|
|
|
func (t *echoRenderer) Render(writer io.Writer, name string, data interface{}, _ echo.Context) error {
|
|
tmplHTML, ok := t.templates[templates.ViewTemplate(name)]
|
|
if !ok {
|
|
return fmt.Errorf("template not found: %s", name)
|
|
}
|
|
|
|
if err := tmplHTML.Execute(writer, data); err != nil {
|
|
return fmt.Errorf("failed to execute template: %w", err)
|
|
}
|
|
|
|
return nil
|
|
}
|