Files
peko-ios/YuMi/Modules/YMRoom/View/Setting/Presenter/XPRoomTopicPresenter.m
2023-07-14 18:50:55 +08:00

69 lines
2.4 KiB
Objective-C

//
// YMRoomTopicPresenter.m
// YUMI
//
// Created by YUMI on 2022/3/14.
//
#import "XPRoomTopicPresenter.h"
#import <NIMSDK/NIMSDK.h>
#import "YUMIConstant.h"
#import "DESEncrypt.h"
#import "AccountInfoStorage.h"
#import "Api+RoomSetting.h"
#import "XPRoomTopicProtocol.h"
#import "RoomInfoModel.h"
#import "NSMutableDictionary+Saft.h"
@implementation XPRoomTopicPresenter
///更新房间信息
- (void)roomTopicUpdate:(NSString *)roomDesc introduction:(NSString *)introduction roomInfo:(RoomInfoModel *)roomInfo {
NSString * uid = [AccountInfoStorage instance].getUid;
NSString * ticket = [AccountInfoStorage instance].getTicket;
NSMutableDictionary * params = [NSMutableDictionary dictionary];
[params safeSetObject:ticket forKey:@"ticket"];
[params safeSetObject:uid forKey:@"uid"];
[params safeSetObject:[NSString stringWithFormat:@"%ld", roomInfo.uid] forKey:@"roomUid"];
if (roomInfo.title.length > 0) {
[params safeSetObject:roomInfo.title forKey:@"title"];
}
if (roomInfo.roomPwd.length > 0) {
[params safeSetObject:roomInfo.roomPwd forKey:@"roomPwd"];
}
if (roomInfo.tagId > 0) {
[params safeSetObject:[NSString stringWithFormat:@"%ld", roomInfo.tagId] forKey:@"tagId"];
}
[params safeSetObject:roomDesc forKey:@"roomDesc"];
if (introduction.length > 0) {
[params safeSetObject:introduction forKey:@"introduction"];
}
[params safeSetObject:@(roomInfo.hasAnimationEffect) forKey:@"hasAnimationEffect"];
///获取房间角色
NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init];
request.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId];
request.userIds = @[uid];
[[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray<NIMChatroomMember *> * _Nullable members) {
if (error == nil) {
NIMChatroomMember * member = members.firstObject;
if (member.type == NIMTeamMemberTypeOwner) {
[Api ownerUpdateRoomInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView] updateRoomTopicSuccess];
} showLoading:YES] params:params];
} else if(member.type == NIMTeamMemberTypeManager) {
[Api managerUpdateRoomInfo:[self createHttpCompletion:^(BaseModel * _Nonnull data) {
[[self getView] updateRoomTopicSuccess];
} showLoading:YES] params:params];
}
} else {
[[self getView] updateRoomTopicFail:YMLocalizedString(@"XPRoomTopicPresenter0")];
}
}];
}
@end