-
Notifications
You must be signed in to change notification settings - Fork 0
/
department.go
61 lines (54 loc) · 1.36 KB
/
department.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
package department
import (
"encoding/json"
"fmt"
"github.com/faryoo/wework/util"
"github.com/faryoo/wework/work/context"
)
const (
departmentListURL = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=%s&id=%d"
)
// User 用户管理
type DepartMent struct {
*context.Context
}
type DepartMentList struct {
util.CommonError
Department []departmentdetail `json:"department"`
}
type departmentdetail struct {
Id int `json:"id"`
Name string `json:"name"`
NameEn string `json:"name_en"`
Parentid int `json:"parentid"`
Order int `json:"order"`
}
// NewUser 实例化
func NewDepartMent(context *context.Context) *DepartMent {
department := new(DepartMent)
department.Context = context
return department
}
func (d *DepartMent) GetDepartMentList(departmentId int) (departmentList *DepartMentList, err error) {
var accessToken string
accessToken, err = d.GetAccessToken()
if err != nil {
return
}
uri := fmt.Sprintf(departmentListURL, accessToken, departmentId)
var response []byte
response, err = util.HTTPGet(uri)
if err != nil {
return
}
departmentList = new(DepartMentList)
err = json.Unmarshal(response, departmentList)
if err != nil {
return
}
if departmentList.ErrCode != 0 {
err = fmt.Errorf("GetUserInfo Error , errcode=%d , errmsg=%s", departmentList.ErrCode, departmentList.ErrMsg)
return
}
return
}