diff --git a/handler/im.go b/handler/im.go index b0ec3ee..74ed1a9 100644 --- a/handler/im.go +++ b/handler/im.go @@ -66,6 +66,8 @@ func SetUpIMGroup(router *gin.Engine) { imGroup.POST("/get_message", GetMessage) //接受邀请,确认好友关系 imGroup.POST("/accept_invite", AcceptInvite) + //拒绝邀请 + imGroup.POST("/reject_invite", RejectInvite) imGroup.POST("/create_group", CreateGroup) imGroup.POST("/get_group", GetGroups) imGroup.POST("/get_group_req_user", GetFriendRequest) @@ -226,6 +228,22 @@ func AcceptInvite(c *gin.Context) { } } +func RejectInvite(c *gin.Context) { + var req Message + user_id, _ := c.Get("id") + cid := int(user_id.(float64)) + if err := c.ShouldBind(&req); err == nil { + err2 := service.RejectFriendService(req.ID, cid, req.To_user_id) + if err2 == nil { + c.JSON(http.StatusOK, gin.H{"code": proto.SuccessCode, "message": "success"}) + } else { + c.JSON(http.StatusOK, gin.H{"error": err2.Error(), "code": proto.OperationFailed, "message": "failed"}) + } + } else { + c.JSON(http.StatusOK, gin.H{"error": err.Error(), "code": proto.ParameterError, "message": "failed"}) + } +} + func SendMessage(c *gin.Context) { var req SMessage user_id, _ := c.Get("id") diff --git a/service/imService.go b/service/imService.go index 0b90290..e321cbe 100644 --- a/service/imService.go +++ b/service/imService.go @@ -217,6 +217,21 @@ func AddFriendService(id, from_user_id, to_user_id int) error { } } +func RejectFriendService(id, from_user_id, to_user_id int) error { + // 业务逻辑 + res := dao.FindMessageByID(uint(id)) + if len(res) == 0 { + return errors.New("no such message") + } + if res[0].FromUserID == to_user_id && res[0].ToUserID == from_user_id { + dao.UpdateMessageStatus(res[0].ID, 1) // 拒绝,设为已读 + return nil + } else { + return errors.New("no such message,cannot reject friend") + } + +} + // CreateGroup 创建群聊 // groupName 群聊名称 // groupInfo 群聊信息