package message

import (
	"encoding/json"
	"github.com/imroc/req"
	"github.com/tidwall/gjson"
	"search_server/pkg/config"
	"strings"
)

//发送钉钉消息的包
type DingDingRequest struct {
	MsgType string            `json:"msgtype"`
	Text    map[string]string `json:"text"`
	IsAtAll bool              `json:"isAtAll"`
}

type DingDingResponse struct {
	Errcode int    `json:"errcode"`
	Errmsg  string `json:"errmsg"`
}

func DingDingPush(content string) (result DingDingResponse, err error) {
	accessToken := config.Get("DINGDING.SEARCH_API_MONITOR").String()
	webhook := "https://oapi.dingtalk.com/robot/send?access_token=" + accessToken
	data := make(map[string]interface{})
	data["msgtype"] = "text"
	data["text"] = map[string]string{
		"content": content,
	}
	req.Debug = false
	dataStrByte, _ := json.Marshal(data)
	dataStr := string(dataStrByte)
	dataStr = strings.Replace(dataStr, "\\", "\\\\", -1)
	params := req.BodyJSON(dataStr)
	resp, err := req.Post(webhook, params, req.Header{
		"Content-Type": "application/json",
		"charset":      "UTF-8",
	})
	if resp == nil {
		return
	}
	result.Errcode = int(gjson.Get(resp.String(), "errcode").Int())
	result.Errmsg = gjson.Get(resp.String(), "errmsg").String()
	return
}