getCurrentRoom method

Future<LiveTalkRoomEntity?> getCurrentRoom()

Implementation

Future<LiveTalkRoomEntity?> getCurrentRoom() async {
  try {
    if (sdkInfo == null) {
      throw LiveTalkError(message: {"message": "empty_info"});
    }
    var headers = {
      'Content-Type': 'application/json',
      'Authorization': "Bearer ${_sdkInfo!["access_token"] as String}",
    };
    var request = http.Request(
      'GET',
      Uri.parse('$_baseUrl/guest/room/${_sdkInfo!["room_id"]}'),
    );
    request.headers.addAll(headers);
    http.StreamedResponse response = await request.send();
    if ((response.statusCode ~/ 100) > 2) {
      throw LiveTalkError(message: {"message": response.reasonPhrase});
    }
    if (response.statusCode == 200) {
      final data = await response.stream.bytesToString();
      final jsonData = json.decode(data);
      if (jsonData["status_code"] == -9999) {
        throw LiveTalkError(message: jsonData);
      }
      final payload = jsonData["payload"];
      return LiveTalkRoomEntity.fromJson(payload);
    }
    return null;
  } catch (error) {
    rethrow;
  }
}