فهرست منبع

feat(work): add department by id (#741)

* feat(work): add department by id

Refactor the DepartmentList function and add the DepartmentListByID function.

* fix: api name

* fix: formatURL name

* chore: format
ourines 2 سال پیش
والد
کامیت
dad7932574
2فایلهای تغییر یافته به همراه23 افزوده شده و 2 حذف شده
  1. 2 0
      doc/api/work.md
  2. 21 2
      work/addresslist/department.go

+ 2 - 0
doc/api/work.md

@@ -90,10 +90,12 @@ host: https://qyapi.weixin.qq.com/
 |    名称     | 请求方式 | URL                                     | 是否已实现   | 使用方法                            | 贡献者      |
 |:---------:|------|:----------------------------------------| ---------- | -------------------------------   |----------|
 | 获取子部门ID列表 | GET  | /cgi-bin/department/simplelist          | YES        | (r *Client) DepartmentSimpleList| MARKWANG |
+| 获取部门列表 | GET  | /cgi-bin/department/list                 | YES        | (r *Client) DepartmentList| just5325, ourines |
 |  获取部门成员   | GET | /cgi-bin/user/simplelist                | YES        | (r *Client) UserSimpleList  | MARKWANG  |
 |  获取成员ID列表   | Post | /cgi-bin/user/list_id                | YES        | (r *Client) UserListId  | MARKWANG  |
 
 
+
 ## 素材管理
 [官方文档](https://developer.work.weixin.qq.com/document/path/91054)
 

+ 21 - 2
work/addresslist/department.go

@@ -12,7 +12,8 @@ const (
 	// departmentSimpleListURL 获取子部门ID列表
 	departmentSimpleListURL = "https://qyapi.weixin.qq.com/cgi-bin/department/simplelist?access_token=%s&id=%d"
 	// departmentListURL 获取部门列表
-	departmentListURL = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=%s"
+	departmentListURL     = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=%s"
+	departmentListByIDURL = "https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token=%s&id=%d"
 	// departmentGetURL 获取单个部门详情 https://qyapi.weixin.qq.com/cgi-bin/department/get?access_token=ACCESS_TOKEN&id=ID
 	departmentGetURL = "https://qyapi.weixin.qq.com/cgi-bin/department/get?access_token=%s&id=%d"
 )
@@ -106,13 +107,31 @@ func (r *Client) DepartmentSimpleList(departmentID int) ([]*DepartmentID, error)
 // DepartmentList 获取部门列表
 // @desc https://developer.work.weixin.qq.com/document/path/90208
 func (r *Client) DepartmentList() ([]*Department, error) {
+	return r.DepartmentListByID(0)
+}
+
+// DepartmentListByID 获取部门列表
+//
+// departmentID 部门id。获取指定部门及其下的子部门(以及子部门的子部门等等,递归)
+//
+// @desc https://developer.work.weixin.qq.com/document/path/90208
+func (r *Client) DepartmentListByID(departmentID int) ([]*Department, error) {
+	var formatURL string
+
 	// 获取accessToken
 	accessToken, err := r.GetAccessToken()
 	if err != nil {
 		return nil, err
 	}
+
+	if departmentID > 0 {
+		formatURL = fmt.Sprintf(departmentListByIDURL, accessToken, departmentID)
+	} else {
+		formatURL = fmt.Sprintf(departmentListURL, accessToken)
+	}
+
 	// 发起http请求
-	response, err := util.HTTPGet(fmt.Sprintf(departmentListURL, accessToken))
+	response, err := util.HTTPGet(formatURL)
 	if err != nil {
 		return nil, err
 	}