getCurrentRoom method

Future<LiveTalkRoomEntity?> getCurrentRoom()

Implementation

Future<LiveTalkRoomEntity?> getCurrentRoom() async {
  if (_sdkInfo == null) throw _clientError(LiveTalkErrorCodes.emptyInfo);

  final request = http.Request(
    'GET',
    Uri.parse('$_base${LiveTalkEndpoints.getCurrentRoom}/${_sdkInfo!["room_id"]}'),
  )..headers.addAll({
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ${_sdkInfo!["access_token"]}',
    });

  final streamed = await request.send();
  if (streamed.statusCode != 200) {
    throw _httpError(streamed.statusCode, streamed.reasonPhrase);
  }

  final data     = await streamed.stream.bytesToString();
  final jsonData = json.decode(data) as Map<String, dynamic>;
  if (jsonData['status_code'] == -9999) throw _apiBodyError(jsonData);

  return LiveTalkRoomEntity.fromJson(jsonData['payload'] as Map<String, dynamic>);
}