parent
333453df79
commit
27fd4f444b
@ -1,49 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
/*
|
|
||||||
type paramsAddBlackList struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
UID string `json:"uid" binding:"required"`
|
|
||||||
}*/
|
|
||||||
|
|
||||||
func AddBlacklist(c *gin.Context) {
|
|
||||||
log.Info("", "", "api add blacklist init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsSearchFriend{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.AddBlacklistReq{
|
|
||||||
Uid: params.UID,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
OwnerUid: params.OwnerUid,
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api add blacklist is server:userID=%s", req.Uid)
|
|
||||||
RpcResp, err := client.AddBlacklist(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call add blacklist rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add blacklist rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call add blacklist rpc server success,args=%s", RpcResp.String())
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
log.InfoByArgs("api add blacklist success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,88 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsImportFriendReq struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
UIDList []string `json:"uidList" binding:"required"`
|
|
||||||
OwnerUid string `json:"ownerUid" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type paramsAddFriend struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
UID string `json:"uid" binding:"required"`
|
|
||||||
ReqMessage string `json:"reqMessage"`
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
func ImportFriend(c *gin.Context) {
|
|
||||||
log.Info("", "", "ImportFriend init ....")
|
|
||||||
log.NewDebug("", "api importFriend start")
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
|
|
||||||
params := paramsImportFriendReq{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.ImportFriendReq{
|
|
||||||
UidList: params.UIDList,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
OwnerUid: params.OwnerUid,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.NewDebug(req.OperationID, "args is ", req.String())
|
|
||||||
RpcResp, err := client.ImportFriend(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.NewError(req.OperationID, "rpc importFriend failed", err.Error())
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
failedUidList := make([]string, 0)
|
|
||||||
for _, v := range RpcResp.FailedUidList {
|
|
||||||
failedUidList = append(failedUidList, v)
|
|
||||||
}
|
|
||||||
log.NewDebug(req.OperationID, "rpc importFriend success", RpcResp.CommonResp.ErrorMsg, RpcResp.CommonResp.ErrorCode, RpcResp.FailedUidList)
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": failedUidList})
|
|
||||||
}
|
|
||||||
|
|
||||||
func AddFriend(c *gin.Context) {
|
|
||||||
log.Info("", "", "api add friend init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
|
|
||||||
params := paramsAddFriend{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.AddFriendReq{
|
|
||||||
Uid: params.UID,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
ReqMessage: params.ReqMessage,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api add friend is server")
|
|
||||||
RpcResp, err := client.AddFriend(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call add friend rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add friend rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call add friend rpc server success,args=%s", RpcResp.String())
|
|
||||||
c.JSON(http.StatusOK, gin.H{
|
|
||||||
"errCode": RpcResp.ErrorCode,
|
|
||||||
"errMsg": RpcResp.ErrorMsg,
|
|
||||||
})
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsAddFriendResponse struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
UID string `json:"uid" binding:"required"`
|
|
||||||
Flag int32 `json:"flag" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func AddFriendResponse(c *gin.Context) {
|
|
||||||
log.Info("", "", fmt.Sprintf("api add friend response init ...."))
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsAddFriendResponse{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.AddFriendResponseReq{
|
|
||||||
Uid: params.UID,
|
|
||||||
Flag: params.Flag,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api add friend response is server:userID=%s", req.Uid)
|
|
||||||
RpcResp, err := client.AddFriendResponse(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call add_friend_response rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add_friend_response rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call add friend response rpc server success,args=%s", RpcResp.String())
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg})
|
|
||||||
log.InfoByArgs("api add friend response success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsDeleteFriend struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
UID string `json:"uid" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func DeleteFriend(c *gin.Context) {
|
|
||||||
log.Info("", "", fmt.Sprintf("api delete_friend init ...."))
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsDeleteFriend{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.DeleteFriendReq{
|
|
||||||
Uid: params.UID,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api delete_friend is server:%s", req.Uid)
|
|
||||||
RpcResp, err := client.DeleteFriend(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call delete_friend rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete_friend rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call delete_friend rpc server,args=%s", RpcResp.String())
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
log.InfoByArgs("api delete_friend success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -0,0 +1,604 @@
|
|||||||
|
package friend
|
||||||
|
|
||||||
|
import (
|
||||||
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/log"
|
||||||
|
"Open_IM/pkg/common/token_verify"
|
||||||
|
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
||||||
|
pbFriend "Open_IM/pkg/proto/friend"
|
||||||
|
"Open_IM/pkg/utils"
|
||||||
|
"context"
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
"net/http"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
type paramsCommFriend struct {
|
||||||
|
OperationID string `json:"operationID" binding:"required"`
|
||||||
|
ToUserID string `json:"toUserID" binding:"required"`
|
||||||
|
FromUserID string `json:"fromUserID" binding:"required"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddBlacklist(c *gin.Context) {
|
||||||
|
params := paramsCommFriend{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.AddBlacklistReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(params.OperationID, "AddBlacklist args ", req.String())
|
||||||
|
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.AddBlacklist(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "AddBlacklist failed ", err.Error())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add blacklist rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "AddBlacklist api return ", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsImportFriendReq struct {
|
||||||
|
FriendUserIDList []string `json:"friendUserIDList" binding:"required"`
|
||||||
|
OperationID string `json:"operationID" binding:"required"`
|
||||||
|
Token string `json:"token"`
|
||||||
|
FromUserID string `json:"fromUserID" binding:"required"`
|
||||||
|
OpUserID string `json:"opUserID" binding:"required"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func ImportFriend(c *gin.Context) {
|
||||||
|
params := paramsImportFriendReq{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
req := &pbFriend.ImportFriendReq{}
|
||||||
|
utils.CopyStructFields(req, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
log.NewInfo(req.OperationID, "ImportFriend args ", req.String())
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.ImportFriend(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.OperationID, "ImportFriend failed", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
failedUidList := make([]string, 0)
|
||||||
|
for _, v := range RpcResp.FailedUidList {
|
||||||
|
failedUidList = append(failedUidList, v)
|
||||||
|
}
|
||||||
|
resp := gin.H{"errCode": RpcResp.CommonResp.ErrCode, "errMsg": RpcResp.CommonResp.ErrMsg, "failedUidList": failedUidList}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.OperationID, "AddBlacklist api return ", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsAddFriend struct {
|
||||||
|
paramsCommFriend
|
||||||
|
ReqMessage string `json:"reqMessage"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddFriend(c *gin.Context) {
|
||||||
|
params := paramsAddFriend{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.AddFriendReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req.ReqMessage = params.ReqMessage
|
||||||
|
log.NewInfo("AddFriend args ", req.String())
|
||||||
|
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.AddFriend(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "AddFriend failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call AddFriend rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "AddFriend api return ", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsAddFriendResponse struct {
|
||||||
|
paramsCommFriend
|
||||||
|
Flag int32 `json:"flag" binding:"required"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddFriendResponse(c *gin.Context) {
|
||||||
|
params := paramsAddFriendResponse{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.AddFriendResponseReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req.Flag = params.Flag
|
||||||
|
|
||||||
|
log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String())
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.AddFriendResponse(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "AddFriendResponse failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add_friend_response rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "AddFriendResponse api return ", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsDeleteFriend struct {
|
||||||
|
paramsCommFriend
|
||||||
|
}
|
||||||
|
|
||||||
|
func DeleteFriend(c *gin.Context) {
|
||||||
|
params := paramsDeleteFriend{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.DeleteFriendReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "DeleteFriend args ", req.String())
|
||||||
|
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.DeleteFriend(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "DeleteFriend failed ", err, req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete_friend rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "AddFriendResponse api return ", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsGetBlackList struct {
|
||||||
|
paramsCommFriend
|
||||||
|
}
|
||||||
|
|
||||||
|
type PublicUserInfo struct {
|
||||||
|
UserID string `json:"userID"`
|
||||||
|
Nickname string `json:"nickname"`
|
||||||
|
FaceUrl string `json:"faceUrl"`
|
||||||
|
Gender int32 `json:"gender"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type blackUserInfo struct {
|
||||||
|
PublicUserInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetBlacklist(c *gin.Context) {
|
||||||
|
params := paramsGetBlackList{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.GetBlacklistReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetBlacklist args ", req.String())
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.GetBlacklist(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetBlacklist failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get blacklist rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if RpcResp.ErrCode == 0 {
|
||||||
|
userBlackList := make([]blackUserInfo, 0)
|
||||||
|
for _, friend := range RpcResp.Data {
|
||||||
|
var b blackUserInfo
|
||||||
|
utils.CopyStructFields(&b, friend)
|
||||||
|
|
||||||
|
userBlackList = append(userBlackList, b)
|
||||||
|
}
|
||||||
|
resp := gin.H{
|
||||||
|
"errCode": RpcResp.ErrCode,
|
||||||
|
"errMsg": RpcResp.ErrMsg,
|
||||||
|
"data": userBlackList,
|
||||||
|
}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetBlacklist api return ", resp)
|
||||||
|
} else {
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewError(req.CommID.OperationID, "GetBlacklist api return ", resp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsSetFriendComment struct {
|
||||||
|
paramsCommFriend
|
||||||
|
remark string `json:"remark" binding:"required"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func SetFriendComment(c *gin.Context) {
|
||||||
|
params := paramsSetFriendComment{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.SetFriendCommentReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req.Remark = params.remark
|
||||||
|
|
||||||
|
log.NewInfo(req.CommID.OperationID, "SetFriendComment args ", req.String())
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.SetFriendComment(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "SetFriendComment failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call set friend comment rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsRemoveBlackList struct {
|
||||||
|
paramsCommFriend
|
||||||
|
}
|
||||||
|
|
||||||
|
func RemoveBlacklist(c *gin.Context) {
|
||||||
|
params := paramsRemoveBlackList{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.RemoveBlacklistReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
log.NewInfo(req.CommID.OperationID, "RemoveBlacklist args ", req.String())
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.RemoveBlacklist(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "RemoveBlacklist failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call remove blacklist rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsIsFriend struct {
|
||||||
|
paramsCommFriend
|
||||||
|
}
|
||||||
|
|
||||||
|
func IsFriend(c *gin.Context) {
|
||||||
|
params := paramsIsFriend{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.IsFriendReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend args ", req.String())
|
||||||
|
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.IsFriend(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "IsFriend failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add friend rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "isFriend": RpcResp.ShipType}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsSearchFriend struct {
|
||||||
|
paramsCommFriend
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetFriendsInfo(c *gin.Context) {
|
||||||
|
params := paramsSearchFriend{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.GetFriendsInfoReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String())
|
||||||
|
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.GetFriendsInfo(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetFriendsInfo failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call search friend rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if RpcResp.ErrCode == 0 {
|
||||||
|
var fi friendInfo
|
||||||
|
utils.CopyStructFields(&fi, RpcResp.Data.FriendUser)
|
||||||
|
utils.CopyStructFields(&fi, RpcResp.Data)
|
||||||
|
|
||||||
|
resp := gin.H{
|
||||||
|
"errCode": RpcResp.ErrCode,
|
||||||
|
"errMsg": RpcResp.ErrMsg,
|
||||||
|
"data": fi,
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp)
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
} else {
|
||||||
|
resp := gin.H{
|
||||||
|
"errCode": RpcResp.ErrCode,
|
||||||
|
"errMsg": RpcResp.ErrMsg,
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp)
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsGetFriendList struct {
|
||||||
|
paramsCommFriend
|
||||||
|
}
|
||||||
|
|
||||||
|
type friendInfo struct {
|
||||||
|
UserID string `json:"userID"`
|
||||||
|
Nickname string `json:"nickname"`
|
||||||
|
FaceUrl string `json:"faceUrl"`
|
||||||
|
Gender int32 `json:"gender"`
|
||||||
|
Mobile string `json:"mobile"`
|
||||||
|
Birth string `json:"birth"`
|
||||||
|
Email string `json:"email"`
|
||||||
|
Ext string `json:"ext"`
|
||||||
|
Remark string `json:"remark"`
|
||||||
|
IsBlack int32 `json:"isBlack"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetFriendList(c *gin.Context) {
|
||||||
|
params := paramsGetFriendList{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.GetFriendListReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetFriendList args ", req.String())
|
||||||
|
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.GetFriendList(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetFriendList failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get friend list rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if RpcResp.ErrCode == 0 {
|
||||||
|
friendsInfo := make([]friendInfo, 0)
|
||||||
|
for _, friend := range RpcResp.Data {
|
||||||
|
|
||||||
|
var fi friendInfo
|
||||||
|
utils.CopyStructFields(&fi, friend.FriendUser)
|
||||||
|
utils.CopyStructFields(&fi, RpcResp.Data)
|
||||||
|
friendsInfo = append(friendsInfo, fi)
|
||||||
|
}
|
||||||
|
resp := gin.H{
|
||||||
|
"errCode": RpcResp.ErrCode,
|
||||||
|
"errMsg": RpcResp.ErrMsg,
|
||||||
|
"data": friendsInfo,
|
||||||
|
}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp)
|
||||||
|
} else {
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
type paramsGetApplyList struct {
|
||||||
|
paramsCommFriend
|
||||||
|
}
|
||||||
|
|
||||||
|
type FriendApplicationUserInfo struct {
|
||||||
|
PublicUserInfo
|
||||||
|
ApplyTime int64 `json:"applyTime"`
|
||||||
|
ReqMessage string `json:"reqMessage`
|
||||||
|
Flag int32 `json:"flag"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetFriendApplyList(c *gin.Context) {
|
||||||
|
params := paramsGetApplyList{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.GetFriendApplyReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetFriendApplyList args ", req.String())
|
||||||
|
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
|
||||||
|
RpcResp, err := client.GetFriendApplyList(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetFriendApplyList failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get friend apply list rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if RpcResp.ErrCode == 0 {
|
||||||
|
userInfoList := make([]FriendApplicationUserInfo, 0)
|
||||||
|
for _, applyUserinfo := range RpcResp.Data {
|
||||||
|
var un FriendApplicationUserInfo
|
||||||
|
utils.CopyStructFields(&un, applyUserinfo.UserInfo)
|
||||||
|
utils.CopyStructFields(&un, applyUserinfo)
|
||||||
|
userInfoList = append(userInfoList, un)
|
||||||
|
}
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "data": userInfoList}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp)
|
||||||
|
} else {
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetSelfApplyList(c *gin.Context) {
|
||||||
|
params := paramsGetApplyList{}
|
||||||
|
if err := c.BindJSON(¶ms); err != nil {
|
||||||
|
log.NewError("0", "BindJSON failed ", err.Error())
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
req := &pbFriend.GetFriendApplyReq{}
|
||||||
|
utils.CopyStructFields(req.CommID, params)
|
||||||
|
var ok bool
|
||||||
|
ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token"))
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token"))
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetSelfApplyList args ", req.String())
|
||||||
|
|
||||||
|
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
||||||
|
client := pbFriend.NewFriendClient(etcdConn)
|
||||||
|
RpcResp, err := client.GetSelfApplyList(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetSelfApplyList failed ", err.Error(), req.String())
|
||||||
|
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get self apply list rpc server failed"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if RpcResp.ErrCode == 0 {
|
||||||
|
userInfoList := make([]FriendApplicationUserInfo, 0)
|
||||||
|
for _, applyUserinfo := range RpcResp.Data {
|
||||||
|
var un FriendApplicationUserInfo
|
||||||
|
utils.CopyStructFields(&un, applyUserinfo.UserInfo)
|
||||||
|
utils.CopyStructFields(&un, applyUserinfo)
|
||||||
|
userInfoList = append(userInfoList, un)
|
||||||
|
}
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "data": userInfoList}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp)
|
||||||
|
} else {
|
||||||
|
resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}
|
||||||
|
c.JSON(http.StatusOK, resp)
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp)
|
||||||
|
}
|
||||||
|
}
|
@ -1,79 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsGetBlackList struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type blackListUserInfo struct {
|
|
||||||
UID string `json:"uid"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Icon string `json:"icon"`
|
|
||||||
Gender int32 `json:"gender"`
|
|
||||||
Mobile string `json:"mobile"`
|
|
||||||
Birth string `json:"birth"`
|
|
||||||
Email string `json:"email"`
|
|
||||||
Ex string `json:"ex"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetBlacklist(c *gin.Context) {
|
|
||||||
log.Info("", "", "api get blacklist init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsGetBlackList{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.GetBlacklistReq{
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, fmt.Sprintf("api get blacklist is server"))
|
|
||||||
RpcResp, err := client.GetBlacklist(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call get_friend_list rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get blacklist rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call get blacklist rpc server success,args=%s", RpcResp.String())
|
|
||||||
if RpcResp.ErrorCode == 0 {
|
|
||||||
userBlackList := make([]blackListUserInfo, 0)
|
|
||||||
for _, friend := range RpcResp.Data {
|
|
||||||
var fi blackListUserInfo
|
|
||||||
fi.UID = friend.Uid
|
|
||||||
fi.Name = friend.Name
|
|
||||||
fi.Icon = friend.Icon
|
|
||||||
fi.Gender = friend.Gender
|
|
||||||
fi.Mobile = friend.Mobile
|
|
||||||
fi.Birth = friend.Birth
|
|
||||||
fi.Email = friend.Email
|
|
||||||
fi.Ex = friend.Ex
|
|
||||||
userBlackList = append(userBlackList, fi)
|
|
||||||
}
|
|
||||||
resp := gin.H{
|
|
||||||
"errCode": RpcResp.ErrorCode,
|
|
||||||
"errMsg": RpcResp.ErrorMsg,
|
|
||||||
"data": userBlackList,
|
|
||||||
}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
} else {
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
}
|
|
||||||
log.InfoByArgs("api get black list success return,get args=%s,return=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,129 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsGetApplyList struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
}
|
|
||||||
type UserInfo struct {
|
|
||||||
UID string `json:"uid"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Icon string `json:"icon"`
|
|
||||||
Gender int32 `json:"gender"`
|
|
||||||
Mobile string `json:"mobile"`
|
|
||||||
Birth string `json:"birth"`
|
|
||||||
Email string `json:"email"`
|
|
||||||
Ex string `json:"ex"`
|
|
||||||
ReqMessage string `json:"reqMessage"`
|
|
||||||
ApplyTime string `json:"applyTime"`
|
|
||||||
Flag int32 `json:"flag"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetFriendApplyList(c *gin.Context) {
|
|
||||||
log.Info("", "", "api get_friend_apply_list init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsGetApplyList{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.GetFriendApplyReq{
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api get friend apply list is server")
|
|
||||||
RpcResp, err := client.GetFriendApplyList(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call get friend apply list rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get friend apply list rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call get friend apply list rpc server success,args=%s", RpcResp.String())
|
|
||||||
if RpcResp.ErrorCode == 0 {
|
|
||||||
userInfoList := make([]UserInfo, 0)
|
|
||||||
for _, applyUserinfo := range RpcResp.Data {
|
|
||||||
var un UserInfo
|
|
||||||
un.UID = applyUserinfo.Uid
|
|
||||||
un.Name = applyUserinfo.Name
|
|
||||||
un.Icon = applyUserinfo.Icon
|
|
||||||
un.Gender = applyUserinfo.Gender
|
|
||||||
un.Mobile = applyUserinfo.Mobile
|
|
||||||
un.Birth = applyUserinfo.Birth
|
|
||||||
un.Email = applyUserinfo.Email
|
|
||||||
un.Ex = applyUserinfo.Ex
|
|
||||||
un.Flag = applyUserinfo.Flag
|
|
||||||
un.ApplyTime = applyUserinfo.ApplyTime
|
|
||||||
un.ReqMessage = applyUserinfo.ReqMessage
|
|
||||||
userInfoList = append(userInfoList, un)
|
|
||||||
}
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": userInfoList}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
} else {
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
}
|
|
||||||
log.InfoByArgs("api get friend apply list success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetSelfApplyList(c *gin.Context) {
|
|
||||||
log.Info("", "", "api get self friend apply list init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsGetApplyList{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.GetFriendApplyReq{
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api get self apply list is server")
|
|
||||||
RpcResp, err := client.GetSelfApplyList(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call get self apply list rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get self apply list rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call get self apply list rpc server success,args=%s", RpcResp.String())
|
|
||||||
if RpcResp.ErrorCode == 0 {
|
|
||||||
userInfoList := make([]UserInfo, 0)
|
|
||||||
for _, selfApplyOtherUserinfo := range RpcResp.Data {
|
|
||||||
var un UserInfo
|
|
||||||
un.UID = selfApplyOtherUserinfo.Uid
|
|
||||||
un.Name = selfApplyOtherUserinfo.Name
|
|
||||||
un.Icon = selfApplyOtherUserinfo.Icon
|
|
||||||
un.Gender = selfApplyOtherUserinfo.Gender
|
|
||||||
un.Mobile = selfApplyOtherUserinfo.Mobile
|
|
||||||
un.Birth = selfApplyOtherUserinfo.Birth
|
|
||||||
un.Email = selfApplyOtherUserinfo.Email
|
|
||||||
un.Ex = selfApplyOtherUserinfo.Ex
|
|
||||||
un.Flag = selfApplyOtherUserinfo.Flag
|
|
||||||
un.ApplyTime = selfApplyOtherUserinfo.ApplyTime
|
|
||||||
un.ReqMessage = selfApplyOtherUserinfo.ReqMessage
|
|
||||||
userInfoList = append(userInfoList, un)
|
|
||||||
}
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": userInfoList}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
} else {
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
}
|
|
||||||
log.InfoByArgs("api get self apply list success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,83 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsGetFriendLIst struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type friendInfo struct {
|
|
||||||
UID string `json:"uid"`
|
|
||||||
Name string `json:"name"`
|
|
||||||
Icon string `json:"icon"`
|
|
||||||
Gender int32 `json:"gender"`
|
|
||||||
Mobile string `json:"mobile"`
|
|
||||||
Birth string `json:"birth"`
|
|
||||||
Email string `json:"email"`
|
|
||||||
Ex string `json:"ex"`
|
|
||||||
Comment string `json:"comment"`
|
|
||||||
IsInBlackList int32 `json:"isInBlackList"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetFriendList(c *gin.Context) {
|
|
||||||
log.Info("", "", fmt.Sprintf("api get_friendlist init ...."))
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsGetFriendLIst{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.GetFriendListReq{
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api get friend list is server")
|
|
||||||
RpcResp, err := client.GetFriendList(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call get friend list rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get friend list rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call get friend list rpc server success,args=%s", RpcResp.String())
|
|
||||||
if RpcResp.ErrorCode == 0 {
|
|
||||||
friendsInfo := make([]friendInfo, 0)
|
|
||||||
for _, friend := range RpcResp.Data {
|
|
||||||
var fi friendInfo
|
|
||||||
fi.UID = friend.Uid
|
|
||||||
fi.Name = friend.Name
|
|
||||||
fi.Icon = friend.Icon
|
|
||||||
fi.Gender = friend.Gender
|
|
||||||
fi.Mobile = friend.Mobile
|
|
||||||
fi.Birth = friend.Birth
|
|
||||||
fi.Email = friend.Email
|
|
||||||
fi.Ex = friend.Ex
|
|
||||||
fi.Comment = friend.Comment
|
|
||||||
fi.IsInBlackList = friend.IsInBlackList
|
|
||||||
friendsInfo = append(friendsInfo, fi)
|
|
||||||
}
|
|
||||||
resp := gin.H{
|
|
||||||
"errCode": RpcResp.ErrorCode,
|
|
||||||
"errMsg": RpcResp.ErrorMsg,
|
|
||||||
"data": friendsInfo,
|
|
||||||
}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
} else {
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
}
|
|
||||||
log.InfoByArgs("api get friend list success return,get args=%s,return=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,70 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsSearchFriend struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
UID string `json:"uid" binding:"required"`
|
|
||||||
OwnerUid string `json:"ownerUid"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetFriendsInfo(c *gin.Context) {
|
|
||||||
log.Info("", "", fmt.Sprintf("api search friend init ...."))
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsSearchFriend{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.GetFriendsInfoReq{
|
|
||||||
Uid: params.UID,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api search_friend is server")
|
|
||||||
RpcResp, err := client.GetFriendsInfo(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call search friend rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call search friend rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call search friend rpc server success,args=%s", RpcResp.String())
|
|
||||||
if RpcResp.ErrorCode == 0 {
|
|
||||||
resp := gin.H{
|
|
||||||
"errCode": RpcResp.ErrorCode,
|
|
||||||
"errMsg": RpcResp.ErrorMsg,
|
|
||||||
"data": gin.H{
|
|
||||||
"uid": RpcResp.Data.Uid,
|
|
||||||
"icon": RpcResp.Data.Icon,
|
|
||||||
"name": RpcResp.Data.Name,
|
|
||||||
"gender": RpcResp.Data.Gender,
|
|
||||||
"mobile": RpcResp.Data.Mobile,
|
|
||||||
"birth": RpcResp.Data.Birth,
|
|
||||||
"email": RpcResp.Data.Email,
|
|
||||||
"ex": RpcResp.Data.Ex,
|
|
||||||
"comment": RpcResp.Data.Comment,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
} else {
|
|
||||||
resp := gin.H{
|
|
||||||
"errCode": RpcResp.ErrorCode,
|
|
||||||
"errMsg": RpcResp.ErrorMsg,
|
|
||||||
}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
}
|
|
||||||
log.InfoByArgs("api search_friend success return,get args=%s,return=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsIsFriend struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
ReceiveUid string `json:"receive_uid"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func IsFriend(c *gin.Context) {
|
|
||||||
log.Info("", "", "api is friend init....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsIsFriend{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.IsFriendReq{
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
ReceiveUid: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api is friend is server")
|
|
||||||
RpcResp, err := client.IsFriend(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call add friend rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add friend rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call is friend rpc server success,args=%s", RpcResp.String())
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "isFriend": RpcResp.ShipType}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
log.InfoByArgs("api is friend success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsRemoveBlackList struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
UID string `json:"uid" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func RemoveBlacklist(c *gin.Context) {
|
|
||||||
log.Info("", "", "api remove_blacklist init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsRemoveBlackList{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.RemoveBlacklistReq{
|
|
||||||
Uid: params.UID,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api remove blacklist is server:userID=%s", req.Uid)
|
|
||||||
RpcResp, err := client.RemoveBlacklist(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call remove blacklist rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call remove blacklist rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call remove blacklist rpc server success,args=%s", RpcResp.String())
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
log.InfoByArgs("api remove blacklist success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsSetFriendComment struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
UID string `json:"uid" binding:"required"`
|
|
||||||
Comment string `json:"comment"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func SetFriendComment(c *gin.Context) {
|
|
||||||
log.Info("", "", "api set friend comment init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName)
|
|
||||||
client := pbFriend.NewFriendClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsSetFriendComment{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pbFriend.SetFriendCommentReq{
|
|
||||||
Uid: params.UID,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Comment: params.Comment,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api set friend comment is server")
|
|
||||||
RpcResp, err := client.SetFriendComment(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call set friend comment rpc server failed", err)
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call set friend comment rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Info("", "", "call set friend comment rpc server success,args=%s", RpcResp.String())
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg})
|
|
||||||
log.Info("", "", "api set friend comment success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,61 +0,0 @@
|
|||||||
package group
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pb "Open_IM/pkg/proto/group"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsCreateGroupStruct struct {
|
|
||||||
MemberList []*pb.GroupAddMemberInfo `json:"memberList"`
|
|
||||||
GroupName string `json:"groupName"`
|
|
||||||
Introduction string `json:"introduction"`
|
|
||||||
Notification string `json:"notification"`
|
|
||||||
FaceUrl string `json:"faceUrl"`
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
Ex string `json:"ex"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func CreateGroup(c *gin.Context) {
|
|
||||||
log.Info("", "", "api create group init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
|
|
||||||
client := pb.NewGroupClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsCreateGroupStruct{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pb.CreateGroupReq{
|
|
||||||
MemberList: params.MemberList,
|
|
||||||
GroupName: params.GroupName,
|
|
||||||
Introduction: params.Introduction,
|
|
||||||
Notification: params.Notification,
|
|
||||||
FaceUrl: params.FaceUrl,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Ex: params.Ex,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api create group is server,params=%s", req.String())
|
|
||||||
RpcResp, err := client.CreateGroup(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,call create group rpc server failed", err.Error())
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call create group rpc server success,args=%s", RpcResp.String())
|
|
||||||
if RpcResp.ErrorCode == 0 {
|
|
||||||
resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": gin.H{"groupID": RpcResp.GroupID}}
|
|
||||||
c.JSON(http.StatusOK, resp)
|
|
||||||
} else {
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg})
|
|
||||||
}
|
|
||||||
log.InfoByArgs("api create group success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,113 +0,0 @@
|
|||||||
package group
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
"Open_IM/pkg/proto/group"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsGroupApplicationList struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func newUserRegisterReq(params *paramsGroupApplicationList) *group.GetGroupApplicationListReq {
|
|
||||||
pbData := group.GetGroupApplicationListReq{
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
}
|
|
||||||
return &pbData
|
|
||||||
}
|
|
||||||
|
|
||||||
type paramsGroupApplicationListRet struct {
|
|
||||||
ID string `json:"id"`
|
|
||||||
GroupID string `json:"groupID"`
|
|
||||||
FromUserID string `json:"fromUserID"`
|
|
||||||
ToUserID string `json:"toUserID"`
|
|
||||||
Flag int32 `json:"flag"`
|
|
||||||
RequestMsg string `json:"reqMsg"`
|
|
||||||
HandledMsg string `json:"handledMsg"`
|
|
||||||
AddTime int64 `json:"createTime"`
|
|
||||||
FromUserNickname string `json:"fromUserNickName"`
|
|
||||||
ToUserNickname string `json:"toUserNickName"`
|
|
||||||
FromUserFaceUrl string `json:"fromUserFaceURL"`
|
|
||||||
ToUserFaceUrl string `json:"toUserFaceURL"`
|
|
||||||
HandledUser string `json:"handledUser"`
|
|
||||||
Type int32 `json:"type"`
|
|
||||||
HandleStatus int32 `json:"handleStatus"`
|
|
||||||
HandleResult int32 `json:"handleResult"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetGroupApplicationList(c *gin.Context) {
|
|
||||||
log.Info("", "", "api GetGroupApplicationList init ....")
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
|
|
||||||
client := group.NewGroupClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsGroupApplicationList{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
pbData := newUserRegisterReq(¶ms)
|
|
||||||
|
|
||||||
token := c.Request.Header.Get("token")
|
|
||||||
if claims, err := token_verify.ParseToken(token); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"})
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
pbData.UID = claims.UID
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Info("", "", "api GetGroupApplicationList is server, [data: %s]", pbData.String())
|
|
||||||
reply, err := client.GetGroupApplicationList(context.Background(), pbData)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("", "", "api GetGroupApplicationList call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error())
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Info("", "", "api GetGroupApplicationList call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String())
|
|
||||||
|
|
||||||
unProcessCount := 0
|
|
||||||
userReq := make([]paramsGroupApplicationListRet, 0)
|
|
||||||
if reply != nil && reply.Data != nil && reply.Data.User != nil {
|
|
||||||
for i := 0; i < len(reply.Data.User); i++ {
|
|
||||||
req := paramsGroupApplicationListRet{}
|
|
||||||
req.ID = reply.Data.User[i].ID
|
|
||||||
req.GroupID = reply.Data.User[i].GroupID
|
|
||||||
req.FromUserID = reply.Data.User[i].FromUserID
|
|
||||||
req.ToUserID = reply.Data.User[i].ToUserID
|
|
||||||
req.Flag = reply.Data.User[i].Flag
|
|
||||||
req.RequestMsg = reply.Data.User[i].RequestMsg
|
|
||||||
req.HandledMsg = reply.Data.User[i].HandledMsg
|
|
||||||
req.AddTime = reply.Data.User[i].AddTime
|
|
||||||
req.FromUserNickname = reply.Data.User[i].FromUserNickname
|
|
||||||
req.ToUserNickname = reply.Data.User[i].ToUserNickname
|
|
||||||
req.FromUserFaceUrl = reply.Data.User[i].FromUserFaceUrl
|
|
||||||
req.ToUserFaceUrl = reply.Data.User[i].ToUserFaceUrl
|
|
||||||
req.HandledUser = reply.Data.User[i].HandledUser
|
|
||||||
req.Type = reply.Data.User[i].Type
|
|
||||||
req.HandleStatus = reply.Data.User[i].HandleStatus
|
|
||||||
req.HandleResult = reply.Data.User[i].HandleResult
|
|
||||||
userReq = append(userReq, req)
|
|
||||||
|
|
||||||
if req.Flag == 0 {
|
|
||||||
unProcessCount++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
c.JSON(http.StatusOK, gin.H{
|
|
||||||
"errCode": reply.ErrCode,
|
|
||||||
"errMsg": reply.ErrMsg,
|
|
||||||
"data": gin.H{
|
|
||||||
"count": unProcessCount,
|
|
||||||
"user": userReq,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
@ -1,67 +0,0 @@
|
|||||||
package group
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pb "Open_IM/pkg/proto/group"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsGetGroupInfo struct {
|
|
||||||
GroupIDList []string `json:"groupIDList" binding:"required"`
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func GetGroupsInfo(c *gin.Context) {
|
|
||||||
log.Info("", "", "api get groups info init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
|
|
||||||
client := pb.NewGroupClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsGetGroupInfo{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pb.GetGroupsInfoReq{
|
|
||||||
GroupIDList: params.GroupIDList,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "get groups info is server,params=%s", req.String())
|
|
||||||
RpcResp, err := client.GetGroupsInfo(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "call get groups info rpc server failed,err=%s", err.Error())
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call get groups info rpc server success", RpcResp.String())
|
|
||||||
if RpcResp.ErrorCode == 0 {
|
|
||||||
groupsInfo := make([]pb.GroupInfo, 0)
|
|
||||||
for _, v := range RpcResp.Data {
|
|
||||||
var groupInfo pb.GroupInfo
|
|
||||||
groupInfo.GroupId = v.GroupId
|
|
||||||
groupInfo.GroupName = v.GroupName
|
|
||||||
groupInfo.Notification = v.Notification
|
|
||||||
groupInfo.Introduction = v.Introduction
|
|
||||||
groupInfo.FaceUrl = v.FaceUrl
|
|
||||||
groupInfo.CreateTime = v.CreateTime
|
|
||||||
groupInfo.OwnerId = v.OwnerId
|
|
||||||
groupInfo.MemberCount = v.MemberCount
|
|
||||||
|
|
||||||
groupsInfo = append(groupsInfo, groupInfo)
|
|
||||||
}
|
|
||||||
c.JSON(http.StatusOK, gin.H{
|
|
||||||
"errCode": RpcResp.ErrorCode,
|
|
||||||
"errMsg": RpcResp.ErrorMsg,
|
|
||||||
"data": groupsInfo,
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg})
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,89 +0,0 @@
|
|||||||
package group
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
"Open_IM/pkg/proto/group"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsGroupApplicationResponse struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
GroupID string `json:"groupID" binding:"required"`
|
|
||||||
FromUserID string `json:"fromUserID" binding:"required"`
|
|
||||||
FromUserNickName string `json:"fromUserNickName"`
|
|
||||||
FromUserFaceUrl string `json:"fromUserFaceUrl"`
|
|
||||||
ToUserID string `json:"toUserID" binding:"required"`
|
|
||||||
ToUserNickName string `json:"toUserNickName"`
|
|
||||||
ToUserFaceUrl string `json:"toUserFaceUrl"`
|
|
||||||
AddTime int64 `json:"addTime"`
|
|
||||||
RequestMsg string `json:"requestMsg"`
|
|
||||||
HandledMsg string `json:"handledMsg"`
|
|
||||||
Type int32 `json:"type"`
|
|
||||||
HandleStatus int32 `json:"handleStatus"`
|
|
||||||
HandleResult int32 `json:"handleResult"`
|
|
||||||
|
|
||||||
UserID string `json:"userID"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func newGroupApplicationResponse(params *paramsGroupApplicationResponse) *group.GroupApplicationResponseReq {
|
|
||||||
pbData := group.GroupApplicationResponseReq{
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
GroupID: params.GroupID,
|
|
||||||
FromUserID: params.FromUserID,
|
|
||||||
FromUserNickName: params.FromUserNickName,
|
|
||||||
FromUserFaceUrl: params.FromUserFaceUrl,
|
|
||||||
ToUserID: params.ToUserID,
|
|
||||||
ToUserNickName: params.ToUserNickName,
|
|
||||||
ToUserFaceUrl: params.ToUserFaceUrl,
|
|
||||||
AddTime: params.AddTime,
|
|
||||||
RequestMsg: params.RequestMsg,
|
|
||||||
HandledMsg: params.HandledMsg,
|
|
||||||
Type: params.Type,
|
|
||||||
HandleStatus: params.HandleStatus,
|
|
||||||
HandleResult: params.HandleResult,
|
|
||||||
}
|
|
||||||
return &pbData
|
|
||||||
}
|
|
||||||
|
|
||||||
func ApplicationGroupResponse(c *gin.Context) {
|
|
||||||
log.Info("", "", "api GroupApplicationResponse init ....")
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
|
|
||||||
client := group.NewGroupClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsGroupApplicationResponse{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
pbData := newGroupApplicationResponse(¶ms)
|
|
||||||
|
|
||||||
token := c.Request.Header.Get("token")
|
|
||||||
if claims, err := token_verify.ParseToken(token); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"})
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
pbData.OwnerID = claims.UID
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Info("", "", "api GroupApplicationResponse is server, [data: %s]", pbData.String())
|
|
||||||
reply, err := client.GroupApplicationResponse(context.Background(), pbData)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("", "", "api GroupApplicationResponse call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error())
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Info("", "", "api GroupApplicationResponse call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String())
|
|
||||||
|
|
||||||
c.JSON(http.StatusOK, gin.H{
|
|
||||||
"errCode": reply.ErrCode,
|
|
||||||
"errMsg": reply.ErrMsg,
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
package group
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pb "Open_IM/pkg/proto/group"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsJoinGroup struct {
|
|
||||||
GroupID string `json:"groupID" binding:"required"`
|
|
||||||
Message string `json:"message"`
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func JoinGroup(c *gin.Context) {
|
|
||||||
log.Info("", "", "api join group init....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
|
|
||||||
client := pb.NewGroupClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsJoinGroup{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pb.JoinGroupReq{
|
|
||||||
GroupID: params.GroupID,
|
|
||||||
Message: params.Message,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api join group is server,params=%s", req.String())
|
|
||||||
RpcResp, err := client.JoinGroup(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "call join group rpc server failed,err=%s", err.Error())
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call join group rpc server success,args=%s", RpcResp.String())
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg})
|
|
||||||
}
|
|
@ -1,46 +0,0 @@
|
|||||||
package group
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pb "Open_IM/pkg/proto/group"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsQuitGroup struct {
|
|
||||||
GroupID string `json:"groupID" binding:"required"`
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func QuitGroup(c *gin.Context) {
|
|
||||||
log.Info("", "", "api quit group init ....")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
|
|
||||||
client := pb.NewGroupClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsQuitGroup{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pb.QuitGroupReq{
|
|
||||||
GroupID: params.GroupID,
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api quit group is server,params=%s", req.String())
|
|
||||||
RpcResp, err := client.QuitGroup(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "call quit group rpc server failed,err=%s", err.Error())
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call quit group rpc server success,args=%s", RpcResp.String())
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg})
|
|
||||||
log.InfoByArgs("api quit group success return,get args=%s,return args=%s", req.String(), RpcResp.String())
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
package group
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pb "Open_IM/pkg/proto/group"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsSetGroupInfo struct {
|
|
||||||
GroupID string `json:"groupId" binding:"required"`
|
|
||||||
GroupName string `json:"groupName"`
|
|
||||||
Notification string `json:"notification"`
|
|
||||||
Introduction string `json:"introduction"`
|
|
||||||
FaceUrl string `json:"faceUrl"`
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func SetGroupInfo(c *gin.Context) {
|
|
||||||
log.Info("", "", "api set group info init...")
|
|
||||||
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
|
|
||||||
client := pb.NewGroupClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsSetGroupInfo{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
req := &pb.SetGroupInfoReq{
|
|
||||||
GroupID: params.GroupID,
|
|
||||||
GroupName: params.GroupName,
|
|
||||||
Notification: params.Notification,
|
|
||||||
Introduction: params.Introduction,
|
|
||||||
FaceUrl: params.FaceUrl,
|
|
||||||
Token: c.Request.Header.Get("token"),
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "api set group info is server,params=%s", req.String())
|
|
||||||
RpcResp, err := client.SetGroupInfo(context.Background(), req)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "call set group info rpc server failed,err=%s", err.Error())
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.InfoByArgs("call set group info rpc server success,args=%s", RpcResp.String())
|
|
||||||
c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg})
|
|
||||||
}
|
|
@ -1,65 +0,0 @@
|
|||||||
package group
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
"Open_IM/pkg/proto/group"
|
|
||||||
"context"
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
"net/http"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type paramsTransferGroupOwner struct {
|
|
||||||
OperationID string `json:"operationID" binding:"required"`
|
|
||||||
GroupID string `json:"groupID" binding:"required"`
|
|
||||||
UID string `json:"uid" binding:"required"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func newTransferGroupOwnerReq(params *paramsTransferGroupOwner) *group.TransferGroupOwnerReq {
|
|
||||||
pbData := group.TransferGroupOwnerReq{
|
|
||||||
OperationID: params.OperationID,
|
|
||||||
GroupID: params.GroupID,
|
|
||||||
NewOwner: params.UID,
|
|
||||||
}
|
|
||||||
return &pbData
|
|
||||||
}
|
|
||||||
|
|
||||||
func TransferGroupOwner(c *gin.Context) {
|
|
||||||
log.Info("", "", "api TransferGroupOwner init ....")
|
|
||||||
etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName)
|
|
||||||
client := group.NewGroupClient(etcdConn)
|
|
||||||
//defer etcdConn.Close()
|
|
||||||
|
|
||||||
params := paramsTransferGroupOwner{}
|
|
||||||
if err := c.BindJSON(¶ms); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
pbData := newTransferGroupOwnerReq(¶ms)
|
|
||||||
|
|
||||||
token := c.Request.Header.Get("token")
|
|
||||||
if claims, err := token_verify.ParseToken(token); err != nil {
|
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"})
|
|
||||||
return
|
|
||||||
} else {
|
|
||||||
pbData.OldOwner = claims.UID
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Info("", "", "api TransferGroupOwner is server, [data: %s]", pbData.String())
|
|
||||||
reply, err := client.TransferGroupOwner(context.Background(), pbData)
|
|
||||||
if err != nil {
|
|
||||||
log.Error("", "", "api TransferGroupOwner call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error())
|
|
||||||
c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Info("", "", "api TransferGroupOwner call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String())
|
|
||||||
|
|
||||||
c.JSON(http.StatusOK, gin.H{
|
|
||||||
"errCode": reply.ErrCode,
|
|
||||||
"errMsg": reply.ErrMsg,
|
|
||||||
})
|
|
||||||
|
|
||||||
}
|
|
@ -1,47 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"Open_IM/pkg/utils"
|
|
||||||
"context"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlacklistReq) (*pbFriend.CommonResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc add blacklist is server,args=%s", req.String())
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
isMagagerFlag := 0
|
|
||||||
tokenUid := claims.UID
|
|
||||||
|
|
||||||
if utils.IsContain(tokenUid, config.Config.Manager.AppManagerUid) {
|
|
||||||
isMagagerFlag = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
if isMagagerFlag == 0 {
|
|
||||||
err = im_mysql_model.InsertInToUserBlackList(claims.UID, req.Uid)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,Failed to add blacklist", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc add blacklist success return,uid=%s", req.Uid)
|
|
||||||
return &pbFriend.CommonResp{}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
err = im_mysql_model.InsertInToUserBlackList(req.OwnerUid, req.Uid)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,Failed to add blacklist", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc add blacklist success return,uid=%s", req.Uid)
|
|
||||||
return &pbFriend.CommonResp{}, nil
|
|
||||||
}
|
|
@ -1,133 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/internal/push/content_struct"
|
|
||||||
"Open_IM/internal/push/logic"
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbChat "Open_IM/pkg/proto/chat"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"Open_IM/pkg/utils"
|
|
||||||
"context"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq) (*pbFriend.CommonResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc add friend is server,userid=%s", req.Uid)
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
//Cannot add non-existent users
|
|
||||||
if _, err = im_mysql_model.FindUserByUID(req.Uid); err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "this user not exists,cant not add friend")
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrAddFriend.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
//Establish a latest relationship in the friend request table
|
|
||||||
err = im_mysql_model.ReplaceIntoFriendReq(claims.UID, req.Uid, constant.ApplicationFriendFlag, req.ReqMessage)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,create friend request record failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrAddFriend.ErrCode, ErrorMsg: constant.ErrAddFriend.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc add friend is success return,uid=%s", req.Uid)
|
|
||||||
//Push message when add friend successfully
|
|
||||||
senderInfo, errSend := im_mysql_model.FindUserByUID(claims.UID)
|
|
||||||
receiverInfo, errReceive := im_mysql_model.FindUserByUID(req.Uid)
|
|
||||||
if errSend == nil && errReceive == nil {
|
|
||||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
|
||||||
SendID: senderInfo.UID,
|
|
||||||
RecvID: receiverInfo.UID,
|
|
||||||
Content: content_struct.NewContentStructString(0, "", senderInfo.Name+" asked to add you as a friend"),
|
|
||||||
SendTime: utils.GetCurrentTimestampBySecond(),
|
|
||||||
MsgFrom: constant.SysMsgType,
|
|
||||||
ContentType: constant.AddFriendTip,
|
|
||||||
SessionType: constant.SingleChatType,
|
|
||||||
OperationID: req.OperationID,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return &pbFriend.CommonResp{}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "ImportFriend come here,args=%s", req.String())
|
|
||||||
var resp pbFriend.ImportFriendResp
|
|
||||||
var c pbFriend.CommonResp
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.NewError(req.OperationID, "parse token failed", err.Error())
|
|
||||||
c.ErrorCode = constant.ErrAddFriend.ErrCode
|
|
||||||
c.ErrorMsg = constant.ErrParseToken.ErrMsg
|
|
||||||
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) {
|
|
||||||
log.NewError(req.OperationID, "not manager uid", claims.UID)
|
|
||||||
c.ErrorCode = constant.ErrAddFriend.ErrCode
|
|
||||||
c.ErrorMsg = "not authorized"
|
|
||||||
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil
|
|
||||||
}
|
|
||||||
if _, err = im_mysql_model.FindUserByUID(req.OwnerUid); err != nil {
|
|
||||||
log.NewError(req.OperationID, "this user not exists,cant not add friend", req.OwnerUid)
|
|
||||||
c.ErrorCode = constant.ErrAddFriend.ErrCode
|
|
||||||
c.ErrorMsg = "this user not exists,cant not add friend"
|
|
||||||
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil
|
|
||||||
}
|
|
||||||
for _, v := range req.UidList {
|
|
||||||
if _, fErr := im_mysql_model.FindUserByUID(v); fErr != nil {
|
|
||||||
c.ErrorMsg = "some uid establish failed"
|
|
||||||
c.ErrorCode = 408
|
|
||||||
resp.FailedUidList = append(resp.FailedUidList, v)
|
|
||||||
} else {
|
|
||||||
if _, err = im_mysql_model.FindFriendRelationshipFromFriend(req.OwnerUid, v); err != nil {
|
|
||||||
//Establish two single friendship
|
|
||||||
err1 := im_mysql_model.InsertToFriend(req.OwnerUid, v, 1)
|
|
||||||
if err1 != nil {
|
|
||||||
resp.FailedUidList = append(resp.FailedUidList, v)
|
|
||||||
log.NewError(req.OperationID, "err1,create friendship failed", req.OwnerUid, v, err1.Error())
|
|
||||||
}
|
|
||||||
err2 := im_mysql_model.InsertToFriend(v, req.OwnerUid, 1)
|
|
||||||
if err2 != nil {
|
|
||||||
log.NewError(req.OperationID, "err2,create friendship failed", v, req.OwnerUid, err2.Error())
|
|
||||||
}
|
|
||||||
if err1 == nil && err2 == nil {
|
|
||||||
var name, faceUrl string
|
|
||||||
n := content_struct.NotificationContent{IsDisplay: 1, DefaultTips: constant.FriendAcceptTip}
|
|
||||||
r, err := im_mysql_model.FindUserByUID(v)
|
|
||||||
if err != nil {
|
|
||||||
log.NewError(req.OperationID, "get info failed", err.Error(), v)
|
|
||||||
}
|
|
||||||
if r != nil {
|
|
||||||
name, faceUrl = r.Name, r.Icon
|
|
||||||
}
|
|
||||||
|
|
||||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
|
||||||
SendID: v,
|
|
||||||
RecvID: req.OwnerUid,
|
|
||||||
SenderFaceURL: faceUrl,
|
|
||||||
SenderNickName: name,
|
|
||||||
Content: n.ContentToString(),
|
|
||||||
SendTime: utils.GetCurrentTimestampByNano(),
|
|
||||||
MsgFrom: constant.UserMsgType, //Notification message identification
|
|
||||||
ContentType: constant.AcceptFriendApplicationTip, //Add friend flag
|
|
||||||
SessionType: constant.SingleChatType,
|
|
||||||
OperationID: req.OperationID,
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
c.ErrorMsg = "some uid establish failed"
|
|
||||||
c.ErrorCode = 408
|
|
||||||
resp.FailedUidList = append(resp.FailedUidList, v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
resp.CommonResp = &c
|
|
||||||
log.NewDebug(req.OperationID, "rpc come end", resp.CommonResp.ErrorCode, resp.CommonResp.ErrorMsg, resp.FailedUidList)
|
|
||||||
return &resp, nil
|
|
||||||
|
|
||||||
}
|
|
@ -1,84 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/internal/push/content_struct"
|
|
||||||
"Open_IM/internal/push/logic"
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbChat "Open_IM/pkg/proto/chat"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"Open_IM/pkg/utils"
|
|
||||||
"context"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc add friend response is server,args=%s", req.String())
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
//Check there application before agreeing or refuse to a friend's application
|
|
||||||
if _, err = im_mysql_model.FindFriendApplyFromFriendReqByUid(req.Uid, claims.UID); err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "No such application record")
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrAgreeToAddFriend.ErrCode, ErrorMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
//Change friend request status flag
|
|
||||||
err = im_mysql_model.UpdateFriendRelationshipToFriendReq(req.Uid, claims.UID, req.Flag)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,update friend request table failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc add friend response success return,userid=%s,flag=%d", req.Uid, req.Flag)
|
|
||||||
//Change the status of the friend request form
|
|
||||||
if req.Flag == constant.FriendFlag {
|
|
||||||
//Establish friendship after find friend relationship not exists
|
|
||||||
_, err := im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, req.Uid)
|
|
||||||
//fixme If there is an error, it means that there is no friend record or database err, if no friend record should be inserted,Continue down execution
|
|
||||||
if err != nil {
|
|
||||||
log.Error("", req.OperationID, err.Error())
|
|
||||||
}
|
|
||||||
//Establish two single friendship
|
|
||||||
err = im_mysql_model.InsertToFriend(claims.UID, req.Uid, req.Flag)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,create friendship failed", err.Error())
|
|
||||||
}
|
|
||||||
err = im_mysql_model.InsertToFriend(req.Uid, claims.UID, req.Flag)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,create friendship failed", err.Error())
|
|
||||||
}
|
|
||||||
//Push message when establish friends successfully
|
|
||||||
//senderInfo, errSend := im_mysql_model.FindUserByUID(claims.UID)
|
|
||||||
//if errSend == nil {
|
|
||||||
// logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
|
||||||
// SendID: claims.UID,
|
|
||||||
// RecvID: req.Uid,
|
|
||||||
// Content: content_struct.NewContentStructString(1, "", senderInfo.Name+" agreed to add you as a friend."),
|
|
||||||
// SendTime: utils.GetCurrentTimestampBySecond(),
|
|
||||||
// MsgFrom: constant.UserMsgType, //Notification message identification
|
|
||||||
// ContentType: constant.AcceptFriendApplicationTip, //Add friend flag
|
|
||||||
// SessionType: constant.SingleChatType,
|
|
||||||
// OperationID: req.OperationID,
|
|
||||||
// })
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
if req.Flag == constant.RefuseFriendFlag {
|
|
||||||
senderInfo, errSend := im_mysql_model.FindUserByUID(claims.UID)
|
|
||||||
if errSend == nil {
|
|
||||||
logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{
|
|
||||||
SendID: claims.UID,
|
|
||||||
RecvID: req.Uid,
|
|
||||||
Content: content_struct.NewContentStructString(0, "", senderInfo.Name+" refuse to add you as a friend."),
|
|
||||||
SendTime: utils.GetCurrentTimestampBySecond(),
|
|
||||||
MsgFrom: constant.UserMsgType, //Notification message identification
|
|
||||||
ContentType: constant.RefuseFriendApplicationTip, //Add friend flag
|
|
||||||
SessionType: constant.SingleChatType,
|
|
||||||
OperationID: req.OperationID,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return &pbFriend.CommonResp{}, nil
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.CommonResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc delete friend is server,args=%s", req.String())
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
err = im_mysql_model.DeleteSingleFriendInfo(claims.UID, req.Uid)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,delete friend failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc delete friend success return")
|
|
||||||
return &pbFriend.CommonResp{}, nil
|
|
||||||
}
|
|
@ -0,0 +1,487 @@
|
|||||||
|
package friend
|
||||||
|
|
||||||
|
import (
|
||||||
|
"Open_IM/internal/rpc/chat"
|
||||||
|
"Open_IM/pkg/common/config"
|
||||||
|
"Open_IM/pkg/common/constant"
|
||||||
|
imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
||||||
|
"Open_IM/pkg/common/log"
|
||||||
|
"Open_IM/pkg/common/token_verify"
|
||||||
|
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
||||||
|
pbFriend "Open_IM/pkg/proto/friend"
|
||||||
|
sdk_ws "Open_IM/pkg/proto/sdk_ws"
|
||||||
|
"Open_IM/pkg/utils"
|
||||||
|
"context"
|
||||||
|
"fmt"
|
||||||
|
"google.golang.org/grpc"
|
||||||
|
"net"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
)
|
||||||
|
|
||||||
|
type friendServer struct {
|
||||||
|
rpcPort int
|
||||||
|
rpcRegisterName string
|
||||||
|
etcdSchema string
|
||||||
|
etcdAddr []string
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFriendServer(port int) *friendServer {
|
||||||
|
log.NewPrivateLog("friend")
|
||||||
|
return &friendServer{
|
||||||
|
rpcPort: port,
|
||||||
|
rpcRegisterName: config.Config.RpcRegisterName.OpenImFriendName,
|
||||||
|
etcdSchema: config.Config.Etcd.EtcdSchema,
|
||||||
|
etcdAddr: config.Config.Etcd.EtcdAddr,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) Run() {
|
||||||
|
log.Info("", "", fmt.Sprintf("rpc friend init...."))
|
||||||
|
|
||||||
|
ip := utils.ServerIP
|
||||||
|
registerAddress := ip + ":" + strconv.Itoa(s.rpcPort)
|
||||||
|
//listener network
|
||||||
|
listener, err := net.Listen("tcp", registerAddress)
|
||||||
|
if err != nil {
|
||||||
|
log.InfoByArgs(fmt.Sprintf("Failed to listen rpc friend network,err=%s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
log.Info("", "", "listen network success, address = %s", registerAddress)
|
||||||
|
defer listener.Close()
|
||||||
|
//grpc server
|
||||||
|
srv := grpc.NewServer()
|
||||||
|
defer srv.GracefulStop()
|
||||||
|
//User friend related services register to etcd
|
||||||
|
pbFriend.RegisterFriendServer(srv, s)
|
||||||
|
err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10)
|
||||||
|
if err != nil {
|
||||||
|
log.ErrorByArgs("register rpc fiend service to etcd failed,err=%s", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = srv.Serve(listener)
|
||||||
|
if err != nil {
|
||||||
|
log.ErrorByArgs("listen rpc friend error,err=%s", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFriendsInfoReq) (*pbFriend.GetFriendInfoResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String())
|
||||||
|
var (
|
||||||
|
isInBlackList int32
|
||||||
|
// isFriend int32
|
||||||
|
comment string
|
||||||
|
)
|
||||||
|
|
||||||
|
friendShip, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindFriendRelationshipFromFriend failed ", err.Error())
|
||||||
|
return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil
|
||||||
|
// isFriend = constant.FriendFlag
|
||||||
|
}
|
||||||
|
comment = friendShip.Remark
|
||||||
|
|
||||||
|
friendUserInfo, err := imdb.FindUserByUID(req.CommID.ToUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error())
|
||||||
|
return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
if err == nil {
|
||||||
|
isInBlackList = constant.BlackListFlag
|
||||||
|
}
|
||||||
|
|
||||||
|
resp := pbFriend.GetFriendInfoResp{
|
||||||
|
ErrCode: 0,
|
||||||
|
ErrMsg: "",
|
||||||
|
Data: &pbFriend.FriendInfo{
|
||||||
|
IsBlack: isInBlackList,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
utils.CopyStructFields(resp.Data.FriendUser, friendUserInfo)
|
||||||
|
resp.Data.IsBlack = isInBlackList
|
||||||
|
resp.Data.OwnerUserID = req.CommID.FromUserID
|
||||||
|
resp.Data.Remark = comment
|
||||||
|
resp.Data.CreateTime = friendUserInfo.CreateTime
|
||||||
|
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetFriendsInfo ok ", resp)
|
||||||
|
return &resp, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlacklistReq) (*pbFriend.CommonResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "AddBlacklist args ", req.String())
|
||||||
|
ok := token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
}
|
||||||
|
|
||||||
|
err := imdb.InsertInToUserBlackList(req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "InsertInToUserBlackList failed ", err.Error())
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "InsertInToUserBlackList ok ", req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
chat.BlackAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
return &pbFriend.CommonResp{}, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq) (*pbFriend.CommonResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "AddFriend args ", req.String())
|
||||||
|
ok := token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
if !ok {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
}
|
||||||
|
//Cannot add non-existent users
|
||||||
|
if _, err := imdb.FindUserByUID(req.CommID.ToUserID); err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), req.CommID.ToUserID)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrAddFriend.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
//Establish a latest relationship in the friend request table
|
||||||
|
err := imdb.ReplaceIntoFriendReq(req.CommID.FromUserID, req.CommID.ToUserID, constant.ApplicationFriendFlag, req.ReqMessage)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "ReplaceIntoFriendReq failed ", err.Error())
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrAddFriend.ErrCode, ErrMsg: constant.ErrAddFriend.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
chat.FriendApplicationAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID, req.ReqMessage)
|
||||||
|
return &pbFriend.CommonResp{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) {
|
||||||
|
log.NewInfo(req.OperationID, "ImportFriend failed ", req.String())
|
||||||
|
var resp pbFriend.ImportFriendResp
|
||||||
|
var c pbFriend.CommonResp
|
||||||
|
|
||||||
|
if !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) {
|
||||||
|
log.NewError(req.OperationID, "not authorized", req.OpUserID)
|
||||||
|
c.ErrCode = constant.ErrAddFriend.ErrCode
|
||||||
|
c.ErrMsg = "not authorized"
|
||||||
|
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.FriendUserIDList}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if _, err := imdb.FindUserByUID(req.FromUserID); err != nil {
|
||||||
|
log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID)
|
||||||
|
c.ErrCode = constant.ErrAddFriend.ErrCode
|
||||||
|
c.ErrMsg = "this user not exists,cant not add friend"
|
||||||
|
return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.FriendUserIDList}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, v := range req.FriendUserIDList {
|
||||||
|
if _, fErr := imdb.FindUserByUID(v); fErr != nil {
|
||||||
|
c.ErrMsg = "some uid establish failed"
|
||||||
|
c.ErrCode = 408
|
||||||
|
resp.FailedUidList = append(resp.FailedUidList, v)
|
||||||
|
} else {
|
||||||
|
if _, err := imdb.FindFriendRelationshipFromFriend(req.FromUserID, v); err != nil {
|
||||||
|
//Establish two single friendship
|
||||||
|
err1 := imdb.InsertToFriend(req.FromUserID, v, 1)
|
||||||
|
if err1 != nil {
|
||||||
|
resp.FailedUidList = append(resp.FailedUidList, v)
|
||||||
|
log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error())
|
||||||
|
c.ErrMsg = "some uid establish failed"
|
||||||
|
c.ErrCode = 408
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
err2 := imdb.InsertToFriend(v, req.FromUserID, 1)
|
||||||
|
if err2 != nil {
|
||||||
|
resp.FailedUidList = append(resp.FailedUidList, v)
|
||||||
|
log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error())
|
||||||
|
c.ErrMsg = "some uid establish failed"
|
||||||
|
c.ErrCode = 408
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
resp.CommonResp = &c
|
||||||
|
log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp)
|
||||||
|
return &resp, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String())
|
||||||
|
|
||||||
|
if !token_verify.CheckAccess(rreq.CommID.FromUserID, req.CommID.ToUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check there application before agreeing or refuse to a friend's application
|
||||||
|
//req.CommID.FromUserID process req.CommID.ToUserID
|
||||||
|
if _, err := imdb.FindFriendApplyFromFriendReqByUid(req.CommID.ToUserID, req.CommID.FromUserID); err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindFriendApplyFromFriendReqByUid failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
//Change friend request status flag
|
||||||
|
err := imdb.UpdateFriendRelationshipToFriendReq(req.CommID.ToUserID, req.CommID.FromUserID, req.Flag)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "UpdateFriendRelationshipToFriendReq failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID, req.Flag)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "rpc AddFriendResponse ok")
|
||||||
|
//Change the status of the friend request form
|
||||||
|
if req.Flag == constant.FriendFlag {
|
||||||
|
//Establish friendship after find friend relationship not exists
|
||||||
|
_, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
if err == nil {
|
||||||
|
log.NewWarn(req.CommID.OperationID, "FindFriendRelationshipFromFriend exist", req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
} else {
|
||||||
|
//Establish two single friendship
|
||||||
|
err = imdb.InsertToFriend(req.CommID.FromUserID, req.CommID.ToUserID, req.Flag)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID, req.Flag)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err = imdb.FindFriendRelationshipFromFriend(req.CommID.ToUserID, req.CommID.FromUserID)
|
||||||
|
if err == nil {
|
||||||
|
log.NewWarn(req.CommID.OperationID, "FindFriendRelationshipFromFriend exist", req.CommID.ToUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.CommonResp{}, nil
|
||||||
|
}
|
||||||
|
err = imdb.InsertToFriend(req.CommID.ToUserID, req.CommID.FromUserID, req.Flag)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID, req.Flag)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
chat.FriendApplicationProcessedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID, req.Flag)
|
||||||
|
return &pbFriend.CommonResp{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.CommonResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "DeleteFriend args ", req.String())
|
||||||
|
//Parse token, to find current user information
|
||||||
|
if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
err := imdb.DeleteSingleFriendInfo(req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "DeleteSingleFriendInfo failed", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "DeleteFriend rpc ok")
|
||||||
|
chat.FriendDeletedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
return &pbFriend.CommonResp{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlacklistReq) (*pbFriend.GetBlacklistResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetBlacklist args ", req.String())
|
||||||
|
|
||||||
|
//Parse token, to find current user information
|
||||||
|
if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess failed", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
blackListInfo, err := imdb.GetBlackListByUID(req.CommID.FromUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "GetBlackListByUID failed ", err.Error(), req.CommID.FromUserID)
|
||||||
|
return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrGetBlackList.ErrCode, ErrMsg: constant.ErrGetBlackList.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
userInfoList []*sdk_ws.PublicUserInfo
|
||||||
|
)
|
||||||
|
for _, blackUser := range blackListInfo {
|
||||||
|
var blackUserInfo sdk_ws.PublicUserInfo
|
||||||
|
//Find black user information
|
||||||
|
us, err := imdb.FindUserByUID(blackUser.BlockUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), blackUser.BlockUserID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
utils.CopyStructFields(&blackUserInfo, us)
|
||||||
|
userInfoList = append(userInfoList, &blackUserInfo)
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "rpc GetBlacklist ok")
|
||||||
|
return &pbFriend.GetBlacklistResp{Data: userInfoList}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFriendCommentReq) (*pbFriend.CommonResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "SetFriendComment args ", req.String())
|
||||||
|
//Parse token, to find current user information
|
||||||
|
if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
err := imdb.UpdateFriendComment(req.CommID.FromUserID, req.CommID.OpUserID, req.Remark)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "UpdateFriendComment failed ", err.Error(), req.CommID.FromUserID, req.CommID.OpUserID, req.Remark)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrSetFriendComment.ErrCode, ErrMsg: constant.ErrSetFriendComment.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok")
|
||||||
|
chat.FriendInfoChangedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
return &pbFriend.CommonResp{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.RemoveBlacklistReq) (*pbFriend.CommonResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "RemoveBlacklist args ", req.String())
|
||||||
|
//Parse token, to find current user information
|
||||||
|
if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
err := imdb.RemoveBlackList(req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "RemoveBlackList failed", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "rpc RemoveBlacklist ok")
|
||||||
|
chat.BlackDeletedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
return &pbFriend.CommonResp{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlackListReq) (*pbFriend.IsInBlackListResp, error) {
|
||||||
|
log.NewInfo("IsInBlackList args ", req.String())
|
||||||
|
if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.IsInBlackListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var isInBlacklist = false
|
||||||
|
err := imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
if err == nil {
|
||||||
|
isInBlacklist = true
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "IsInBlackList rpc ok")
|
||||||
|
return &pbFriend.IsInBlackListResp{Response: isInBlacklist}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) (*pbFriend.IsFriendResp, error) {
|
||||||
|
log.NewInfo("IsFriend args ", req.String())
|
||||||
|
var isFriend int32
|
||||||
|
if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.IsFriendResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
_, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID)
|
||||||
|
if err == nil {
|
||||||
|
isFriend = constant.FriendFlag
|
||||||
|
} else {
|
||||||
|
isFriend = constant.ApplicationFriendFlag
|
||||||
|
}
|
||||||
|
log.NewInfo("IsFriend rpc ok")
|
||||||
|
return &pbFriend.IsFriendResp{ShipType: isFriend}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFriendListReq) (*pbFriend.GetFriendListResp, error) {
|
||||||
|
log.NewInfo("GetFriendList args ", req.String())
|
||||||
|
var userInfoList []*pbFriend.FriendInfo
|
||||||
|
//Parse token, to find current user information
|
||||||
|
if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.GetFriendListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
friends, err := imdb.FindUserInfoFromFriend(req.CommID.FromUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindUserInfoFromFriend failed", err.Error(), req.CommID.FromUserID)
|
||||||
|
return &pbFriend.GetFriendListResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
for _, friendUser := range friends {
|
||||||
|
var friendUserInfo pbFriend.FriendInfo
|
||||||
|
//find user is in blackList
|
||||||
|
err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, friendUser.FriendUserID)
|
||||||
|
if err == nil {
|
||||||
|
friendUserInfo.IsBlack = constant.BlackListFlag
|
||||||
|
} else {
|
||||||
|
friendUserInfo.IsBlack = 0
|
||||||
|
}
|
||||||
|
//Find user information
|
||||||
|
us, err := imdb.FindUserByUID(friendUser.FriendUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindUserByUID failed", err.Error(), friendUser.FriendUserID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
utils.CopyStructFields(friendUserInfo.FriendUser, us)
|
||||||
|
friendUserInfo.Remark = friendUser.Remark
|
||||||
|
friendUserInfo.OwnerUserID = req.CommID.FromUserID
|
||||||
|
friendUserInfo.CreateTime = friendUser.CreateTime
|
||||||
|
userInfoList = append(userInfoList, &friendUserInfo)
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "rpc GetFriendList ok", pbFriend.GetFriendListResp{Data: userInfoList})
|
||||||
|
return &pbFriend.GetFriendListResp{Data: userInfoList}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetFriendApplyList args ", req.String())
|
||||||
|
var appleUserList []*pbFriend.ApplyUserInfo
|
||||||
|
//Parse token, to find current user information
|
||||||
|
if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the current user friend applications received
|
||||||
|
ApplyUsersInfo, err := imdb.FindFriendsApplyFromFriendReq(req.CommID.FromUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindFriendsApplyFromFriendReq ", err.Error(), req.CommID.FromUserID)
|
||||||
|
return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, applyUserInfo := range ApplyUsersInfo {
|
||||||
|
var userInfo pbFriend.ApplyUserInfo
|
||||||
|
//Find friend application status
|
||||||
|
userInfo.Flag = applyUserInfo.Flag
|
||||||
|
userInfo.ReqMessage = applyUserInfo.ReqMessage
|
||||||
|
userInfo.ApplyTime = applyUserInfo.CreateTime
|
||||||
|
|
||||||
|
//Find user information
|
||||||
|
us, err := imdb.FindUserByUID(applyUserInfo.ReqID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), applyUserInfo.ReqID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
utils.CopyStructFields(userInfo.UserInfo, us)
|
||||||
|
appleUserList = append(appleUserList, &userInfo)
|
||||||
|
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "rpc GetFriendApplyList ok", pbFriend.GetFriendApplyResp{Data: appleUserList})
|
||||||
|
return &pbFriend.GetFriendApplyResp{Data: appleUserList}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) {
|
||||||
|
log.NewInfo(req.CommID.OperationID, "GetSelfApplyList args ", req.String())
|
||||||
|
var selfApplyOtherUserList []*pbFriend.ApplyUserInfo
|
||||||
|
//Parse token, to find current user information
|
||||||
|
if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) {
|
||||||
|
log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID)
|
||||||
|
return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find the self add other userinfo
|
||||||
|
usersInfo, err := imdb.FindSelfApplyFromFriendReq(req.CommID.FromUserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindSelfApplyFromFriendReq failed ", err.Error(), req.CommID.FromUserID)
|
||||||
|
return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil
|
||||||
|
}
|
||||||
|
for _, selfApplyOtherUserInfo := range usersInfo {
|
||||||
|
var userInfo pbFriend.ApplyUserInfo
|
||||||
|
//Find friend application status
|
||||||
|
userInfo.Flag = selfApplyOtherUserInfo.Flag
|
||||||
|
userInfo.ReqMessage = selfApplyOtherUserInfo.ReqMessage
|
||||||
|
userInfo.ApplyTime = selfApplyOtherUserInfo.CreateTime
|
||||||
|
//Find user information
|
||||||
|
us, err := imdb.FindUserByUID(selfApplyOtherUserInfo.UserID)
|
||||||
|
if err != nil {
|
||||||
|
log.NewError(req.CommID.OperationID, "FindUserByUID failed", err.Error(), selfApplyOtherUserInfo.UserID)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
utils.CopyStructFields(userInfo.UserInfo, us)
|
||||||
|
selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo)
|
||||||
|
}
|
||||||
|
log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetFriendApplyResp{Data: selfApplyOtherUserList})
|
||||||
|
return &pbFriend.GetFriendApplyResp{Data: selfApplyOtherUserList}, nil
|
||||||
|
}
|
@ -1,55 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlacklistReq) (*pbFriend.GetBlacklistResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc get blacklist is server,args=%s", req.String())
|
|
||||||
var (
|
|
||||||
userInfoList []*pbFriend.UserInfo
|
|
||||||
comment string
|
|
||||||
)
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.GetBlacklistResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
blackListInfo, err := im_mysql_model.GetBlackListByUID(claims.UID)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s get blacklist failed", err.Error())
|
|
||||||
return &pbFriend.GetBlacklistResp{ErrorCode: constant.ErrGetBlackList.ErrCode, ErrorMsg: constant.ErrGetBlackList.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
for _, blackUser := range blackListInfo {
|
|
||||||
var blackUserInfo pbFriend.UserInfo
|
|
||||||
//Find black user information
|
|
||||||
us, err := im_mysql_model.FindUserByUID(blackUser.BlockId)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s search black list userInfo failed", err.Error())
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
friendShip, err := im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, blackUser.BlockId)
|
|
||||||
if err == nil {
|
|
||||||
comment = friendShip.Comment
|
|
||||||
}
|
|
||||||
blackUserInfo.Uid = us.UID
|
|
||||||
blackUserInfo.Icon = us.Icon
|
|
||||||
blackUserInfo.Name = us.Name
|
|
||||||
blackUserInfo.Gender = us.Gender
|
|
||||||
blackUserInfo.Mobile = us.Mobile
|
|
||||||
blackUserInfo.Birth = us.Birth
|
|
||||||
blackUserInfo.Email = us.Email
|
|
||||||
blackUserInfo.Ex = us.Ex
|
|
||||||
blackUserInfo.Comment = comment
|
|
||||||
|
|
||||||
userInfoList = append(userInfoList, &blackUserInfo)
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc get blacklist success return")
|
|
||||||
return &pbFriend.GetBlacklistResp{Data: userInfoList}, nil
|
|
||||||
}
|
|
@ -1,113 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/config"
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
"Open_IM/pkg/grpc-etcdv3/getcdv3"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"Open_IM/pkg/utils"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"google.golang.org/grpc"
|
|
||||||
"net"
|
|
||||||
"strconv"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
type friendServer struct {
|
|
||||||
rpcPort int
|
|
||||||
rpcRegisterName string
|
|
||||||
etcdSchema string
|
|
||||||
etcdAddr []string
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewFriendServer(port int) *friendServer {
|
|
||||||
log.NewPrivateLog("friend")
|
|
||||||
return &friendServer{
|
|
||||||
rpcPort: port,
|
|
||||||
rpcRegisterName: config.Config.RpcRegisterName.OpenImFriendName,
|
|
||||||
etcdSchema: config.Config.Etcd.EtcdSchema,
|
|
||||||
etcdAddr: config.Config.Etcd.EtcdAddr,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *friendServer) Run() {
|
|
||||||
log.Info("", "", fmt.Sprintf("rpc friend init...."))
|
|
||||||
|
|
||||||
ip := utils.ServerIP
|
|
||||||
registerAddress := ip + ":" + strconv.Itoa(s.rpcPort)
|
|
||||||
//listener network
|
|
||||||
listener, err := net.Listen("tcp", registerAddress)
|
|
||||||
if err != nil {
|
|
||||||
log.InfoByArgs(fmt.Sprintf("Failed to listen rpc friend network,err=%s", err.Error()))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.Info("", "", "listen network success, address = %s", registerAddress)
|
|
||||||
defer listener.Close()
|
|
||||||
//grpc server
|
|
||||||
srv := grpc.NewServer()
|
|
||||||
defer srv.GracefulStop()
|
|
||||||
//User friend related services register to etcd
|
|
||||||
pbFriend.RegisterFriendServer(srv, s)
|
|
||||||
err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10)
|
|
||||||
if err != nil {
|
|
||||||
log.ErrorByArgs("register rpc fiend service to etcd failed,err=%s", err.Error())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
err = srv.Serve(listener)
|
|
||||||
if err != nil {
|
|
||||||
log.ErrorByArgs("listen rpc friend error,err=%s", err.Error())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFriendsInfoReq) (*pbFriend.GetFriendInfoResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc search user is server,args=%s", req.String())
|
|
||||||
var (
|
|
||||||
isInBlackList int32
|
|
||||||
isFriend int32
|
|
||||||
comment string
|
|
||||||
)
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.GetFriendInfoResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
friendShip, err := im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, req.Uid)
|
|
||||||
if err == nil {
|
|
||||||
isFriend = constant.FriendFlag
|
|
||||||
comment = friendShip.Comment
|
|
||||||
}
|
|
||||||
friendUserInfo, err := im_mysql_model.FindUserByUID(req.Uid)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,no this user", err.Error())
|
|
||||||
return &pbFriend.GetFriendInfoResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
err = im_mysql_model.FindRelationshipFromBlackList(claims.UID, req.Uid)
|
|
||||||
if err == nil {
|
|
||||||
isInBlackList = constant.BlackListFlag
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc search friend success return")
|
|
||||||
return &pbFriend.GetFriendInfoResp{
|
|
||||||
ErrorCode: 0,
|
|
||||||
ErrorMsg: "",
|
|
||||||
Data: &pbFriend.GetFriendData{
|
|
||||||
Uid: friendUserInfo.UID,
|
|
||||||
Icon: friendUserInfo.Icon,
|
|
||||||
Name: friendUserInfo.Name,
|
|
||||||
Gender: friendUserInfo.Gender,
|
|
||||||
Mobile: friendUserInfo.Mobile,
|
|
||||||
Birth: friendUserInfo.Birth,
|
|
||||||
Email: friendUserInfo.Email,
|
|
||||||
Ex: friendUserInfo.Ex,
|
|
||||||
Comment: comment,
|
|
||||||
IsFriend: isFriend,
|
|
||||||
IsInBlackList: isInBlackList,
|
|
||||||
},
|
|
||||||
}, nil
|
|
||||||
|
|
||||||
}
|
|
@ -1,95 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
"strconv"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc get friend apply list is server,args=%s", req.String())
|
|
||||||
var appleUserList []*pbFriend.ApplyUserInfo
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
// Find the current user friend applications received
|
|
||||||
ApplyUsersInfo, err := im_mysql_model.FindFriendsApplyFromFriendReq(claims.UID)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,search applyInfo failed", err.Error())
|
|
||||||
return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
for _, applyUserInfo := range ApplyUsersInfo {
|
|
||||||
var userInfo pbFriend.ApplyUserInfo
|
|
||||||
//Find friend application status
|
|
||||||
userInfo.Flag = applyUserInfo.Flag
|
|
||||||
userInfo.ReqMessage = applyUserInfo.ReqMessage
|
|
||||||
userInfo.ApplyTime = strconv.FormatInt(applyUserInfo.CreateTime.Unix(), 10)
|
|
||||||
//Find user information
|
|
||||||
us, err := im_mysql_model.FindUserByUID(applyUserInfo.ReqId)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,search userInfo failed", err.Error())
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
userInfo.Uid = us.UID
|
|
||||||
userInfo.Icon = us.Icon
|
|
||||||
userInfo.Name = us.Name
|
|
||||||
userInfo.Gender = us.Gender
|
|
||||||
userInfo.Mobile = us.Mobile
|
|
||||||
userInfo.Birth = us.Birth
|
|
||||||
userInfo.Email = us.Email
|
|
||||||
userInfo.Ex = us.Ex
|
|
||||||
appleUserList = append(appleUserList, &userInfo)
|
|
||||||
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, fmt.Sprintf("rpc get friendapplylist success return"))
|
|
||||||
return &pbFriend.GetFriendApplyResp{Data: appleUserList}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc get self apply list is server,args=%s", req.String())
|
|
||||||
var selfApplyOtherUserList []*pbFriend.ApplyUserInfo
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
// Find the self add other userinfo
|
|
||||||
usersInfo, err := im_mysql_model.FindSelfApplyFromFriendReq(claims.UID)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,search self to other user Info failed", err.Error())
|
|
||||||
return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
for _, selfApplyOtherUserInfo := range usersInfo {
|
|
||||||
var userInfo pbFriend.ApplyUserInfo
|
|
||||||
//Find friend application status
|
|
||||||
userInfo.Flag = selfApplyOtherUserInfo.Flag
|
|
||||||
userInfo.ReqMessage = selfApplyOtherUserInfo.ReqMessage
|
|
||||||
userInfo.ApplyTime = strconv.FormatInt(selfApplyOtherUserInfo.CreateTime.Unix(), 10)
|
|
||||||
//Find user information
|
|
||||||
us, err := im_mysql_model.FindUserByUID(selfApplyOtherUserInfo.Uid)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,search userInfo failed", err.Error())
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
userInfo.Uid = us.UID
|
|
||||||
userInfo.Icon = us.Icon
|
|
||||||
userInfo.Name = us.Name
|
|
||||||
userInfo.Gender = us.Gender
|
|
||||||
userInfo.Mobile = us.Mobile
|
|
||||||
userInfo.Birth = us.Birth
|
|
||||||
userInfo.Email = us.Email
|
|
||||||
userInfo.Ex = us.Ex
|
|
||||||
selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo)
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, fmt.Sprintf("rpc get self apply list success return"))
|
|
||||||
return &pbFriend.GetFriendApplyResp{Data: selfApplyOtherUserList}, nil
|
|
||||||
}
|
|
@ -1,57 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFriendListReq) (*pbFriend.GetFriendListResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc get friend list is server,args=%s", req.String())
|
|
||||||
var userInfoList []*pbFriend.UserInfo
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.GetFriendListResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
friends, err := im_mysql_model.FindUserInfoFromFriend(claims.UID)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s search friendInfo failed", err.Error())
|
|
||||||
return &pbFriend.GetFriendListResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
for _, friendUser := range friends {
|
|
||||||
var friendUserInfo pbFriend.UserInfo
|
|
||||||
|
|
||||||
//find user is in blackList
|
|
||||||
err = im_mysql_model.FindRelationshipFromBlackList(claims.UID, friendUser.FriendId)
|
|
||||||
if err == nil {
|
|
||||||
friendUserInfo.IsInBlackList = constant.BlackListFlag
|
|
||||||
} else {
|
|
||||||
friendUserInfo.IsInBlackList = 0
|
|
||||||
}
|
|
||||||
//Find user information
|
|
||||||
us, err := im_mysql_model.FindUserByUID(friendUser.FriendId)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s search userInfo failed", err.Error())
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
friendUserInfo.Uid = friendUser.FriendId
|
|
||||||
friendUserInfo.Comment = friendUser.Comment
|
|
||||||
friendUserInfo.Icon = us.Icon
|
|
||||||
friendUserInfo.Name = us.Name
|
|
||||||
friendUserInfo.Gender = us.Gender
|
|
||||||
friendUserInfo.Mobile = us.Mobile
|
|
||||||
friendUserInfo.Birth = us.Birth
|
|
||||||
friendUserInfo.Email = us.Email
|
|
||||||
friendUserInfo.Ex = us.Ex
|
|
||||||
|
|
||||||
userInfoList = append(userInfoList, &friendUserInfo)
|
|
||||||
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc get friend list success return")
|
|
||||||
return &pbFriend.GetFriendListResp{Data: userInfoList}, nil
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) (*pbFriend.IsFriendResp, error) {
|
|
||||||
log.InfoByArgs("rpc is friend is server,args=%s", req.String())
|
|
||||||
var isFriend int32
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.IsFriendResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
_, err = im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, req.ReceiveUid)
|
|
||||||
if err == nil {
|
|
||||||
isFriend = constant.FriendFlag
|
|
||||||
} else {
|
|
||||||
isFriend = constant.ApplicationFriendFlag
|
|
||||||
}
|
|
||||||
log.InfoByArgs(fmt.Sprintf("rpc is friend success return"))
|
|
||||||
return &pbFriend.IsFriendResp{ShipType: isFriend}, nil
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
"fmt"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlackListReq) (*pbFriend.IsInBlackListResp, error) {
|
|
||||||
log.InfoByArgs("rpc is in blacklist is server,args=%s", req.String())
|
|
||||||
var isInBlacklist = false
|
|
||||||
err := im_mysql_model.FindRelationshipFromBlackList(req.ReceiveUid, req.SendUid)
|
|
||||||
if err == nil {
|
|
||||||
isInBlacklist = true
|
|
||||||
}
|
|
||||||
log.InfoByArgs(fmt.Sprintf("rpc is in blackList success return"))
|
|
||||||
return &pbFriend.IsInBlackListResp{Response: isInBlacklist}, nil
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.RemoveBlacklistReq) (*pbFriend.CommonResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc remove blacklist is server,userid=%s", req.Uid)
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
err = im_mysql_model.RemoveBlackList(claims.UID, req.Uid)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,remove blacklist failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc remove blacklist success return,userid=%s", req.Uid)
|
|
||||||
return &pbFriend.CommonResp{}, nil
|
|
||||||
}
|
|
@ -1,27 +0,0 @@
|
|||||||
package friend
|
|
||||||
|
|
||||||
import (
|
|
||||||
"Open_IM/pkg/common/constant"
|
|
||||||
"Open_IM/pkg/common/db/mysql_model/im_mysql_model"
|
|
||||||
"Open_IM/pkg/common/log"
|
|
||||||
"Open_IM/pkg/common/token_verify"
|
|
||||||
pbFriend "Open_IM/pkg/proto/friend"
|
|
||||||
"context"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFriendCommentReq) (*pbFriend.CommonResp, error) {
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc set friend comment is server,params=%s", req.String())
|
|
||||||
//Parse token, to find current user information
|
|
||||||
claims, err := token_verify.ParseToken(req.Token)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
err = im_mysql_model.UpdateFriendComment(claims.UID, req.Uid, req.Comment)
|
|
||||||
if err != nil {
|
|
||||||
log.Error(req.Token, req.OperationID, "set friend comment failed,err=%s", err.Error())
|
|
||||||
return &pbFriend.CommonResp{ErrorCode: constant.ErrSetFriendComment.ErrCode, ErrorMsg: constant.ErrSetFriendComment.ErrMsg}, nil
|
|
||||||
}
|
|
||||||
log.Info(req.Token, req.OperationID, "rpc set friend comment is success return")
|
|
||||||
return &pbFriend.CommonResp{}, nil
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue