/
news.go
52 lines (42 loc) · 1.03 KB
/
news.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
41
42
43
44
45
46
47
48
49
50
51
52
package messages
import (
"github.com/ArtisanCloud/PowerLibs/v2/object"
"github.com/ArtisanCloud/PowerWeChat/v2/src/kernel/power"
)
type News struct {
*Message
}
func NewNews(items *object.HashMap) *News {
m := &News{
NewMessage(&power.HashMap{"items": items}),
}
m.OverrideToXmlArray()
return m
}
func (msg *News) PropertiesToArray(data power.HashMap, aliases power.HashMap) *power.HashMap {
arrayItems := msg.Get("items", nil).([]*NewsItem)
arrayMapItems := []*object.HashMap{}
for _, item := range arrayItems {
arrayMapItems = append(arrayMapItems, item.ToJsonArray())
}
return &power.HashMap{
"articles": arrayMapItems,
}
}
// Override ToXmlArray
func (msg *News) OverrideToXmlArray() {
msg.ToXmlArray = func() *object.HashMap {
items := []*NewsItem{}
getItem := msg.Get("items", nil)
if getItem != nil {
arrayItems := getItem.([]*NewsItem)
for _, item := range arrayItems {
items = append(items, item)
}
}
return &object.HashMap{
"ArticleCount": len(items),
"Articles": items,
}
}
}