mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-26 05:02:11 +08:00 
			
		
		
		
	* pb * fix: Modifying other fields while setting IsPrivateChat does not take effect * fix: quote message error revoke * refactoring scheduled tasks * refactoring scheduled tasks * refactoring scheduled tasks * refactoring scheduled tasks * refactoring scheduled tasks * refactoring scheduled tasks * rpc client * rpc client * rpc client * rpc client * rpc client * rpc client * rpc client * rpc client
		
			
				
	
	
		
			95 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package rpcli
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"github.com/openimsdk/protocol/conversation"
 | |
| 	"google.golang.org/grpc"
 | |
| )
 | |
| 
 | |
| func NewConversationClient(cc grpc.ClientConnInterface) *ConversationClient {
 | |
| 	return &ConversationClient{conversation.NewConversationClient(cc)}
 | |
| }
 | |
| 
 | |
| type ConversationClient struct {
 | |
| 	conversation.ConversationClient
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) SetConversationMaxSeq(ctx context.Context, conversationID string, ownerUserIDs []string, maxSeq int64) error {
 | |
| 	if len(ownerUserIDs) == 0 {
 | |
| 		return nil
 | |
| 	}
 | |
| 	req := &conversation.SetConversationMaxSeqReq{ConversationID: conversationID, OwnerUserID: ownerUserIDs, MaxSeq: maxSeq}
 | |
| 	return ignoreResp(x.ConversationClient.SetConversationMaxSeq(ctx, req))
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) SetConversations(ctx context.Context, ownerUserIDs []string, info *conversation.ConversationReq) error {
 | |
| 	if len(ownerUserIDs) == 0 {
 | |
| 		return nil
 | |
| 	}
 | |
| 	req := &conversation.SetConversationsReq{UserIDs: ownerUserIDs, Conversation: info}
 | |
| 	return ignoreResp(x.ConversationClient.SetConversations(ctx, req))
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) GetConversationsByConversationIDs(ctx context.Context, conversationIDs []string) ([]*conversation.Conversation, error) {
 | |
| 	if len(conversationIDs) == 0 {
 | |
| 		return nil, nil
 | |
| 	}
 | |
| 	req := &conversation.GetConversationsByConversationIDReq{ConversationIDs: conversationIDs}
 | |
| 	return extractField(ctx, x.ConversationClient.GetConversationsByConversationID, req, (*conversation.GetConversationsByConversationIDResp).GetConversations)
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) GetConversationsByConversationID(ctx context.Context, conversationID string) (*conversation.Conversation, error) {
 | |
| 	return firstValue(x.GetConversationsByConversationIDs(ctx, []string{conversationID}))
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) SetConversationMinSeq(ctx context.Context, conversationID string, ownerUserIDs []string, minSeq int64) error {
 | |
| 	if len(ownerUserIDs) == 0 {
 | |
| 		return nil
 | |
| 	}
 | |
| 	req := &conversation.SetConversationMinSeqReq{ConversationID: conversationID, OwnerUserID: ownerUserIDs, MinSeq: minSeq}
 | |
| 	return ignoreResp(x.ConversationClient.SetConversationMinSeq(ctx, req))
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) GetConversation(ctx context.Context, conversationID string, ownerUserID string) (*conversation.Conversation, error) {
 | |
| 	req := &conversation.GetConversationReq{ConversationID: conversationID, OwnerUserID: ownerUserID}
 | |
| 	return extractField(ctx, x.ConversationClient.GetConversation, req, (*conversation.GetConversationResp).GetConversation)
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) GetConversations(ctx context.Context, conversationIDs []string, ownerUserID string) ([]*conversation.Conversation, error) {
 | |
| 	if len(conversationIDs) == 0 {
 | |
| 		return nil, nil
 | |
| 	}
 | |
| 	req := &conversation.GetConversationsReq{ConversationIDs: conversationIDs, OwnerUserID: ownerUserID}
 | |
| 	return extractField(ctx, x.ConversationClient.GetConversations, req, (*conversation.GetConversationsResp).GetConversations)
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) GetConversationIDs(ctx context.Context, ownerUserID string) ([]string, error) {
 | |
| 	req := &conversation.GetConversationIDsReq{UserID: ownerUserID}
 | |
| 	return extractField(ctx, x.ConversationClient.GetConversationIDs, req, (*conversation.GetConversationIDsResp).GetConversationIDs)
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) GetPinnedConversationIDs(ctx context.Context, ownerUserID string) ([]string, error) {
 | |
| 	req := &conversation.GetPinnedConversationIDsReq{UserID: ownerUserID}
 | |
| 	return extractField(ctx, x.ConversationClient.GetPinnedConversationIDs, req, (*conversation.GetPinnedConversationIDsResp).GetConversationIDs)
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) CreateGroupChatConversations(ctx context.Context, groupID string, userIDs []string) error {
 | |
| 	if len(userIDs) == 0 {
 | |
| 		return nil
 | |
| 	}
 | |
| 	req := &conversation.CreateGroupChatConversationsReq{GroupID: groupID, UserIDs: userIDs}
 | |
| 	return ignoreResp(x.ConversationClient.CreateGroupChatConversations(ctx, req))
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) CreateSingleChatConversations(ctx context.Context, req *conversation.CreateSingleChatConversationsReq) error {
 | |
| 	return ignoreResp(x.ConversationClient.CreateSingleChatConversations(ctx, req))
 | |
| }
 | |
| 
 | |
| func (x *ConversationClient) GetConversationOfflinePushUserIDs(ctx context.Context, conversationID string, userIDs []string) ([]string, error) {
 | |
| 	if len(userIDs) == 0 {
 | |
| 		return nil, nil
 | |
| 	}
 | |
| 	req := &conversation.GetConversationOfflinePushUserIDsReq{ConversationID: conversationID, UserIDs: userIDs}
 | |
| 	return extractField(ctx, x.ConversationClient.GetConversationOfflinePushUserIDs, req, (*conversation.GetConversationOfflinePushUserIDsResp).GetUserIDs)
 | |
| }
 |