From fbda048f620744d6de40917b4a7742136482d574 Mon Sep 17 00:00:00 2001 From: markwang <2951177317@qq.com> Date: Tue, 21 Mar 2023 23:58:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=81=E4=B8=9A=E5=BE=AE=E4=BF=A1-=E9=80=9A?= =?UTF-8?q?=E8=AE=AF=E5=BD=95=E7=AE=A1=E7=90=86-=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E7=AE=A1=E7=90=86-=E5=88=9B=E5=BB=BA/=E6=9B=B4=E6=96=B0/?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=A0=87=E7=AD=BE=20(#659)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- work/addresslist/tag.go | 92 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 work/addresslist/tag.go diff --git a/work/addresslist/tag.go b/work/addresslist/tag.go new file mode 100644 index 0000000..fe12acd --- /dev/null +++ b/work/addresslist/tag.go @@ -0,0 +1,92 @@ +package addresslist + +import ( + "fmt" + + "github.com/silenceper/wechat/v2/util" +) + +const ( + // createTagURL 创建标签 + createTagURL = "https://qyapi.weixin.qq.com/cgi-bin/tag/create?access_token=%s" + // updateTagURL 更新标签名字 + updateTagURL = "https://qyapi.weixin.qq.com/cgi-bin/tag/update?access_token=%s" + // deleteTagURL 删除标签 + deleteTagURL = "https://qyapi.weixin.qq.com/cgi-bin/tag/delete?access_token=%s&tagid=%d" +) + +type ( + // CreateTagRequest 创建标签请求 + CreateTagRequest struct { + TagName string `json:"tagname"` + TagID int `json:"tagid,omitempty"` + } + // CreateTagResponse 创建标签响应 + CreateTagResponse struct { + util.CommonError + TagID int `json:"tagid"` + } +) + +// CreateTag 创建标签 +// see https://developer.work.weixin.qq.com/document/path/90210 +func (r *Client) CreateTag(req *CreateTagRequest) (*CreateTagResponse, error) { + var ( + accessToken string + err error + ) + if accessToken, err = r.GetAccessToken(); err != nil { + return nil, err + } + var response []byte + if response, err = util.PostJSON(fmt.Sprintf(createTagURL, accessToken), req); err != nil { + return nil, err + } + result := &CreateTagResponse{} + if err = util.DecodeWithError(response, result, "CreateTag"); err != nil { + return nil, err + } + return result, nil +} + +type ( + // UpdateTagRequest 更新标签名字请求 + UpdateTagRequest struct { + TagID int `json:"tagid"` + TagName string `json:"tagname"` + } +) + +// UpdateTag 更新标签名字 +// see https://developer.work.weixin.qq.com/document/path/90211 +func (r *Client) UpdateTag(req *UpdateTagRequest) error { + var ( + accessToken string + err error + ) + if accessToken, err = r.GetAccessToken(); err != nil { + return err + } + var response []byte + if response, err = util.PostJSON(fmt.Sprintf(updateTagURL, accessToken), req); err != nil { + return err + } + return util.DecodeWithCommonError(response, "UpdateTag") +} + +// DeleteTag 删除标签 +// @see https://developer.work.weixin.qq.com/document/path/90212 +func (r *Client) DeleteTag(tagID int) error { + var ( + accessToken string + err error + ) + if accessToken, err = r.GetAccessToken(); err != nil { + return err + } + var response []byte + if response, err = util.HTTPGet(fmt.Sprintf(deleteTagURL, accessToken, tagID)); err != nil { + return err + } + return util.DecodeWithCommonError(response, "DeleteTag") +}