sqltemplate.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package xorm
  2. import (
  3. "html/template"
  4. "os"
  5. "github.com/CloudyKit/jet"
  6. "gopkg.in/flosch/pongo2.v3"
  7. )
  8. type SqlTemplate interface {
  9. WalkFunc(path string, info os.FileInfo, err error) error
  10. paresSqlTemplate(filename string, filepath string) error
  11. ReadTemplate(filepath string) ([]byte, error)
  12. Execute(key string, args ...interface{}) (string, error)
  13. RootDir() string
  14. Extension() string
  15. SetSqlTemplateCipher(cipher Cipher)
  16. LoadSqlTemplate(filepath string) error
  17. BatchLoadSqlTemplate(filepathSlice []string) error
  18. ReloadSqlTemplate(filepath string) error
  19. BatchReloadSqlTemplate(filepathSlice []string) error
  20. AddSqlTemplate(key string, sqlTemplateStr string) error
  21. UpdateSqlTemplate(key string, sqlTemplateStr string) error
  22. RemoveSqlTemplate(key string)
  23. BatchAddSqlTemplate(key string, sqlTemplateStrMap map[string]string) error
  24. BatchUpdateSqlTemplate(key string, sqlTemplateStrMap map[string]string) error
  25. BatchRemoveSqlTemplate(key []string)
  26. }
  27. func Pongo2(directory, extension string) *Pongo2Template {
  28. template := make(map[string]*pongo2.Template, 100)
  29. return &Pongo2Template{
  30. SqlTemplateRootDir: directory,
  31. extension: extension,
  32. Template: template,
  33. }
  34. }
  35. func Default(directory, extension string) *HTMLTemplate {
  36. template := make(map[string]*template.Template, 100)
  37. return &HTMLTemplate{
  38. SqlTemplateRootDir: directory,
  39. extension: extension,
  40. Template: template,
  41. }
  42. }
  43. func Jet(directory, extension string) *JetTemplate {
  44. template := make(map[string]*jet.Template, 100)
  45. return &JetTemplate{
  46. SqlTemplateRootDir: directory,
  47. extension: extension,
  48. Template: template,
  49. }
  50. }