createRoom method

Future<String?> createRoom({
  1. required Map<String, dynamic> body,
})

Implementation

Future<String?> createRoom({
  required Map<String, dynamic> body,
}) async {
  try {
    var headers = {'Content-Type': 'application/json'};

    final response = await http.post(
      Uri.parse('$_baseUrl/new_room'),
      headers: headers,
      body: json.encode(body),
    );

    if ((response.statusCode ~/ 100) > 2) {
      print('❌ ERROR: ${response.reasonPhrase}');
      throw LiveTalkError(message: {"message": response.reasonPhrase});
    }

    if (response.statusCode == 200) {
      final data = response.body;

      final jsonData = json.decode(data);
      if (jsonData["status_code"] == -9999) {
        print('❌ API Error: ${jsonData["message"]}');
        throw LiveTalkError(message: jsonData);
      }
      final payload = jsonData["payload"];
      _sdkInfo!["uuid"] = payload["conversation"]["uuid"];
      _sdkInfo!["room_id"] = payload["conversation"]["_id"];
      _sdkInfo!["access_token"] = payload["login_token"]["access_token"];
      _sdkInfo!["refresh_token"] = payload["login_token"]["refresh_token"];

      return payload["conversation"]["_id"];
    }
    return null;
  } catch (error) {
    print('❌ Exception during createRoom: $error');
    rethrow;
  }
}