-
Notifications
You must be signed in to change notification settings - Fork 25
/
message.go
40 lines (35 loc) 路 951 Bytes
/
message.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package views
import (
"net/http"
"time"
"github.com/MixinNetwork/supergroup.mixin.one/models"
)
type MessageView struct {
Type string `json:"type"`
MessageId string `json:"message_id"`
Category string `json:"category"`
Data string `json:"data"`
FullName string `json:"full_name"`
CreatedAt time.Time `json:"created_at"`
}
func buildMessageView(message *models.Message) MessageView {
view := MessageView{
Type: "message",
MessageId: message.MessageId,
Category: message.Category,
Data: message.Data,
FullName: message.FullName.String,
CreatedAt: message.CreatedAt,
}
if view.FullName == "" {
view.FullName = "NULL"
}
return view
}
func RenderMessages(w http.ResponseWriter, r *http.Request, messages []*models.Message) {
views := make([]MessageView, len(messages))
for i, message := range messages {
views[i] = buildMessageView(message)
}
RenderDataResponse(w, r, views)
}