From ef5e95b11c9feaaa9a1f66f5c46f791a06a1ca7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E9=B8=BF=E9=A3=9E?= Date: Thu, 20 Apr 2023 20:16:57 +0800 Subject: [PATCH] fix(notify): add subcontact fail details --- pkg/notify/sender/dingtalk.go | 8 ++++++-- pkg/notify/sender/feishu.go | 8 ++++++-- pkg/notify/sender/workwx.go | 8 ++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/pkg/notify/sender/dingtalk.go b/pkg/notify/sender/dingtalk.go index f6cb6ef8e4..802f829c55 100644 --- a/pkg/notify/sender/dingtalk.go +++ b/pkg/notify/sender/dingtalk.go @@ -97,7 +97,7 @@ func (dingSender *SDingTalkSender) ValidateConfig(config api.NotifyConfig) (stri } func (dingSender *SDingTalkSender) ContactByMobile(mobile, domainId string) (string, error) { - err := dingSender.GetAccessToken(fmt.Sprintf("%s-%s", api.DINGTALK, domainId)) + err := dingSender.GetAccessToken(domainId) if err != nil { return "", err } @@ -110,7 +110,11 @@ func (dingSender *SDingTalkSender) ContactByMobile(mobile, domainId string) (str if err != nil { return "", errors.Wrap(err, "get user by mobile") } - return res.GetString("result", "userid") + userId, err := res.GetString("result", "userid") + if err != nil { + return "", errors.Wrapf(err, "user result:%v", res) + } + return userId, err } func (dingSender *SDingTalkSender) IsPersonal() bool { diff --git a/pkg/notify/sender/feishu.go b/pkg/notify/sender/feishu.go index c5cca408f1..995146764d 100644 --- a/pkg/notify/sender/feishu.go +++ b/pkg/notify/sender/feishu.go @@ -98,7 +98,7 @@ func (feishuSender *SFeishuSender) ContactByMobile(mobile, domainId string) (str body.Set("mobiles", jsonutils.NewArray(jsonutils.NewString(mobile))) header := http.Header{} // 考虑到获取用户id需求较少,可通过直接更新token来避免token失效 - err := feishuSender.GetAccessToken(fmt.Sprintf("%s-%s", api.FEISHU, domainId)) + err := feishuSender.GetAccessToken(domainId) if err != nil { return "", errors.Wrap(err, "GetAccessToken") } @@ -120,7 +120,11 @@ func (feishuSender *SFeishuSender) ContactByMobile(mobile, domainId string) (str return "", errors.Wrap(err, "jsonutils.JSONObject.GetArray") } // len(list) must be positive - return list[0].GetString("open_id") + userId, err := list[0].GetString("open_id") + if err != nil { + return "", errors.Wrapf(err, "user result:%v", resp) + } + return userId, nil } func (feishuSender *SFeishuSender) IsPersonal() bool { diff --git a/pkg/notify/sender/workwx.go b/pkg/notify/sender/workwx.go index 72b0b6b50e..030a67de76 100644 --- a/pkg/notify/sender/workwx.go +++ b/pkg/notify/sender/workwx.go @@ -69,7 +69,7 @@ func (workwxSender *SWorkwxSender) ValidateConfig(config api.NotifyConfig) (stri } func (workwxSender *SWorkwxSender) ContactByMobile(mobile, domainId string) (string, error) { - err := workwxSender.GetAccessToken(fmt.Sprintf("%s-%s", api.WORKWX, domainId)) + err := workwxSender.GetAccessToken(domainId) if err != nil { return "", err } @@ -80,7 +80,11 @@ func (workwxSender *SWorkwxSender) ContactByMobile(mobile, domainId string) (str if err != nil { return "", errors.Wrap(err, "get user by mobile") } - return res.GetString("userid") + userId, err := res.GetString("userid") + if err != nil { + return "", errors.Wrapf(err, "user result:%v", res) + } + return userId, nil } func (workwxSender *SWorkwxSender) IsPersonal() bool {