1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package model
- import (
- "net/url"
- "strings"
- xtime "go-common/library/time"
- )
- // consts for workflow event
- const (
- // EventAdminReply 管理员回复
- EventAdminReply = 1
- // EventAdminNote 管理员回复并记录
- EventAdminNote = 2
- // EventUserReply 用户回复
- EventUserReply = 3
- // EventSystem 系统回复
- EventSystem = 4
- )
- // EventSlice is a Event slice struct
- type EventSlice []*Event
- // Event model is the model for challenge changes
- type Event struct {
- Eid int64 `json:"eid" gorm:"column:id"`
- Cid int64 `json:"cid" gorm:"column:cid"`
- AdminID int64 `json:"adminid" gorm:"column:adminid"`
- Content string `json:"content" gorm:"column:content"`
- Attachments string `json:"attachments" gorm:"column:attachments"`
- Event int8 `json:"event" gorm:"column:event"`
- CTime xtime.Time `json:"ctime" gorm:"column:ctime"`
- MTime xtime.Time `json:"mtime" gorm:"column:mtime"`
- Admin string `json:"admin" gorm:"-"`
- }
- // TableName is used to identify table name in gorm
- func (Event) TableName() string {
- return "workflow_event"
- }
- // FixAttachments will fix attachments url as user friendly
- // ignore https case
- // FIXME: this should be removed after attachment url is be normed
- func (e *Event) FixAttachments() {
- if len(e.Attachments) <= 0 {
- return
- }
- sep := ";"
- atts := strings.Split(e.Attachments, sep)
- fixed := make([]string, 0, len(atts))
- for _, a := range atts {
- u, err := url.Parse(a)
- if err != nil {
- continue
- }
- u.Scheme = "http"
- fixed = append(fixed, u.String())
- }
- e.Attachments = strings.Join(fixed, sep)
- }
|