2025-10-09 16:48:46 +08:00

561 lines
18 KiB
Objective-C

//
// NIMQChatChannelManagerProtocol.h
// NIMLib
//
// Created by Netease.
// Copyright © 2022 Netease. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NIMQChatDefs.h"
NS_ASSUME_NONNULL_BEGIN
@class NIMQChatChannel;
@class NIMQChatCreateChannelParam;
@class NIMQChatDeleteChannelParam;
@class NIMQChatUpdateChannelParam;
@class NIMQChatGetChannelsParam;
@class NIMQChatGetChannelsByPageParam;
@class NIMQChatGetChannelMembersByPageParam;
@class NIMQChatGetChannelBlackWhiteRolesByPageParam;
@class NIMQChatGetChannelBlackWhiteMembersByPageParam;
@class NIMQChatUpdateChannelBlackWhiteRoleParam;
@class NIMQChatUpdateChannelBlackWhiteMembersParam;
@class NIMQChatGetExistingChannelBlackWhiteRolesParam;
@class NIMQChatGetExistingChannelBlackWhiteMembersParam;
@class NIMQChatGetChannelsResult;
@class NIMQChatGetChannelMembersByPageResult;
@class NIMQChatGetChannelBlackWhiteRolesByPageResult;
@class NIMQChatGetChannelBlackWhiteMembersByPageResult;
@class NIMQChatSubscribeChannelParam;
@class NIMQChatGetChannelUnreadInfosParam;
@class NIMQChatGetChannelUnreadInfosResult;
@class NIMQChatGetChannelsByPageResult;
@class NIMQChatGetExistingChannelBlackWhiteRolesResult;
@class NIMQChatGetExistingChannelBlackWhiteMembersResult;
@class NIMQChatServerRole;
@class NIMQChatServerMember;
@class NIMQChatChannelMember;
// 频道分组
@class NIMQChatCreateChannelCategoryParam;
@class NIMQChatUpdateChannelCategoryParam;
@class NIMQChatDeleteChannelCategoryParam;
@class NIMQChatGetChannelCategoriesParam;
@class NIMQChatGetChannelCategoryBlackWhiteRolesByPageParam;
@class NIMQChatGetChannelCategoryBlackWhiteMembersByPageParam;
@class NIMQChatUpdateChannelCategoryBlackWhiteRoleParam;
@class NIMQChatUpdateChannelCategoryBlackWhiteMembersParam;
@class NIMQChatGetExistingChannelCategoryBlackWhiteRolesParam;
@class NIMQChatGetExistingChannelCategoryBlackWhiteMembersParam;
@class NIMQChatGetChannelsInCategoryByPageParam;
@class NIMQChatGetCategoriesInServerByPageParam;
@class NIMQChatGetChannelCategoriesResult;
@class NIMQChatGetChannelCategoryMembersByPageResult;
@class NIMQChatGetChannelCategoryBlackWhiteRolesByPageResult;
@class NIMQChatGetChannelCategoryBlackWhiteMembersByPageResult;
@class NIMQChatGetExistingChannelCategoryBlackWhiteRolesResult;
@class NIMQChatGetExistingChannelCategoryBlackWhiteMembersResult;
@class NIMQChatGetChannelsInCategoryByPageResult;
@class NIMQChatGetCategoriesInServerByPageResult;
@class NIMQChatUpdateCategoryInfoOfChannelParam;
@class NIMQChatChannelCategory;
@class NIMQChatSearchChannelByPageResult;
@class NIMQChatSearchChannelByPageParam;
@class NIMQChatSubscribeChannelResult;
@class NIMQChatSubscribeChannelAsVisitorResult;
@class NIMQChatSubscribeChannelAsVisitorParam;
/**
* 创建圈组频道的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatCreateChannelHandler)(NSError *__nullable error,
NIMQChatChannel *__nullable result);
/**
* 查询圈组频道信息的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelsHandler)(NSError *__nullable error,
NIMQChatGetChannelsResult *__nullable result);
/**
* 分页查询圈组频道信息的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelsByPageHandler)(NSError *__nullable error,
NIMQChatGetChannelsByPageResult *__nullable result);
/**
* 更新圈组频道信息的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatUpdateChannelHandler)(NSError *__nullable error,
NIMQChatChannel *__nullable result);
/**
* 更新圈组频道中所属频道分组信息的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatUpdateCategoryInfoOfChannelHandler)(NSError *__nullable error,
NIMQChatChannel *__nullable result);
/**
* 分页查询圈组频道成员的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelMembersByPageHandler)(NSError *__nullable error,
NIMQChatGetChannelMembersByPageResult *__nullable result);
/**
* 分页查询频道黑白名单身份组列表的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelBlackWhiteRolesByPageHandler)(NSError *__nullable error,
NIMQChatGetChannelBlackWhiteRolesByPageResult *__nullable result);
/**
* 分页查询频道黑白名单成员列表的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelBlackWhiteMembersByPageHandler)(NSError *__nullable error,
NIMQChatGetChannelBlackWhiteMembersByPageResult *__nullable result);
/**
* 批量查询频道黑白名单身份组列表的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetExistingChannelBlackWhiteRolesHandler)(NSError *__nullable error,
NIMQChatGetExistingChannelBlackWhiteRolesResult *__nullable result);
/**
* 批量查询频道黑白名单成员列表的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetExistingChannelBlackWhiteMembersHandler)(NSError *__nullable error,
NIMQChatGetExistingChannelBlackWhiteMembersResult *__nullable result);
/**
* 查询未读信息的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelUnreadInfosHandler)(NSError *__nullable error,
NIMQChatGetChannelUnreadInfosResult *__nullable result);
/**
* 创建圈组频道分组的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatCreateChannelCategoryHandler)(NSError *__nullable error,
NIMQChatChannelCategory *__nullable result);
/**
* 更新圈组频道分组信息的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatUpdateChannelCategoryHandler)(NSError *__nullable error,
NIMQChatChannelCategory *__nullable result);
/**
* 查询圈组频道分组信息的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelCategoriesHandler)(NSError *__nullable error,
NIMQChatGetChannelCategoriesResult *__nullable result);
/**
* 分页查询频道分组黑白名单身份组列表的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelCategoryBlackWhiteRolesByPageHandler)(NSError *__nullable error,
NIMQChatGetChannelCategoryBlackWhiteRolesByPageResult *__nullable result);
/**
* 分页查询频道分组黑白名单成员列表的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelCategoryBlackWhiteMembersByPageHandler)(NSError *__nullable error,
NIMQChatGetChannelCategoryBlackWhiteMembersByPageResult *__nullable result);
/**
* 批量查询频道分组黑白名单身份组列表的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetExistingChannelCategoryBlackWhiteRolesHandler)(NSError *__nullable error,
NIMQChatGetExistingChannelCategoryBlackWhiteRolesResult *__nullable result);
/**
* 批量查询频道分组黑白名单成员列表的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetExistingChannelCategoryBlackWhiteMembersHandler)(NSError *__nullable error,
NIMQChatGetExistingChannelCategoryBlackWhiteMembersResult *__nullable result);
/**
* 分页查询频道分组中频道信息的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetChannelsInCategoryByPageHandler)(NSError *__nullable error,
NIMQChatGetChannelsInCategoryByPageResult *__nullable result);
/**
* 分页查询服务器内频道分组的回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatGetCategoriesInServerByPageHandler)(NSError *__nullable error,
NIMQChatGetCategoriesInServerByPageResult *__nullable result);
/**
* 分页检索频道信息回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatSearchChannelByPageHandler)(NSError *__nullable error, NIMQChatSearchChannelByPageResult *__nullable result);
/**
* 订阅频道的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatSubscribeChannelHandler)(NSError *__nullable error, NIMQChatSubscribeChannelResult *__nullable result);
/**
* 以游客身份订阅频道的结果回调
*
* @param error 错误信息
* @param result 回调结果
*/
typedef void(^NIMQChatSubscribeChannelAsVisitorHandler)(NSError *__nullable error, NIMQChatSubscribeChannelAsVisitorResult *__nullable result);
/**
* 圈组频道管理器回调
*/
@protocol NIMQChatChannelManagerDelegate <NSObject>
@optional
@end
/**
* 圈组频道管理器
*/
@protocol NIMQChatChannelManager <NSObject>
/**
* 创建圈组频道
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)createChannel:(NIMQChatCreateChannelParam *)param
completion:(nullable NIMQChatCreateChannelHandler)completion;
/**
* 删除圈组频道
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)deleteChannel:(NIMQChatDeleteChannelParam *)param
completion:(nullable NIMQChatHandler)completion;
/**
* 修改圈组频道信息
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)updateChannel:(NIMQChatUpdateChannelParam *)param
completion:(nullable NIMQChatUpdateChannelHandler)completion;
/**
* 修改圈组频道中所属分组相关信息
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)updateCategoryInfoOfChannel:(NIMQChatUpdateCategoryInfoOfChannelParam *)param
completion:(nullable NIMQChatUpdateCategoryInfoOfChannelHandler)completion;
/**
* 查询圈组频道信息
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getChannels:(NIMQChatGetChannelsParam *)param
completion:(nullable NIMQChatGetChannelsHandler)completion;
/**
* 分页查询圈组频道信息
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getChannelsByPage:(NIMQChatGetChannelsByPageParam *)param
completion:(nullable NIMQChatGetChannelsByPageHandler)completion;
/**
* 订阅频道请求
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)subscribeChannel:(NIMQChatSubscribeChannelParam *)param
completion:(nullable NIMQChatSubscribeChannelHandler)completion;
/**
* 查询未读信息
*/
- (void)getChannelUnreadInfos:(NIMQChatGetChannelUnreadInfosParam *)param
completion:(nullable NIMQChatGetChannelUnreadInfosHandler)completion;
/**
* 分页查询圈组频道成员
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getChannelMembersByPage:(NIMQChatGetChannelMembersByPageParam *)param
completion:(nullable NIMQChatGetChannelMembersByPageHandler)completion;
/**
* 分页查询频道黑白名单成员列表
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getBlackWhiteMembersByPage:(NIMQChatGetChannelBlackWhiteMembersByPageParam *)param
completion:(nullable NIMQChatGetChannelBlackWhiteMembersByPageHandler)completion;
/**
* 更新频道黑白名单成员
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)updateBlackWhiteMembers:(NIMQChatUpdateChannelBlackWhiteMembersParam *)param
completion:(nullable NIMQChatHandler)completion;
/**
* 分页查询频道黑白名单身份组列表
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getBlackWhiteRolesByPage:(NIMQChatGetChannelBlackWhiteRolesByPageParam *)param
completion:(nullable NIMQChatGetChannelBlackWhiteRolesByPageHandler)completion;
/**
* 更新频道黑白名单身份组
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)updateBlackWhiteRole:(NIMQChatUpdateChannelBlackWhiteRoleParam *)param
completion:(nullable NIMQChatHandler)completion;
/**
* 批量查询频道黑白名单身份组列表
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getExistingChannelBlackWhiteRoles:(NIMQChatGetExistingChannelBlackWhiteRolesParam *)param
completion:(nullable NIMQChatGetExistingChannelBlackWhiteRolesHandler)completion;
/**
* 批量查询频道黑白名单成员列表
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getExistingChannelBlackWhiteMembers:(NIMQChatGetExistingChannelBlackWhiteMembersParam *)param
completion:(nullable NIMQChatGetExistingChannelBlackWhiteMembersHandler)completion;
#pragma mark -- 频道分组 --
/**
* 创建圈组频道分组
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)createChannelCategory:(NIMQChatCreateChannelCategoryParam *)param
completion:(nullable NIMQChatCreateChannelCategoryHandler)completion;
/**
* 删除圈组频道分组
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)deleteChannelCategory:(NIMQChatDeleteChannelCategoryParam *)param
completion:(nullable NIMQChatHandler)completion;
/**
* 修改圈组频道分组信息
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)updateChannelCategory:(NIMQChatUpdateChannelCategoryParam *)param
completion:(nullable NIMQChatUpdateChannelCategoryHandler)completion;
/**
* 查询圈组频道分组信息
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getChannelCategories:(NIMQChatGetChannelCategoriesParam *)param
completion:(nullable NIMQChatGetChannelCategoriesHandler)completion;
/**
* 分页查询频道分组黑白名单成员列表
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getChannelCategoryBlackWhiteMembersByPage:(NIMQChatGetChannelCategoryBlackWhiteMembersByPageParam *)param
completion:(nullable NIMQChatGetChannelCategoryBlackWhiteMembersByPageHandler)completion;
/**
* 更新频道分组黑白名单成员
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)updateChannelCategoryBlackWhiteMembers:(NIMQChatUpdateChannelCategoryBlackWhiteMembersParam *)param
completion:(nullable NIMQChatHandler)completion;
/**
* 分页查询频道分组黑白名单身份组列表
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getChannelCategoryBlackWhiteRolesByPage:(NIMQChatGetChannelCategoryBlackWhiteRolesByPageParam *)param
completion:(nullable NIMQChatGetChannelCategoryBlackWhiteRolesByPageHandler)completion;
/**
* 更新频道分组黑白名单身份组
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)updateChannelCategoryBlackWhiteRole:(NIMQChatUpdateChannelCategoryBlackWhiteRoleParam *)param
completion:(nullable NIMQChatHandler)completion;
/**
* 批量查询频道分组黑白名单身份组列表
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getExistingChannelCategoryBlackWhiteRoles:(NIMQChatGetExistingChannelCategoryBlackWhiteRolesParam *)param
completion:(nullable NIMQChatGetExistingChannelCategoryBlackWhiteRolesHandler)completion;
/**
* 批量查询频道分组黑白名单成员列表
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getExistingChannelCategoryBlackWhiteMembers:(NIMQChatGetExistingChannelCategoryBlackWhiteMembersParam *)param
completion:(nullable NIMQChatGetExistingChannelCategoryBlackWhiteMembersHandler)completion;
/**
* 分页查询频道分组内频道信息
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getChannelsInCategoryByPage:(NIMQChatGetChannelsInCategoryByPageParam *)param
completion:(nullable NIMQChatGetChannelsInCategoryByPageHandler)completion;
/**
* 分页查询服务器内频道分组
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)getCategoriesInServerByPage:(NIMQChatGetCategoriesInServerByPageParam *)param
completion:(nullable NIMQChatGetCategoriesInServerByPageHandler)completion;
/**
* 检索频道列表
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)searchChannelByPage:(NIMQChatSearchChannelByPageParam *)param completion:(nullable NIMQChatSearchChannelByPageHandler) completion;
/**
* 以游客身份订阅频道
*
* @param param 传入参数
* @param completion 结果回调
*/
- (void)subscribeAsVisitor:(nonnull NIMQChatSubscribeChannelAsVisitorParam*)param
completion:(nullable NIMQChatSubscribeChannelAsVisitorHandler)completion;
/**
* 添加通知对象
*
* @param delegate 通知对象
*/
- (void)addDelegate:(id<NIMQChatChannelManagerDelegate>)delegate;
/**
* 移除通知对象
*
* @param delegate 通知对象
*/
- (void)removeDelegate:(id<NIMQChatChannelManagerDelegate>)delegate;
@end
NS_ASSUME_NONNULL_END