本文整理汇总了Golang中github.com/ovh/tat/models.Message.Update方法的典型用法代码示例。如果您正苦于以下问题:Golang Message.Update方法的具体用法?Golang Message.Update怎么用?Golang Message.Update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/ovh/tat/models.Message
的用法示例。
在下文中一共展示了Message.Update方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: updateMessage
func (m *MessagesController) updateMessage(ctx *gin.Context, messageIn *messageJSON, message models.Message, user models.User, topic models.Topic) {
info := ""
if messageIn.Action == "update" {
if !topic.CanUpdateMsg && !topic.CanUpdateAllMsg {
ctx.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("You can't update a message on topic %s", topic.Topic)})
return
}
if !topic.CanUpdateAllMsg && message.Author.Username != user.Username {
ctx.JSON(http.StatusBadRequest, gin.H{"error": fmt.Sprintf("Could not update a message from another user %s than you %s", message.Author.Username, user.Username)})
return
}
message.Text = messageIn.Text
err := message.Update(user, topic)
if err != nil {
log.Errorf("Error while update a message %s", err)
ctx.AbortWithError(http.StatusInternalServerError, err)
return
}
info = fmt.Sprintf("Message updated in %s", topic.Topic)
} else {
ctx.AbortWithError(http.StatusBadRequest, errors.New("Invalid action : "+messageIn.Action))
return
}
go models.WSMessage(&models.WSMessageJSON{Action: messageIn.Action, Username: user.Username, Message: message})
out := &messageJSONOut{Message: message, Info: info}
ctx.JSON(http.StatusOK, out)
}