createRoom method
本地创建一个聊天室
Implementation
Stream<AsyncStatus> createRoom(
NewRoomEvent event, List<Member> members) async* {
rooms.add(event.room);
event.room.members.add(event.member);
members.forEach((element) {
event.room.members.add(element);
});
yield AsyncStatus.invoking;
// TODO: 数据库持久化的逻辑以及网络请求发消息的请求
final r = await HttpEndpoint('https://api.codiario.com/room/create').post(
jsonEncode({
'roomId': event.room.roomId,
'max': event.room.maxMembers,
'expire': 180
}));
if (r) {
await _saveRooms();
await channel.sendMessage(event);
yield AsyncStatus.success;
} else {
rooms = rooms.where((room) => room.roomId != event.room.roomId).toList();
yield AsyncStatus.error;
}
}