matterbridge/vendor/github.com/mattermost/platform/model/compliance_post.go

115 lines
2.1 KiB
Go
Raw Normal View History

2017-08-16 21:37:37 +00:00
// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved.
2016-05-21 12:14:08 +00:00
// See License.txt for license information.
package model
import (
2017-08-16 21:37:37 +00:00
"regexp"
2016-05-21 12:14:08 +00:00
"time"
)
type CompliancePost struct {
// From Team
TeamName string
TeamDisplayName string
// From Channel
ChannelName string
ChannelDisplayName string
// From User
UserUsername string
UserEmail string
UserNickname string
// From Post
PostId string
PostCreateAt int64
PostUpdateAt int64
PostDeleteAt int64
PostRootId string
PostParentId string
PostOriginalId string
PostMessage string
PostType string
PostProps string
PostHashtags string
2016-11-12 21:00:53 +00:00
PostFileIds string
2016-05-21 12:14:08 +00:00
}
func CompliancePostHeader() []string {
return []string{
"TeamName",
"TeamDisplayName",
"ChannelName",
"ChannelDisplayName",
"UserUsername",
"UserEmail",
"UserNickname",
"PostId",
"PostCreateAt",
"PostUpdateAt",
"PostDeleteAt",
"PostRootId",
"PostParentId",
"PostOriginalId",
"PostMessage",
"PostType",
"PostProps",
"PostHashtags",
2016-11-12 21:00:53 +00:00
"PostFileIds",
2016-05-21 12:14:08 +00:00
}
}
2017-08-16 21:37:37 +00:00
func cleanComplianceStrings(in string) string {
if matched, _ := regexp.MatchString("^\\s*(=|\\+|\\-)", in); matched {
return "'" + in
} else {
return in
}
}
2016-05-21 12:14:08 +00:00
func (me *CompliancePost) Row() []string {
postDeleteAt := ""
if me.PostDeleteAt > 0 {
postDeleteAt = time.Unix(0, me.PostDeleteAt*int64(1000*1000)).Format(time.RFC3339)
}
postUpdateAt := ""
if me.PostUpdateAt != me.PostCreateAt {
postUpdateAt = time.Unix(0, me.PostUpdateAt*int64(1000*1000)).Format(time.RFC3339)
}
return []string{
2017-08-16 21:37:37 +00:00
cleanComplianceStrings(me.TeamName),
cleanComplianceStrings(me.TeamDisplayName),
2016-05-21 12:14:08 +00:00
2017-08-16 21:37:37 +00:00
cleanComplianceStrings(me.ChannelName),
cleanComplianceStrings(me.ChannelDisplayName),
2016-05-21 12:14:08 +00:00
2017-08-16 21:37:37 +00:00
cleanComplianceStrings(me.UserUsername),
cleanComplianceStrings(me.UserEmail),
cleanComplianceStrings(me.UserNickname),
2016-05-21 12:14:08 +00:00
me.PostId,
time.Unix(0, me.PostCreateAt*int64(1000*1000)).Format(time.RFC3339),
postUpdateAt,
postDeleteAt,
me.PostRootId,
me.PostParentId,
me.PostOriginalId,
2017-08-16 21:37:37 +00:00
cleanComplianceStrings(me.PostMessage),
2016-05-21 12:14:08 +00:00
me.PostType,
me.PostProps,
me.PostHashtags,
2016-11-12 21:00:53 +00:00
me.PostFileIds,
2016-05-21 12:14:08 +00:00
}
}