Skip to content

Commit 3a91aed

Browse files
author
Matrix-X
committed
update
1 parent 4f7321c commit 3a91aed

15 files changed

+333
-10
lines changed

src/work/application.go

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ import (
77
"github.com/ArtisanCloud/power-wechat/src/work/agent"
88
"github.com/ArtisanCloud/power-wechat/src/work/auth"
99
"github.com/ArtisanCloud/power-wechat/src/work/base"
10+
"github.com/ArtisanCloud/power-wechat/src/work/corpgroup"
1011
"github.com/ArtisanCloud/power-wechat/src/work/department"
1112
"github.com/ArtisanCloud/power-wechat/src/work/externalContact"
1213
"github.com/ArtisanCloud/power-wechat/src/work/media"
1314
"github.com/ArtisanCloud/power-wechat/src/work/menu"
1415
"github.com/ArtisanCloud/power-wechat/src/work/message"
16+
msgaudit "github.com/ArtisanCloud/power-wechat/src/work/msgAudit"
1517
"github.com/ArtisanCloud/power-wechat/src/work/oa"
1618
"github.com/ArtisanCloud/power-wechat/src/work/oauth"
1719
"github.com/ArtisanCloud/power-wechat/src/work/server"
@@ -28,10 +30,10 @@ type Work struct {
2830
AccessToken *auth.AccessToken
2931
OAuth *oauth.Manager
3032

31-
Config *kernel.Config
32-
Department *department.Client
33+
Config *kernel.Config
34+
Department *department.Client
3335

34-
Agent *agent.Client
36+
Agent *agent.Client
3537
AgentWorkbench *agent.WorkbenchClient
3638

3739
Message *message.Client
@@ -54,10 +56,13 @@ type Work struct {
5456
ExternalContactMessageTemplate *externalContact.MessageTemplateClient
5557

5658
Media *media.Client
57-
Menu *menu.Client
59+
Menu *menu.Client
5860

5961
OA *oa.Client
6062

63+
MsgAudit *msgaudit.Client
64+
65+
CorpGroup *corpgroup.Client
6166
}
6267

6368
func NewWork(config *object.HashMap, r *http.Request) (*Work, error) {
@@ -99,7 +104,7 @@ func NewWork(config *object.HashMap, r *http.Request) (*Work, error) {
99104

100105
//-------------- register agent --------------
101106
app.Agent,
102-
app.AgentWorkbench = agent.RegisterProvider(app)
107+
app.AgentWorkbench = agent.RegisterProvider(app)
103108

104109
//-------------- register Department --------------
105110
app.Department = department.RegisterProvider(app)
@@ -112,9 +117,9 @@ func NewWork(config *object.HashMap, r *http.Request) (*Work, error) {
112117

113118
//-------------- register user --------------
114119
app.UserClient,
115-
app.UserBatchJobsClient,
116-
app.UserLinkedCorpClient,
117-
app.UserTagClient = user.RegisterProvider(app)
120+
app.UserBatchJobsClient,
121+
app.UserLinkedCorpClient,
122+
app.UserTagClient = user.RegisterProvider(app)
118123

119124
//-------------- register external contact --------------
120125
app.ExternalContact,
@@ -128,12 +133,18 @@ func NewWork(config *object.HashMap, r *http.Request) (*Work, error) {
128133
//-------------- media --------------
129134
app.Media = media.RegisterProvider(app)
130135

131-
//-------------- media --------------
136+
//-------------- menu --------------
132137
app.Menu = menu.RegisterProvider(app)
133138

134-
//-------------- media --------------
139+
//-------------- oa --------------
135140
app.OA = oa.RegisterProvider(app)
136141

142+
//-------------- msg audit --------------
143+
app.MsgAudit = msgaudit.RegisterProvider(app)
144+
145+
//-------------- corp group --------------
146+
app.CorpGroup = corpgroup.RegisterProvider(app)
147+
137148
return app, err
138149
}
139150

@@ -199,6 +210,15 @@ func (app *Work) GetComponent(name string) interface{} {
199210
case "ExternalContactMessageTemplate":
200211
return app.ExternalContactMessageTemplate
201212

213+
case "Menu":
214+
return app.Menu
215+
case "OA":
216+
return app.OA
217+
case "MsgAudit":
218+
return app.MsgAudit
219+
case "CorpGroup":
220+
return app.CorpGroup
221+
202222
default:
203223
return nil
204224
}

src/work/corpgroup/client.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package corpgroup
2+
3+
import (
4+
"fmt"
5+
"github.com/ArtisanCloud/go-libs/object"
6+
"github.com/ArtisanCloud/power-wechat/src/kernel"
7+
"github.com/ArtisanCloud/power-wechat/src/work/corpgroup/response"
8+
)
9+
10+
type Client struct {
11+
*kernel.BaseClient
12+
}
13+
14+
// https://open.work.weixin.qq.com/api/doc/90000/90135/93403
15+
func (comp *Client) GetAppShareInfo(agentID int) (*response.ResponseCorpGroupListAPPShareInfo, error) {
16+
17+
result := &response.ResponseCorpGroupListAPPShareInfo{}
18+
19+
params := &object.StringMap{
20+
"agentid": fmt.Sprintf("%d", agentID),
21+
}
22+
_, err := comp.HttpPostJson("cgi-bin/corpgroup/corp/list_app_share_info", nil, params, nil, result)
23+
24+
return result, err
25+
}
26+
27+
// https://open.work.weixin.qq.com/api/doc/90000/90135/93359
28+
func (comp *Client) GetToken(corpID string, agentID string) (*response.ResponseCorpGroupGetToken, error) {
29+
30+
result := &response.ResponseCorpGroupGetToken{}
31+
32+
params := &object.HashMap{
33+
"corpid": corpID,
34+
"agentid": agentID,
35+
}
36+
37+
_, err := comp.HttpPostJson("cgi-bin/corpgroup/corp/gettoken", params, nil, nil, result)
38+
39+
return result, err
40+
}
41+
42+
43+
// https://open.work.weixin.qq.com/api/doc/90000/90135/93355
44+
func (comp *Client) GetMiniProgramTransferSession(userID string, sessionKey string) (*response.ResponseCorpGroupTransferSession, error) {
45+
46+
result := &response.ResponseCorpGroupTransferSession{}
47+
48+
params := &object.HashMap{
49+
"userid": userID,
50+
"session_key": sessionKey,
51+
}
52+
53+
_, err := comp.HttpPostJson("cgi-bin/corpgroup/miniprogram/transfer_session?", params, nil, nil, result)
54+
55+
return result, err
56+
}
57+
58+

src/work/corpgroup/provider.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package corpgroup
2+
3+
import (
4+
"github.com/ArtisanCloud/power-wechat/src/kernel"
5+
)
6+
7+
func RegisterProvider(app kernel.ApplicationInterface) *Client {
8+
9+
return &Client{
10+
kernel.NewBaseClient(&app, nil),
11+
}
12+
13+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package response
2+
3+
import (
4+
"github.com/ArtisanCloud/power-wechat/src/kernel/response"
5+
)
6+
7+
type ResponseCorpGroupGetToken struct {
8+
*response.ResponseWork
9+
AccessToken string `json:"access_token"`
10+
ExpiresIn int `json:"expires_in"`
11+
}
12+
13+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package response
2+
3+
import (
4+
"github.com/ArtisanCloud/go-libs/object"
5+
"github.com/ArtisanCloud/power-wechat/src/kernel/response"
6+
)
7+
8+
type ResponseCorpGroupListAPPShareInfo struct {
9+
*response.ResponseWork
10+
CorpList []*object.HashMap `json:"corp_list"`
11+
}
12+
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package response
2+
3+
import (
4+
"github.com/ArtisanCloud/power-wechat/src/kernel/response"
5+
)
6+
7+
type ResponseCorpGroupTransferSession struct {
8+
*response.ResponseWork
9+
Userid string `json:"userid"`
10+
SessionKey string `json:"session_key"`
11+
}

src/work/msgAudit/client.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package msgaudit
2+
3+
import (
4+
"github.com/ArtisanCloud/go-libs/object"
5+
"github.com/ArtisanCloud/power-wechat/src/kernel"
6+
"github.com/ArtisanCloud/power-wechat/src/work/msgaudit/response"
7+
)
8+
9+
type Client struct {
10+
*kernel.BaseClient
11+
}
12+
13+
// https://open.work.weixin.qq.com/api/doc/90000/90135/91614
14+
func (comp *Client) GetPermitUsers(msgType string) (*response.ResponseMsgAuditGetPermitUsers, error) {
15+
16+
result := &response.ResponseMsgAuditGetPermitUsers{}
17+
18+
params := &object.StringMap{}
19+
if msgType!=""{
20+
(*params)["type"] = msgType
21+
}
22+
_, err := comp.HttpPostJson("cgi-bin/msgaudit/get_permit_user_list", params, nil, nil, result)
23+
24+
return result, err
25+
}
26+
27+
// https://open.work.weixin.qq.com/api/doc/90000/90135/91782
28+
func (comp *Client) GetSingleAgreeStatus(info *object.HashMap) (*response.ResponseMsgAuditGetAgreeInfo, error) {
29+
30+
result := &response.ResponseMsgAuditGetAgreeInfo{}
31+
32+
params := &object.HashMap{
33+
"info": info,
34+
}
35+
36+
_, err := comp.HttpPostJson("cgi-bin/msgaudit/check_single_agree", params, nil, nil, result)
37+
38+
return result, err
39+
}
40+
41+
42+
// https://open.work.weixin.qq.com/api/doc/90000/90135/91782
43+
func (comp *Client) GetRoomAgreeStatus(roomID string) (*response.ResponseMsgAuditGetAgreeInfo, error) {
44+
45+
result := &response.ResponseMsgAuditGetAgreeInfo{}
46+
47+
params := &object.HashMap{
48+
"roomid": roomID,
49+
}
50+
51+
_, err := comp.HttpPostJson("cgi-bin/msgaudit/check_room_agree?", params, nil, nil, result)
52+
53+
return result, err
54+
}
55+
56+
57+
// https://open.work.weixin.qq.com/api/doc/90000/90135/92951
58+
func (comp *Client) GetRoom(roomID string) (*response.ResponseMsgAuditGetRoom, error) {
59+
60+
result := &response.ResponseMsgAuditGetRoom{}
61+
62+
params := &object.HashMap{
63+
"roomid": roomID,
64+
}
65+
66+
_, err := comp.HttpPostJson("cgi-bin/msgaudit/groupchat/get?", params, nil, nil, result)
67+
68+
return result, err
69+
}

src/work/msgAudit/provider.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package msgaudit
2+
3+
import (
4+
"github.com/ArtisanCloud/power-wechat/src/kernel"
5+
)
6+
7+
func RegisterProvider(app kernel.ApplicationInterface) *Client {
8+
9+
return &Client{
10+
kernel.NewBaseClient(&app, nil),
11+
}
12+
13+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package response
2+
3+
import (
4+
"github.com/ArtisanCloud/go-libs/object"
5+
"github.com/ArtisanCloud/power-wechat/src/kernel/response"
6+
)
7+
8+
type ResponseMsgAuditGetAgreeInfo struct {
9+
*response.ResponseWork
10+
AgreeInfo []*object.HashMap `json:"agreeinfo"`
11+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package response
2+
3+
import (
4+
"github.com/ArtisanCloud/power-wechat/src/kernel/response"
5+
)
6+
7+
type ResponseMsgAuditGetPermitUsers struct {
8+
*response.ResponseWork
9+
IDs []string `json:"ids"`
10+
}
11+
12+
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package response
2+
3+
import (
4+
"github.com/ArtisanCloud/go-libs/object"
5+
"github.com/ArtisanCloud/power-wechat/src/kernel/response"
6+
)
7+
8+
type ResponseMsgAuditGetRoom struct {
9+
*response.ResponseWork
10+
11+
Roomname string `json:"roomname"`
12+
Creator string `json:"creator"`
13+
RoomCreateTime int `json:"room_create_time"`
14+
Notice string `json:"notice"`
15+
Members []*object.HashMap `json:"members"`
16+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package response
2+
3+
import (
4+
"github.com/ArtisanCloud/power-wechat/src/kernel/response"
5+
)
6+
7+
type ResponseCorpGroupGetToken struct {
8+
*response.ResponseWork
9+
AccessToken string `json:"access_token"`
10+
ExpiresIn int `json:"expires_in"`
11+
}
12+
13+

src/work/oa/client.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,3 +182,41 @@ func (comp *Client) ApprovalRecords(startTime int, endTime int, nextNumber int)
182182

183183
}
184184

185+
// https://open.work.weixin.qq.com/api/doc/90000/90135/93375
186+
func (comp *Client) GetCorpConfig() (*response.ResponseCorpVacationGetConfig, error) {
187+
188+
result := &response.ResponseCorpVacationGetConfig{}
189+
190+
_, err := comp.HttpGet("cgi-bin/corp/vacation/getcorpconf", nil, nil, result)
191+
192+
return result, err
193+
194+
}
195+
196+
// https://open.work.weixin.qq.com/api/doc/90000/90135/93376
197+
func (comp *Client) GetUserVacationQuota(userID string) (*response.ResponseCorpVacationGetQuota, error) {
198+
199+
result := &response.ResponseCorpVacationGetQuota{}
200+
201+
_, err := comp.HttpPostJson("cgi-bin/corp/vacation/getuservacationquota", &object.HashMap{
202+
"userid": userID,
203+
}, nil, nil, result)
204+
205+
return result, err
206+
207+
}
208+
209+
// https://open.work.weixin.qq.com/api/doc/90000/90135/93376
210+
func (comp *Client) SeToneUserQuota(data *object.HashMap) (*response2.ResponseWork, error) {
211+
212+
result := &response2.ResponseWork{}
213+
214+
_, err := comp.HttpPostJson("cgi-bin/corp/vacation/setoneuserquota", data, nil, nil, result)
215+
216+
return result, err
217+
218+
}
219+
220+
221+
222+

0 commit comments

Comments
 (0)