Fixing issue with compliance export encoding (#7042)

This commit is contained in:
Corey Hulen
2017-07-28 09:32:37 -06:00
committed by GitHub
parent 2d43e99757
commit 571e4f2ae1
2 changed files with 41 additions and 8 deletions

View File

@@ -4,6 +4,7 @@
package model
import (
"regexp"
"time"
)
@@ -64,6 +65,15 @@ func CompliancePostHeader() []string {
}
}
func cleanComplianceStrings(in string) string {
if matched, _ := regexp.MatchString("^\\s*(=|\\+|\\-)", in); matched {
return "'" + in
} else {
return in
}
}
func (me *CompliancePost) Row() []string {
postDeleteAt := ""
@@ -77,15 +87,15 @@ func (me *CompliancePost) Row() []string {
}
return []string{
me.TeamName,
me.TeamDisplayName,
cleanComplianceStrings(me.TeamName),
cleanComplianceStrings(me.TeamDisplayName),
me.ChannelName,
me.ChannelDisplayName,
cleanComplianceStrings(me.ChannelName),
cleanComplianceStrings(me.ChannelDisplayName),
me.UserUsername,
me.UserEmail,
me.UserNickname,
cleanComplianceStrings(me.UserUsername),
cleanComplianceStrings(me.UserEmail),
cleanComplianceStrings(me.UserNickname),
me.PostId,
time.Unix(0, me.PostCreateAt*int64(1000*1000)).Format(time.RFC3339),
@@ -95,7 +105,7 @@ func (me *CompliancePost) Row() []string {
me.PostRootId,
me.PostParentId,
me.PostOriginalId,
me.PostMessage,
cleanComplianceStrings(me.PostMessage),
me.PostType,
me.PostProps,
me.PostHashtags,

View File

@@ -25,3 +25,26 @@ func TestCompliancePost(t *testing.T) {
t.Fatal()
}
}
var cleanTests = []struct {
in string
expected string
}{
{"hello", "hello"},
{"=hello", "'=hello"},
{"+hello", "'+hello"},
{"-hello", "'-hello"},
{" =hello", "' =hello"},
{" +hello", "' +hello"},
{" -hello", "' -hello"},
{"\t -hello", "'\t -hello"},
}
func TestCleanComplianceStrings(t *testing.T) {
for _, tt := range cleanTests {
actual := cleanComplianceStrings(tt.in)
if actual != tt.expected {
t.Errorf("cleanComplianceStrings(%v): expected %v, actual %v", tt.in, tt.expected, actual)
}
}
}