/* ** description(""). ** copyright('open-im,www.open-im.io'). ** author("fg,Gordon@tuoyun.net"). ** time(2021/9/15 15:23). */ package manage import "github.com/gin-gonic/gin" // //var validate *validator.Validate // // //func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.SendMsgReq { // var newContent string // switch params.ContentType { // case constant.Text: // newContent = params.Content["text"].(string) // case constant.Picture: // fallthrough // case constant.Custom: // fallthrough // case constant.Voice: // fallthrough // case constant.File: // newContent = utils.StructToJsonString(params.Content) // default: // } // options := make(map[string]bool, 2) // if params.IsOnlineOnly { // utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) // utils.SetSwitchFromOptions(options, constant.IsHistory, false) // utils.SetSwitchFromOptions(options, constant.IsPersistent, false) // } // pbData := pbChat.SendMsgReq{ // OperationID: params.OperationID, // MsgData: &open_im_sdk.MsgData{ // SendID: params.SendID, // RecvID: params.RecvID, // GroupID: params.GroupID, // ClientMsgID: utils.GetMsgID(params.SendID), // SenderPlatformID: params.SenderPlatformID, // SenderNickName: params.SenderNickName, // SenderFaceURL: params.SenderFaceURL, // SessionType: params.SessionType, // MsgFrom: constant.SysMsgType, // ContentType: params.ContentType, // Content: []byte(newContent), // ForceList: params.ForceList, // CreateTime: utils.GetCurrentTimestampByNano(), // Options: options, // OfflinePushInfo: params.OfflinePushInfo, // }, // } // return &pbData //} //func init() { // validate = validator.New() //} func ManagementSendMsg(c *gin.Context) { } //func ManagementSendMsg(c *gin.Context) { // var data interface{} // params := paramsManagementSendMsg{} // if err := c.BindJSON(¶ms); err != nil { // c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) // log.ErrorByKv("json unmarshal err", c.PostForm("operationID"), "err", err.Error(), "content", c.PostForm("content")) // return // } // switch params.ContentType { // case constant.Text: // data = TextElem{} // case constant.Picture: // data = PictureElem{} // case constant.Voice: // data = SoundElem{} // case constant.Video: // data = VideoElem{} // case constant.File: // data = FileElem{} // //case constant.AtText: // // data = AtElem{} // //case constant.Merger: // // data = // //case constant.Card: // //case constant.Location: // case constant.Custom: // data = CustomElem{} // //case constant.Revoke: // //case constant.HasReadReceipt: // //case constant.Typing: // //case constant.Quote: // default: // c.JSON(http.StatusBadRequest, gin.H{"errCode": 404, "errMsg": "contentType err"}) // log.ErrorByKv("contentType err", c.PostForm("operationID"), "content", c.PostForm("content")) // return // } // if err := mapstructure.WeakDecode(params.Content, &data); err != nil { // c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()}) // log.ErrorByKv("content to Data struct err", "", "err", err.Error()) // return // } else if err := validate.Struct(data); err != nil { // c.JSON(http.StatusBadRequest, gin.H{"errCode": 403, "errMsg": err.Error()}) // log.ErrorByKv("data args validate err", "", "err", err.Error()) // return // } // // token := c.Request.Header.Get("token") // claims, err := token_verify.ParseToken(token) // if err != nil { // log.NewError(params.OperationID, "parse token failed", err.Error()) // c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) // } // if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { // c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""}) // return // // } // switch params.SessionType { // case constant.SingleChatType: // if len(params.RecvID) == 0 { // log.NewError(params.OperationID, "recvID is a null string") // c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""}) // } // case constant.GroupChatType: // if len(params.GroupID) == 0 { // log.NewError(params.OperationID, "groupID is a null string") // c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""}) // } // // } // log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params) // // pbData := newUserSendMsgReq(¶ms) // log.Info("", "", "api ManagementSendMsg call start..., [data: %s]", pbData.String()) // // etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) // client := pbChat.NewChatClient(etcdConn) // // log.Info("", "", "api ManagementSendMsg call, api call rpc...") // // reply, err := client.SendMsg(context.Background(), pbData) // if err != nil { // log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) // c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) // return // } // log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) // // c.JSON(http.StatusOK, gin.H{ // "errCode": reply.ErrCode, // "errMsg": reply.ErrMsg, // "sendTime": reply.SendTime, // "msgID": reply.ClientMsgID, // }) // //} //type MergeElem struct { // Title string `json:"title"` // AbstractList []string `json:"abstractList"` // MultiMessage []*MsgStruct `json:"multiMessage"` //} //type QuoteElem struct { // Text string `json:"text"` // QuoteMessage *MsgStruct `json:"quoteMessage"` //}