Skip to content

Commit 049763a

Browse files
authored
Merge pull request #58 from CodeShellDev/feat/message-templates
fix: message alias overwrite
2 parents 797a969 + 7ceed86 commit 049763a

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

internals/proxy/middlewares/aliases.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ func getData(key string, aliases []middlewareTypes.DataAlias, data map[string]an
107107
value = aliasValue
108108
}
109109

110-
data[alias.Alias] = nil
110+
delete(data, alias.Alias)
111111
}
112112
}
113113

internals/proxy/middlewares/message.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,19 @@ func (data MessageMiddleware) Use() http.Handler {
8282
}
8383

8484
func TemplateMessage(template string, data map[string]any, VARIABLES map[string]any) (map[string]any, error) {
85-
data["message"] = template
85+
log.Dev(template)
86+
87+
data["message_template"] = template
8688

8789
data, ok, err := TemplateBody(data, VARIABLES)
8890

8991
if err != nil || !ok || data == nil {
9092
return data, err
9193
}
9294

95+
data["message"] = data["message_template"]
96+
97+
delete(data, "message_template")
98+
9399
return data, nil
94100
}

utils/templating/templating.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ import (
77
"regexp"
88
"strings"
99
"text/template"
10+
11+
"github.com/codeshelldev/secured-signal-api/utils/jsonutils"
12+
"github.com/codeshelldev/secured-signal-api/utils/logger"
1013
)
1114

1215
func normalize(value any) string {
@@ -128,25 +131,33 @@ func RenderJSONTemplate(name string, data map[string]any, variables map[string]a
128131

129132
tmplStr := string(jsonBytes)
130133

134+
logger.Dev("1\n", tmplStr)
135+
131136
re, err := regexp.Compile(`{{\s*\.([a-zA-Z0-9_.]+)\s*}}`)
132137

133138
// Add normalize() to be able to remove Quotes from Arrays
134139
if err == nil {
135140
tmplStr = re.ReplaceAllString(tmplStr, "{{normalize .$1}}")
136141
}
137142

143+
logger.Dev("2\n", tmplStr)
144+
138145
templt := CreateTemplateWithFunc(name, template.FuncMap{
139146
"normalize": normalizeJSON,
140147
})
141148

142149
jsonStr, err := ParseTemplate(templt, tmplStr, variables)
143150

151+
logger.Dev("3\n", tmplStr)
152+
144153
if err != nil {
145154
return nil, err
146155
}
147156

148157
jsonStr = cleanQuotedPairsJSON(jsonStr)
149158

159+
logger.Dev("4\n", tmplStr)
160+
150161
// Remove the Quotes around "<<[item1,item2]>>"
151162
re, err = regexp.Compile(`"<<(.*?)>>"`)
152163

@@ -156,8 +167,12 @@ func RenderJSONTemplate(name string, data map[string]any, variables map[string]a
156167

157168
jsonStr = re.ReplaceAllString(jsonStr, "$1")
158169

170+
logger.Dev("5\n", tmplStr)
171+
159172
err = json.Unmarshal([]byte(jsonStr), &data)
160173

174+
logger.Dev("6\n", jsonutils.ToJson(data))
175+
161176
if err != nil {
162177
return nil, err
163178
}

0 commit comments

Comments
 (0)