Files
Message-Push-Nest/routers/api/v1/send_message.go
T

67 lines
1.7 KiB
Go
Raw Normal View History

2023-12-30 17:40:20 +08:00
package v1
import (
2024-01-29 19:17:42 +08:00
"fmt"
2023-12-30 17:40:20 +08:00
"github.com/gin-gonic/gin"
2024-01-29 19:17:42 +08:00
"github.com/sirupsen/logrus"
2023-12-30 17:40:20 +08:00
"message-nest/pkg/app"
"message-nest/pkg/e"
"message-nest/service/send_message_service"
"net/http"
)
type SendMessageReq struct {
2024-01-20 13:21:38 +08:00
TaskID string `json:"task_id" validate:"required,len=12" label:"任务id"`
2023-12-30 17:40:20 +08:00
Text string `json:"text" validate:"required" label:"文本内容"`
2024-01-06 17:44:45 +08:00
Title string `json:"title" label:"消息标题"`
2023-12-30 17:40:20 +08:00
HTML string `json:"html" label:"html内容"`
2024-03-05 14:42:12 +08:00
URL string `json:"url" label:"消息详情url地址"`
2023-12-30 17:40:20 +08:00
MarkDown string `json:"markdown" label:"markdown内容"`
2024-01-03 19:55:38 +08:00
Mode string `json:"mode" label:"是否异步发送"`
2023-12-30 17:40:20 +08:00
}
// DoSendMassage 外部调用发信接口
func DoSendMassage(c *gin.Context) {
var (
appG = app.Gin{C: c}
req SendMessageReq
)
errCode, errMsg := app.BindJsonAndPlayValid(c, &req)
if errCode != e.SUCCESS {
appG.CResponse(errCode, errMsg, nil)
return
}
msgService := send_message_service.SendMessageService{
2024-03-05 14:42:12 +08:00
TaskID: req.TaskID,
Title: req.Title,
Text: req.Text,
HTML: req.HTML,
URL: req.URL,
MarkDown: req.MarkDown,
CallerIp: c.ClientIP(),
2024-01-29 19:17:42 +08:00
DefaultLogger: logrus.WithFields(logrus.Fields{
//"prefix": "[Message Instance]",
2024-01-29 19:17:42 +08:00
}),
}
task, err := msgService.SendPreCheck()
if err != nil {
appG.CResponse(http.StatusBadRequest, fmt.Sprintf("发送检查不通过:%s", err), nil)
return
2023-12-30 17:40:20 +08:00
}
2024-01-06 17:44:45 +08:00
if req.Mode == "sync" {
2024-01-03 19:55:38 +08:00
// 同步发送
2024-01-29 19:17:42 +08:00
_, err := msgService.Send(task)
if err != nil {
2024-01-03 19:55:38 +08:00
appG.CResponse(http.StatusBadRequest, "发送失败!", nil)
return
}
appG.CResponse(http.StatusOK, "发送成功!", nil)
} else {
// 异步发送
2024-01-29 19:17:42 +08:00
msgService.AsyncSend(task)
2024-01-03 19:55:38 +08:00
appG.CResponse(http.StatusOK, "提交成功!", nil)
2023-12-30 17:40:20 +08:00
}
}