add_friend.go 3.1 KB
Newer Older
落凡尘.'s avatar
落凡尘. 已提交
1 2 3
package friend

import (
4
	pbFriend "Open_IM/pkg/proto/friend"
5 6 7
	"Open_IM/pkg/common/config"
	"Open_IM/pkg/common/log"
	"Open_IM/pkg/grpc-etcdv3/getcdv3"
落凡尘.'s avatar
落凡尘. 已提交
8 9 10 11 12 13
	"context"
	"github.com/gin-gonic/gin"
	"net/http"
	"strings"
)

programor_guo's avatar
programor_guo 已提交
14
type paramsImportFriendReq struct {
programor_guo's avatar
programor_guo 已提交
15 16 17
	OperationID string   `json:"operationID" binding:"required"`
	UIDList     []string `json:"uidList" binding:"required"`
	OwnerUid    string   `json:"ownerUid" binding:"required"`
programor_guo's avatar
programor_guo 已提交
18 19
}

落凡尘.'s avatar
落凡尘. 已提交
20 21 22 23 24 25
type paramsAddFriend struct {
	OperationID string `json:"operationID" binding:"required"`
	UID         string `json:"uid" binding:"required"`
	ReqMessage  string `json:"reqMessage"`
}

programor_guo's avatar
programor_guo 已提交
26 27 28 29 30 31 32 33 34 35 36 37 38
//
func ImportFriend(c *gin.Context) {
	log.Info("", "", "ImportFriend init ....")

	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(&params); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
		return
	}
	req := &pbFriend.ImportFriendReq{
programor_guo's avatar
programor_guo 已提交
39
		UidList:     params.UIDList,
programor_guo's avatar
programor_guo 已提交
40 41 42 43 44 45 46
		OperationID: params.OperationID,
		OwnerUid:    params.OwnerUid,
		Token:       c.Request.Header.Get("token"),
	}
	RpcResp, err := client.ImportFriend(context.Background(), req)
	if err != nil {
		log.Error(req.Token, req.OperationID, "err=%s,ImportFriend failed", err)
programor_guo's avatar
programor_guo 已提交
47
		c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed" + err.Error()})
programor_guo's avatar
programor_guo 已提交
48 49 50
		return
	}
	log.InfoByArgs("ImportFriend  success,args=%s", RpcResp.String())
programor_guo's avatar
programor_guo 已提交
51
	resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": RpcResp.FailedUidList}
programor_guo's avatar
programor_guo 已提交
52 53 54 55
	c.JSON(http.StatusOK, resp)
	log.InfoByArgs("ImportFriend success return,get args=%s,return args=%s", req.String(), RpcResp.String())
}

落凡尘.'s avatar
落凡尘. 已提交
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
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(&params); 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())
	resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}
	c.JSON(http.StatusOK, resp)
	log.InfoByArgs("api add friend success return,get args=%s,return args=%s", req.String(), RpcResp.String())
}