Provide combined parse and execute method for the template renderer.

This commit is contained in:
mikestefanello 2021-12-21 11:00:32 -05:00
parent 92bb2d9d7b
commit 0e2625bf51
5 changed files with 46 additions and 46 deletions

View file

@ -19,15 +19,15 @@ import (
)
type Container struct {
Web *echo.Echo
Config *config.Config
Cache *cache.Cache
cacheClient *redis.Client
Database *sql.DB
ORM *ent.Client
Mail *MailClient
Auth *AuthClient
Templates *TemplateRenderer
Web *echo.Echo
Config *config.Config
Cache *cache.Cache
cacheClient *redis.Client
Database *sql.DB
ORM *ent.Client
Mail *MailClient
Auth *AuthClient
TemplateRenderer *TemplateRenderer
}
func NewContainer() *Container {
@ -140,12 +140,12 @@ func (c *Container) initAuth() {
}
func (c *Container) initTemplateRenderer() {
c.Templates = NewTemplateRenderer(c.Config)
c.TemplateRenderer = NewTemplateRenderer(c.Config)
}
func (c *Container) initMail() {
var err error
c.Mail, err = NewMailClient(c.Config, c.Templates)
c.Mail, err = NewMailClient(c.Config, c.TemplateRenderer)
if err != nil {
panic(fmt.Sprintf("failed to create mail client: %v", err))
}

View file

@ -14,4 +14,5 @@ func TestNewContainer(t *testing.T) {
assert.NotNil(t, c.ORM)
assert.NotNil(t, c.Mail)
assert.NotNil(t, c.Auth)
assert.NotNil(t, c.TemplateRenderer)
}

View file

@ -44,6 +44,20 @@ func NewTemplateRenderer(cfg *config.Config) *TemplateRenderer {
return t
}
func (t *TemplateRenderer) ParseAndExecute(module, key, name string, files []string, directories []string, data interface{}) (*bytes.Buffer, error) {
var buf *bytes.Buffer
var err error
if err = t.Parse(module, key, name, files, directories); err != nil {
return nil, err
}
if buf, err = t.Execute(module, key, name, data); err != nil {
return nil, err
}
return buf, nil
}
func (t *TemplateRenderer) Parse(module, key, name string, files []string, directories []string) error {
cacheKey := t.getCacheKey(module, key)