department.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package addresslist
  2. import (
  3. "fmt"
  4. "github.com/silenceper/wechat/v2/util"
  5. )
  6. const (
  7. // departmentSimpleListURL 获取子部门ID列表
  8. departmentSimpleListURL = "https://qyapi.weixin.qq.com/cgi-bin/department/simplelist?access_token=%s&id=%d"
  9. )
  10. type (
  11. // DepartmentSimpleListResponse 获取子部门ID列表响应
  12. DepartmentSimpleListResponse struct {
  13. util.CommonError
  14. DepartmentID []*DepartmentID `json:"department_id"`
  15. }
  16. // DepartmentID 子部门ID
  17. DepartmentID struct {
  18. ID int `json:"id"`
  19. ParentID int `json:"parentid"`
  20. Order int `json:"order"`
  21. }
  22. )
  23. // DepartmentSimpleList 获取子部门ID列表
  24. // see https://developer.work.weixin.qq.com/document/path/95350
  25. func (r *Client) DepartmentSimpleList(departmentID int) ([]*DepartmentID, error) {
  26. var (
  27. accessToken string
  28. err error
  29. )
  30. if accessToken, err = r.GetAccessToken(); err != nil {
  31. return nil, err
  32. }
  33. var response []byte
  34. if response, err = util.HTTPGet(fmt.Sprintf(departmentSimpleListURL, accessToken, departmentID)); err != nil {
  35. return nil, err
  36. }
  37. result := &DepartmentSimpleListResponse{}
  38. if err = util.DecodeWithError(response, result, "DepartmentSimpleList"); err != nil {
  39. return nil, err
  40. }
  41. return result.DepartmentID, nil
  42. }