import 'package:comunic/helpers/websocket_helper.dart'; import 'package:comunic/lists/call_members_list.dart'; import 'package:comunic/models/call_config.dart'; import 'package:comunic/models/call_member.dart'; /// Calls helper /// /// @author Pierre Hubert class CallsHelper { /// Join a call static Future join(int convID) async => await ws("calls/join", {"convID": convID}); /// Leave a call static Future leave(int convID) async => await ws("calls/leave", {"convID": convID}); /// Get calls configuration static Future getConfig() async { final response = await ws("calls/config", {}); return CallConfig( iceServers: response["iceServers"].cast(), ); } /// Get current call members static Future getMembers(int callID) async => CallMembersList() ..addAll((await ws("calls/members", {"callID": callID})) .map((f) => CallMember( id: f["userID"], status: f["ready"] ? MemberStatus.READY : MemberStatus.JOINED, )) .toList() .cast()); }