mirror of
https://github.com/abhinavxd/libredesk.git
synced 2026-10-26 14:29:36 +00:00
Merge pull request #601 from anvme/fix/csat-feedback-utf8
fix: truncate CSAT feedback by runes to preserve valid UTF-8
This commit is contained in:
+13
-7
@@ -152,10 +152,7 @@ func handleSubmitCSATResponse(r *fastglue.Request) error {
|
||||
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Invalid UUID", nil, envelope.InputError)
|
||||
}
|
||||
|
||||
// Trim feedback if it exceeds max length.
|
||||
if len(req.Feedback) > maxCsatFeedbackLength {
|
||||
req.Feedback = req.Feedback[:maxCsatFeedbackLength]
|
||||
}
|
||||
req.Feedback = truncateFeedback(req.Feedback)
|
||||
|
||||
// Update CSAT response
|
||||
if err := app.csat.UpdateResponse(uuid, req.Rating, req.Feedback, nil); err != nil {
|
||||
@@ -187,9 +184,7 @@ func validateCSATForm(r *fastglue.Request) (int, string, json.RawMessage, string
|
||||
return 0, "", nil, "csat.pleaseFillRequired"
|
||||
}
|
||||
|
||||
if len(feedback) > maxCsatFeedbackLength {
|
||||
feedback = feedback[:maxCsatFeedbackLength]
|
||||
}
|
||||
feedback = truncateFeedback(feedback)
|
||||
|
||||
// Collect extra form fields into meta, skipping the known fields.
|
||||
meta := make(map[string]string)
|
||||
@@ -220,3 +215,14 @@ func validateCSATForm(r *fastglue.Request) (int, string, json.RawMessage, string
|
||||
|
||||
return rating, feedback, metaJSON, ""
|
||||
}
|
||||
|
||||
func truncateFeedback(s string) string {
|
||||
if len(s) <= maxCsatFeedbackLength {
|
||||
return s
|
||||
}
|
||||
r := []rune(s)
|
||||
if len(r) <= maxCsatFeedbackLength {
|
||||
return s
|
||||
}
|
||||
return string(r[:maxCsatFeedbackLength])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user