mirror of
				https://github.com/openimsdk/open-im-server.git
				synced 2025-10-31 16:32:12 +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 * upgrading pkg tools * fix * fix
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package rpcli
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"github.com/openimsdk/protocol/group"
 | |
| 	"github.com/openimsdk/protocol/sdkws"
 | |
| 	"google.golang.org/grpc"
 | |
| )
 | |
| 
 | |
| func NewGroupClient(cc grpc.ClientConnInterface) *GroupClient {
 | |
| 	return &GroupClient{group.NewGroupClient(cc)}
 | |
| }
 | |
| 
 | |
| type GroupClient struct {
 | |
| 	group.GroupClient
 | |
| }
 | |
| 
 | |
| func (x *GroupClient) GetGroupsInfo(ctx context.Context, groupIDs []string) ([]*sdkws.GroupInfo, error) {
 | |
| 	if len(groupIDs) == 0 {
 | |
| 		return nil, nil
 | |
| 	}
 | |
| 	req := &group.GetGroupsInfoReq{GroupIDs: groupIDs}
 | |
| 	return extractField(ctx, x.GroupClient.GetGroupsInfo, req, (*group.GetGroupsInfoResp).GetGroupInfos)
 | |
| }
 | |
| 
 | |
| func (x *GroupClient) GetGroupInfo(ctx context.Context, groupID string) (*sdkws.GroupInfo, error) {
 | |
| 	return firstValue(x.GetGroupsInfo(ctx, []string{groupID}))
 | |
| }
 | |
| 
 | |
| func (x *GroupClient) GetGroupInfoCache(ctx context.Context, groupID string) (*sdkws.GroupInfo, error) {
 | |
| 	req := &group.GetGroupInfoCacheReq{GroupID: groupID}
 | |
| 	return extractField(ctx, x.GroupClient.GetGroupInfoCache, req, (*group.GetGroupInfoCacheResp).GetGroupInfo)
 | |
| }
 | |
| 
 | |
| func (x *GroupClient) GetGroupMemberCache(ctx context.Context, groupID string, userID string) (*sdkws.GroupMemberFullInfo, error) {
 | |
| 	req := &group.GetGroupMemberCacheReq{GroupID: groupID, GroupMemberID: userID}
 | |
| 	return extractField(ctx, x.GroupClient.GetGroupMemberCache, req, (*group.GetGroupMemberCacheResp).GetMember)
 | |
| }
 | |
| 
 | |
| func (x *GroupClient) DismissGroup(ctx context.Context, groupID string, deleteMember bool) error {
 | |
| 	req := &group.DismissGroupReq{GroupID: groupID, DeleteMember: deleteMember}
 | |
| 	return ignoreResp(x.GroupClient.DismissGroup(ctx, req))
 | |
| }
 | |
| 
 | |
| func (x *GroupClient) GetGroupMemberUserIDs(ctx context.Context, groupID string) ([]string, error) {
 | |
| 	req := &group.GetGroupMemberUserIDsReq{GroupID: groupID}
 | |
| 	return extractField(ctx, x.GroupClient.GetGroupMemberUserIDs, req, (*group.GetGroupMemberUserIDsResp).GetUserIDs)
 | |
| }
 | |
| 
 | |
| func (x *GroupClient) GetGroupMembersInfo(ctx context.Context, groupID string, userIDs []string) ([]*sdkws.GroupMemberFullInfo, error) {
 | |
| 	if len(userIDs) == 0 {
 | |
| 		return nil, nil
 | |
| 	}
 | |
| 	req := &group.GetGroupMembersInfoReq{GroupID: groupID, UserIDs: userIDs}
 | |
| 	return extractField(ctx, x.GroupClient.GetGroupMembersInfo, req, (*group.GetGroupMembersInfoResp).GetMembers)
 | |
| }
 | |
| 
 | |
| func (x *GroupClient) GetGroupMemberInfo(ctx context.Context, groupID string, userID string) (*sdkws.GroupMemberFullInfo, error) {
 | |
| 	return firstValue(x.GetGroupMembersInfo(ctx, groupID, []string{userID}))
 | |
| }
 | |
| 
 | |
| func (x *GroupClient) GetGroupMemberMapInfo(ctx context.Context, groupID string, userIDs []string) (map[string]*sdkws.GroupMemberFullInfo, error) {
 | |
| 	members, err := x.GetGroupMembersInfo(ctx, groupID, userIDs)
 | |
| 	if err != nil {
 | |
| 		return nil, err
 | |
| 	}
 | |
| 	memberMap := make(map[string]*sdkws.GroupMemberFullInfo)
 | |
| 	for _, member := range members {
 | |
| 		memberMap[member.UserID] = member
 | |
| 	}
 | |
| 	return memberMap, nil
 | |
| }
 |