feat: now you can use the token query parameter in POST message push request

This commit is contained in:
JustSong
2023-05-22 09:59:10 +08:00
parent 2abd8f4681
commit 446a78e1b9
+18 -5
View File
@@ -45,7 +45,20 @@ func GetPushMessage(c *gin.Context) {
} }
func PostPushMessage(c *gin.Context) { func PostPushMessage(c *gin.Context) {
message := model.Message{ var message model.Message
if c.Request.Header.Get("Content-Type") == "application/json" {
// Looks like the user is using JSON
message = model.Message{}
err := json.NewDecoder(c.Request.Body).Decode(&message)
if err != nil {
c.JSON(http.StatusOK, gin.H{
"success": false,
"message": "无法解析请求体,请检查其是否为合法 JSON",
})
return
}
} else {
message = model.Message{
Title: c.PostForm("title"), Title: c.PostForm("title"),
Description: c.PostForm("description"), Description: c.PostForm("description"),
Content: c.PostForm("content"), Content: c.PostForm("content"),
@@ -58,16 +71,16 @@ func PostPushMessage(c *gin.Context) {
OpenId: c.PostForm("openid"), OpenId: c.PostForm("openid"),
Async: c.PostForm("async") == "true", Async: c.PostForm("async") == "true",
} }
}
if message == (model.Message{}) { if message == (model.Message{}) {
// Looks like the user is using JSON
err := json.NewDecoder(c.Request.Body).Decode(&message)
if err != nil {
c.JSON(http.StatusOK, gin.H{ c.JSON(http.StatusOK, gin.H{
"success": false, "success": false,
"message": "无法解析请求体,请检查其是否为合法 JSON", "message": "请求体为空,如果使用 JSON 请设置 Content-Type 为 application/json,否则请使用表单提交",
}) })
return return
} }
if message.Token == "" {
message.Token = c.Query("token")
} }
keepCompatible(&message) keepCompatible(&message)
pushMessageHelper(c, &message) pushMessageHelper(c, &message)