/
user_api.go
127 lines (114 loc) · 3.33 KB
/
user_api.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package getuipush
import "github.com/zituocn/getui-push/models"
// bindAlias 绑定别名
// @https://docs.getui.com/getui/server/rest_v2/user/
func bindAlias(appId, token string, param *models.AliasParam) (*models.Response, error) {
bodyByte, err := makeReqBody(param)
if err != nil {
return nil, err
}
resp, err := RequestAPI("POST", appId+"/user/alias", token, bodyByte)
if err != nil {
return nil, err
}
return resp, nil
}
// unBindAlias 解绑别名
//
// cid与alias成对出现
func unBindAlias(appId, token string, param *models.AliasParam) (*models.Response, error) {
bodyByte, err := makeReqBody(param)
if err != nil {
return nil, err
}
resp, err := RequestAPI("DELETE", appId+"/user/alias", token, bodyByte)
if err != nil {
return nil, err
}
return resp, nil
}
// unBindAllAlias 解绑所有与该别名绑定的cid
func unBindAllAlias(appId, token, alias string) (*models.Response, error) {
resp, err := RequestAPI("DELETE", appId+"/user/alias/"+alias, token, nil)
if err != nil {
return nil, err
}
return resp, nil
}
// bindTags 给一个cid,绑定多个标签
//
// 此接口对单个cid有频控限制,每天只能修改一次,最多设置100个标签;单个标签长度最大为32字符,标签总长度最大为512个字符
func bindTags(appId, token, cid string, param *models.CustomTagsParam) (*models.Response, error) {
bodyByte, err := makeReqBody(param)
if err != nil {
return nil, err
}
resp, err := RequestAPI("POST", appId+"/user/custom_tag/cid/"+cid, token, bodyByte)
if err != nil {
return nil, err
}
return resp, nil
}
// searchTags 查询某个用户已绑定的标签
//
// 可用于运营后台查询
func searchTags(appId, token, cid string) (*models.Response, error) {
resp, err := RequestAPI("GET", appId+"/user/custom_tag/cid/"+cid, token, nil)
if err != nil {
return nil, err
}
return resp, nil
}
// searchStatus 查询某个用户的状态,是否在线,上次在线时间等
//
// 根据cid查询
func searchStatus(appId, token, cid string) (*models.Response, error) {
resp, err := RequestAPI("GET", appId+"/user/status/"+cid, token, nil)
if err != nil {
return nil, err
}
return resp, nil
}
// searchUser 查询用户信息
//
// 根据cid查询
func searchUser(appId, token, cid string) (*models.Response, error) {
resp, err := RequestAPI("GET", appId+"/user/detail/"+cid, token, nil)
if err != nil {
return nil, err
}
return resp, nil
}
// searchAliasByCid 按cid查询别名
//
// 即这台设备上登录过哪些帐号
func searchAliasByCid(appId, token, cid string) (*models.Response, error) {
resp, err := RequestAPI("GET", appId+"/user/alias/cid/"+cid, token, nil)
if err != nil {
return nil, err
}
return resp, nil
}
// searchCidByAlias 按alias查cid
//
// 即这个alias绑定过哪些设备
func searchCidByAlias(appId, token, alias string) (*models.Response, error) {
resp, err := RequestAPI("GET", appId+"/user/cid/alias/"+alias, token, nil)
if err != nil {
return nil, err
}
return resp, nil
}
// getUserCount 获取用户总量
func getUserCount(appId, token string, Tag []*models.Tag) (*models.Response, error) {
pushTag := struct {
Tag []*models.Tag `json:"tag"`
}{}
pushTag.Tag = Tag
bodyByte, err := makeReqBody(pushTag)
resp, err := RequestAPI("POST", appId+"/user/count", token, bodyByte)
if err != nil {
return nil, err
}
return resp, nil
}