in user-center-wecom/company.go [67:99]
func (c *Company) ListDepartmentAll() (err error) {
log.Debugf("try to list department all")
token, err := c.Work.GetOauth().GetAccessToken()
if err != nil {
return fmt.Errorf("get access token failed: %w", err)
}
log.Debugf("get access token success")
resp, err := resty.New().R().Get("https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=" + token)
if err != nil {
return fmt.Errorf("get department list failed: %w", err)
}
if resp.StatusCode() != 200 {
return fmt.Errorf("get department list failed: %s", resp.String())
}
log.Debugf("get department success: %s", resp.String())
department := gjson.Get(resp.String(), "department").String()
var departments []*Department
err = json.Unmarshal([]byte(department), &departments)
if err != nil {
return fmt.Errorf("unmarshal department failed: %w", err)
}
departmentMapping := make(map[int]*Department)
for _, d := range departments {
departmentMapping[d.Id] = d
}
c.DepartmentMapping = departmentMapping
log.Debugf("get department list: %d", len(departments))
return nil
}