3
0
corteza/system/renderer/generic_html.go
2021-02-17 08:50:28 +01:00

43 lines
825 B
Go

package renderer
import (
"bytes"
"context"
"io"
"github.com/cortezaproject/corteza-server/system/types"
)
type (
genericHTML struct{}
genericHTMLDriver struct{}
)
func newGenericHTML() driverFactory {
return &genericHTML{}
}
func (d *genericHTML) CanRender(t types.DocumentType) bool {
return t == types.DocumentTypeHTML || t == types.DocumentTypePlain
}
func (d *genericHTML) CanProduce(t types.DocumentType) bool {
return t == types.DocumentTypeHTML
}
func (d *genericHTML) Driver() driver {
return &genericHTMLDriver{}
}
func (d *genericHTMLDriver) Render(ctx context.Context, pl *driverPayload) (io.ReadSeeker, error) {
t, err := preprocHTMLTemplate(pl)
if err != nil {
return nil, err
}
dd := &bytes.Buffer{}
err = t.Execute(dd, pl.Variables)
return bytes.NewReader(dd.Bytes()), err
}