Make templateMode more understandable

This commit is contained in:
binwiederhier
2025-07-27 10:15:48 +02:00
parent d2b5917e2b
commit 1470afb715
2 changed files with 38 additions and 13 deletions

View File

@@ -992,12 +992,10 @@ func (s *Server) parsePublishParams(r *http.Request, m *message) (cache bool, fi
return false, false, "", "", "", false, errHTTPBadRequestPhoneNumberInvalid
}
template = templateMode(readParam(r, "x-template", "template", "tpl"))
var messageStr string
if template.Enabled() && template.Name() == "" {
// don't convert "\n" to literal newline for inline templates
messageStr = readParam(r, "x-message", "message", "m")
} else {
messageStr = strings.ReplaceAll(readParam(r, "x-message", "message", "m"), "\\n", "\n")
messageStr := readParam(r, "x-message", "message", "m")
if !template.InlineMode() {
// Convert "\n" to literal newline everything but inline mode
messageStr = strings.ReplaceAll(messageStr, "\\n", "\n")
}
if messageStr != "" {
m.Message = messageStr
@@ -1125,8 +1123,8 @@ func (s *Server) handleBodyAsTemplatedTextMessage(m *message, template templateM
return errHTTPEntityTooLargeJSONBody
}
peekedBody := strings.TrimSpace(string(body.PeekedBytes))
if templateName := template.Name(); templateName != "" {
if err := s.renderTemplateFromFile(m, templateName, peekedBody); err != nil {
if template.FileMode() {
if err := s.renderTemplateFromFile(m, template.FileName(), peekedBody); err != nil {
return err
}
} else {